iceshrimp-legacy/packages/backend/src/server/api/endpoints/auth/session/show.ts
ThatOneCalculator 7c2dabd047
no more eslint
2023-01-12 20:54:33 -08:00

65 lines
1.1 KiB
TypeScript

import define from "../../../define.js";
import { ApiError } from "../../../error.js";
import { AuthSessions } from "@/models/index.js";
export const meta = {
tags: ["auth"],
requireCredential: false,
errors: {
noSuchSession: {
message: "No such session.",
code: "NO_SUCH_SESSION",
id: "bd72c97d-eba7-4adb-a467-f171b8847250",
},
},
res: {
type: "object",
optional: false,
nullable: false,
properties: {
id: {
type: "string",
optional: false,
nullable: false,
format: "id",
},
app: {
type: "object",
optional: false,
nullable: false,
ref: "App",
},
token: {
type: "string",
optional: false,
nullable: false,
},
},
},
} as const;
export const paramDef = {
type: "object",
properties: {
token: { type: "string" },
},
required: ["token"],
} as const;
export default define(meta, paramDef, async (ps, user) => {
// Lookup session
const session = await AuthSessions.findOneBy({
token: ps.token,
});
if (session == null) {
throw new ApiError(meta.errors.noSuchSession);
}
return await AuthSessions.pack(session, user);
});