import { db } from "../../db/postgre.js"; import { App } from "../entities/app.js"; import { AccessTokens } from "../index.js"; export const AppRepository = db.getRepository(App).extend({ async pack (src, me, options) { const opts = Object.assign({ detail: false, includeSecret: false, includeProfileImageIds: false }, options); const app = typeof src === "object" ? src : await this.findOneByOrFail({ id: src }); return { id: app.id, name: app.name, callbackUrl: app.callbackUrl, permission: app.permission, ...opts.includeSecret ? { secret: app.secret } : {}, ...me ? { isAuthorized: await AccessTokens.countBy({ appId: app.id, userId: me.id }).then((count)=>count > 0) } : {} }; } });