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
            }
        }
    }
};
export const paramDef = {
    type: "object",
    properties: {
        token: {
            type: "string"
        }
    },
    required: [
        "token"
    ]
};
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);
});
