summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/i/apps.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/server/api/endpoints/i/apps.ts')
-rw-r--r--packages/backend/src/server/api/endpoints/i/apps.ts52
1 files changed, 31 insertions, 21 deletions
diff --git a/packages/backend/src/server/api/endpoints/i/apps.ts b/packages/backend/src/server/api/endpoints/i/apps.ts
index eca9558847..8d5851659b 100644
--- a/packages/backend/src/server/api/endpoints/i/apps.ts
+++ b/packages/backend/src/server/api/endpoints/i/apps.ts
@@ -1,5 +1,7 @@
-import define from '../../define.js';
-import { AccessTokens } from '@/models/index.js';
+import { Inject, Injectable } from '@nestjs/common';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { AccessTokensRepository } from '@/models/index.js';
+import { DI } from '@/di-symbols.js';
export const meta = {
requireCredential: true,
@@ -16,25 +18,33 @@ export const paramDef = {
} as const;
// eslint-disable-next-line import/no-default-export
-export default define(meta, paramDef, async (ps, user) => {
- const query = AccessTokens.createQueryBuilder('token')
- .where('token.userId = :userId', { userId: user.id });
+@Injectable()
+export default class extends Endpoint<typeof meta, typeof paramDef> {
+ constructor(
+ @Inject(DI.accessTokensRepository)
+ private accessTokensRepository: AccessTokensRepository,
+ ) {
+ super(meta, paramDef, async (ps, me) => {
+ const query = this.accessTokensRepository.createQueryBuilder('token')
+ .where('token.userId = :userId', { userId: me.id });
- switch (ps.sort) {
- case '+createdAt': query.orderBy('token.createdAt', 'DESC'); break;
- case '-createdAt': query.orderBy('token.createdAt', 'ASC'); break;
- case '+lastUsedAt': query.orderBy('token.lastUsedAt', 'DESC'); break;
- case '-lastUsedAt': query.orderBy('token.lastUsedAt', 'ASC'); break;
- default: query.orderBy('token.id', 'ASC'); break;
- }
+ switch (ps.sort) {
+ case '+createdAt': query.orderBy('token.createdAt', 'DESC'); break;
+ case '-createdAt': query.orderBy('token.createdAt', 'ASC'); break;
+ case '+lastUsedAt': query.orderBy('token.lastUsedAt', 'DESC'); break;
+ case '-lastUsedAt': query.orderBy('token.lastUsedAt', 'ASC'); break;
+ default: query.orderBy('token.id', 'ASC'); break;
+ }
- const tokens = await query.getMany();
+ const tokens = await query.getMany();
- return await Promise.all(tokens.map(token => ({
- id: token.id,
- name: token.name,
- createdAt: token.createdAt,
- lastUsedAt: token.lastUsedAt,
- permission: token.permission,
- })));
-});
+ return await Promise.all(tokens.map(token => ({
+ id: token.id,
+ name: token.name,
+ createdAt: token.createdAt,
+ lastUsedAt: token.lastUsedAt,
+ permission: token.permission,
+ })));
+ });
+ }
+}