mirror of
https://github.com/PreMiD/PreMiD.git
synced 2026-04-06 04:41:58 +02:00
Compare commits
9 Commits
api-master
...
api-worker
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6bad90919 | ||
|
|
ee21bb9dec | ||
|
|
6efac4fef1 | ||
|
|
93424793bd | ||
|
|
affcb6a0cf | ||
|
|
bb56949dfb | ||
|
|
c06fe04b65 | ||
|
|
ef976341ba | ||
|
|
38893891af |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@premid/api-master",
|
||||
"type": "module",
|
||||
"version": "0.0.16",
|
||||
"version": "0.0.20",
|
||||
"private": true,
|
||||
"description": "PreMiD's api master",
|
||||
"license": "MPL-2.0",
|
||||
|
||||
@@ -77,13 +77,13 @@ export async function clearOldSessions() {
|
||||
}
|
||||
|
||||
async function deleteSession(session: { token: string; session: string }, key: string): Promise<string> {
|
||||
const abortController = new AbortController();
|
||||
const timeoutId = setTimeout(() => abortController.abort("Timeout"), 5000); //* 5 second timeout
|
||||
|
||||
try {
|
||||
const abortController = new AbortController();
|
||||
const discord = new REST({ version: "10", authPrefix: "Bearer" });
|
||||
discord.setToken(session.token);
|
||||
|
||||
const timeoutId = setTimeout(() => abortController.abort(), 5000); //* 1 second timeout
|
||||
|
||||
await discord.post("/users/@me/headless-sessions/delete", {
|
||||
signal: abortController.signal,
|
||||
body: {
|
||||
@@ -95,14 +95,22 @@ async function deleteSession(session: { token: string; session: string }, key: s
|
||||
return key;
|
||||
}
|
||||
catch (error) {
|
||||
clearTimeout(timeoutId);
|
||||
//* Log detailed error information
|
||||
mainLog(`Delete session error for key ${key}:`, {
|
||||
errorName: error instanceof Error ? error.name : "Unknown",
|
||||
errorMessage: error instanceof Error ? error.message : String(error),
|
||||
errorStack: error instanceof Error ? error.stack : "No stack trace",
|
||||
});
|
||||
|
||||
if (error instanceof Error && error.name === "AbortError") {
|
||||
mainLog("Session deletion aborted due to timeout");
|
||||
mainLog(`Session deletion aborted due to timeout for key ${key}`);
|
||||
}
|
||||
else if (error instanceof Error) {
|
||||
mainLog(`Failed to delete session: ${error.message}`);
|
||||
mainLog(`Failed to delete session for key ${key}: ${error.message}`);
|
||||
}
|
||||
else {
|
||||
mainLog(`Failed to delete session: Unknown error`);
|
||||
mainLog(`Failed to delete session for key ${key}: Unknown error`);
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@premid/api-worker",
|
||||
"type": "module",
|
||||
"version": "0.0.8",
|
||||
"version": "0.0.9",
|
||||
"private": true,
|
||||
"description": "PreMiD's api",
|
||||
"license": "MPL-2.0",
|
||||
|
||||
@@ -8,13 +8,17 @@ import { redis } from "../functions/createServer.js";
|
||||
const schema = type({
|
||||
token: "string.trim",
|
||||
session: "string.trim",
|
||||
version: "string.semver & string.trim",
|
||||
scienceId: "string.trim",
|
||||
});
|
||||
|
||||
export async function sessionKeepAlive(request: FastifyRequest, reply: FastifyReply) {
|
||||
//* Get the 2 headers
|
||||
//* Get the headers
|
||||
const out = schema({
|
||||
token: request.headers["x-token"],
|
||||
session: request.headers["x-session"],
|
||||
version: request.headers["x-version"] ?? "2.6.8",
|
||||
scienceId: request.headers["x-science-id"] ?? request.headers["x-token"],
|
||||
});
|
||||
|
||||
if (out instanceof type.errors)
|
||||
@@ -25,7 +29,7 @@ export async function sessionKeepAlive(request: FastifyRequest, reply: FastifyRe
|
||||
|
||||
await redis.hset(
|
||||
"pmd-api.sessions",
|
||||
out.token,
|
||||
out.scienceId,
|
||||
JSON.stringify({
|
||||
session: out.session,
|
||||
token: out.token,
|
||||
|
||||
Reference in New Issue
Block a user