From 8888b5d1adc699a7840f2e13ba6be159cc6fae01 Mon Sep 17 00:00:00 2001 From: James Quinley Date: Fri, 23 Jun 2023 12:12:53 -0700 Subject: [PATCH] This commit updates how the service handles startup --- server.js | 161 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 84 insertions(+), 77 deletions(-) diff --git a/server.js b/server.js index 30e46dd..3833fc1 100644 --- a/server.js +++ b/server.js @@ -5,15 +5,9 @@ const ObjectId = require("mongodb").ObjectID; const CONNECTION_URL = "mongodb+srv://edgenetworknode:yUiWfJBYCGwdRayj@matchnethop.hgxv0xd.mongodb.net/?retryWrites=true&w=majority"; const DATABASE_NAME = "edgecomm"; const COLLECTION_NAME = "nettranslate"; -const sha256 = require('js-sha256'); var cors = require('cors'); -const Collection = require("mongodb/lib/collection"); -const Db = require("mongodb/lib/db"); const MongoClient = require("mongodb").MongoClient; -const request = require('undici'); -const axios = require('axios'); const requestIp = require('request-ip'); -let requestEnable = false; var app = Express(); app.use(cors()); app.use(BodyParser.json()); @@ -25,6 +19,7 @@ var corsOptions = { optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204 } var database, collection; +var requestEnable = false; /**GET*/ app.get("/", (request, response) => { response.json({ @@ -41,78 +36,90 @@ app.get("/lobby/listall/", async (request, response) => { Field LBN[num] breaks down into Lobby Name [Number], this informs the client what the name is of the assosiated lobby Field LBIP[num] breaks down into Lobby IP [Number], this informs the client what the IP is of the assosiated lobby */ - var o_id = new mongodb.ObjectID(); - var ar; - auth.insertOne({ - _id : o_id, - type: 1, - status: false - }) - await auth.findOne({_id: o_id}, (err, res) => { - const delay = ms => new Promise(resolve => setTimeout(resolve, ms)) - const dec = async i => (await delay(200), --i) - ar = res; - const verifyUser = async () => { - let responseEnabled = true; - let enableLookup = true; - let i = 8; - let timeout = 7; - while(i = await dec(i)) - try { - if (enableLookup) { - timeout = timeout - 1; - if (timeout > 0) { - await auth.findOne({_id: o_id}, (err, res) => { - if (res.status) { - if (responseEnabled) { - timeout = 0; - i = 1; - if (res.type == 2) { - responseEnabled = false; - enableLookup = false; - response.status(200).json({ - LBN : res.lobbies, - LBIP : res.ip, - LobbyCount : res.LobbyCount - }); - res = null; - } else { - responseEnabled = false; - ar = null; - res = null; - response.status(403).json({ - Info: "Forbidden", - Message: "Something went wrong." - }); - } + if (requestEnable) { + var o_id = new mongodb.ObjectID(); + var ar; + auth.insertOne({ + _id : o_id, + type: 1, + status: false + }) + await auth.findOne({_id: o_id}, (err, res) => { + const delay = ms => new Promise(resolve => setTimeout(resolve, ms)) + const dec = async i => (await delay(200), --i) + ar = res; + const verifyUser = async () => { + let responseEnabled = true; + let enableLookup = true; + let i = 8; + let timeout = 7; + while(i = await dec(i)) + try { + if (enableLookup) { + timeout = timeout - 1; + if (timeout > 0) { + await auth.findOne({_id: o_id}, (err, res) => { + if (res.status) { + if (responseEnabled) { + timeout = 0; + i = 1; + if (res.type == 2) { + responseEnabled = false; + enableLookup = false; + response.status(200).json({ + Info: "Good", + LBN : res.lobbies, + LBIP : res.ip, + LobbyCount : res.LobbyCount + }); + res = null; + } else { + responseEnabled = false; + ar = null; + res = null; + response.status(403).json({ + Info: "Forbidden", + Message: "Something went wrong." + }); + } + } } - } - }); - } else { - if (responseEnabled) { - response.status(403).json({ - Info: "Forbidden", - Message: "Something went wrong..." - }); - responseEnabled = false; - ar = null; - res = null; - } - } - } - } catch (err) { - enableLookup = false; - res = null; - if (responseEnabled) { - response.sendStatus(500); - } - responseEnabled = false; - console.log(err); - timeout = 1; - } - } - verifyUser(); - }); + }); + } else { + if (responseEnabled) { + response.status(403).json({ + Info: "Forbidden", + Message: "Something went wrong..." + }); + responseEnabled = false; + ar = null; + res = null; + } + } + } + } catch (err) { + enableLookup = false; + res = null; + if (responseEnabled) { + response.status(503).json({ + Info: "Forbidden", + Message: "Something went wrong..." + }); + } + responseEnabled = false; + console.log(err); + timeout = 1; + } + } + verifyUser(); + }); + } else { + response.status(503).json({ + Info: "Forbidden", + Message: "The server is starting up, please retry again in a moment." + }); + } + }); app.get("/lobby/submit/", async (request, response) => {