import define from "../../define.js";
import { AccessTokens, Apps } from "../../../../models/index.js";
export const meta = {
    requireCredential: true,
    secure: true
};
export const paramDef = {
    type: "object",
    properties: {
        limit: {
            type: "integer",
            minimum: 1,
            maximum: 100,
            default: 10
        },
        offset: {
            type: "integer",
            default: 0
        },
        sort: {
            type: "string",
            enum: [
                "desc",
                "asc"
            ],
            default: "desc"
        }
    },
    required: []
};
export default define(meta, paramDef, async (ps, user)=>{
    // Get tokens
    const tokens = await AccessTokens.find({
        where: {
            userId: user.id
        },
        take: ps.limit,
        skip: ps.offset,
        order: {
            id: ps.sort === "asc" ? 1 : -1
        }
    });
    return await Promise.all(tokens.map((token)=>Apps.pack(token.appId, user, {
            detail: true
        })));
});
