Add submission endpoint, use format name,ip,version

This commit is contained in:
James Quinley 2023-06-23 20:46:42 -07:00
parent 8888b5d1ad
commit 979d472cb7

102
server.js
View File

@ -126,10 +126,104 @@ app.get("/lobby/submit/", async (request, response) => {
/**
Lobby submission documentation
*/
response.status(503).json({
INFORMATION: "THE LOBBY SUBMISSION ENDPOINT IS NOT ACTIVE, TRY AGAIN LATER.",
VERSION: 1.0
});
if (typeof request.query.name === 'undefined' || typeof request.query.ip === 'undefined' || typeof request.query.version === 'undefined' || request.query.name === '' || request.query.ip === '' || request.query.version === '') {
response.status(403).json({
Info : "Forbidden",
Reason : "Missing requirements",
POSTSTATE : false
});
} else {
if (requestEnable) {
var o_id = new mongodb.ObjectID();
var ar;
auth.insertOne({
_id : o_id,
type : 3,
LobbyName : request.query.name,
LobbyIP : request.query.ip,
LobbyVersion : request.query.version,
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 == 4 && res.lobbyPosted == true) {
responseEnabled = false;
enableLookup = false;
response.status(200).json({
Info: "Good",
LBN : res.lobbyName,
SECRET : res.lobbySecret,
POSTSTATE : res.lobbyPosted
});
res = null;
} else {
responseEnabled = false;
ar = null;
res = null;
response.status(403).json({
Info: "Forbidden",
Message: "Something went wrong.",
POSTSTATE : false
});
}
}
}
});
} else {
if (responseEnabled) {
response.status(403).json({
Info: "Forbidden",
Message: "Something went wrong.",
POSTSTATE : false
});
responseEnabled = false;
ar = null;
res = null;
}
}
}
} catch (err) {
enableLookup = false;
res = null;
if (responseEnabled) {
response.status(503).json({
Info: "Forbidden",
Message: "Something went wrong...",
POSTSTATE : false
});
}
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.",
POSTSTATE : false
});
}
}
});
app.get("/lobby/remove/", async (request, response) => {
/**