Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- RoastedPresident2000
- Example 1
- */
- // Import modules
- import { uploadScript } from './modules/loadasset';
- import { getData, writeData } from './modules/faunadb';
- import { validateInstance, addInstance, removeInstance } from './modules/gamevalidation';
- import {generateSuccess, generateError } from './modules/codegeneration';
- import { placeId } from './workerconfig';
- // Connect Event listen to handle request
- addEventListener('fetch', event => {
- event.respondWith(handleRequest(event.request));
- });
- async function handleRequest(request) {
- try {
- const url = new URL(request.url);
- const method = request.method;
- // Read Post request
- if (method == "POST") {
- const bodyUsed = await request.json();
- const serverValidated = await validateInstance(request.headers.get("cf-connecting-ip"), bodyUsed.jobId, bodyUsed.GUID);
- // Authenticated server routes
- if (serverValidated) {
- const data = bodyUsed.data;
- if (url.pathname == "/post/uploadScript") {
- return await uploadScript(data);
- } else if (url.pathname == "/post/saveScript") {
- const userId = parseInt(data.userId);
- const scriptName = data.scriptName;
- const code = data.code;
- if (userId && userId != NaN && scriptName && code) {
- const exists = await getData("findScript", [scriptName, userId]);
- if (!(exists ? true : false)) {
- const success = await writeData('scripts', {
- userId: userId,
- scriptName: scriptName,
- code: code
- });
- if (success) {
- return await generateSuccess("Successfully saved script");
- } else {
- return await generateError("Failed to save scripts");
- }
- }
- return await generateError("Script already exists");
- } else {
- return await generateError("Invalid arguments to " + url.pathname);
- }
- } else if (url.pathname == "/post/getScript") {
- const userId = parseInt(data.userId);
- const scriptName = data.scriptName;
- if (userId != NaN && scriptName) {
- const result = await getData("findScript", [scriptName, userId]);
- return await generateSuccess(
- JSON.stringify(result ? { found: true, result: result } : { found: false, result: null })
- );
- } else {
- return await generateError("Invalid arguments to " + url.pathname);
- }
- }
- }
- // Un-authenticated server routes
- if (url.pathname == "/post/registerServer") {
- const robloxId = request.headers.get("roblox-id");
- if (robloxId == placeId && bodyUsed.jobId && bodyUsed.GUID) {
- const success = await addInstance(request.headers.get("cf-connecting-ip"), bodyUsed.jobId, bodyUsed.GUID);
- if (success) {
- return await generateSuccess("Successfully added server instance");
- } else {
- return await generateError("Failed to add server instance - server instance is already registered");
- }
- }
- } else if (url.pathname == "/post/unRegisterServer") {
- const robloxId = request.headers.get("roblox-id");
- if (robloxId == placeId && bodyUsed.jobId && bodyUsed.GUID) {
- const success = await removeInstance(request.headers.get("cf-connecting-ip"), bodyUsed.jobId, bodyUsed.GUID);
- if (success) {
- return await generateSuccess("Successfully deleted instance");
- } else {
- return await generateError("Failed to delete instance - make sure it exists");
- }
- }
- }
- return await generateError("Unauthorized.", 401);
- }
- } catch (ex) {
- return await generateError("An internal server error occured. Please try again later. " + ex, 500);
- }
- // Return Printed response to API
- return new Response('<h1>API backend</h1>', {
- headers: { 'content-type': 'text/html' },
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement