summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/i/apps.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
commit0e4a111f81cceed275d9bec2695f6e401fb654d8 (patch)
tree40874799472fa07416f17b50a398ac33b7771905 /packages/backend/src/server/api/endpoints/i/apps.ts
parentupdate deps (diff)
downloadmisskey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.gz
misskey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.bz2
misskey-0e4a111f81cceed275d9bec2695f6e401fb654d8.zip
refactoring
Resolve #7779
Diffstat (limited to 'packages/backend/src/server/api/endpoints/i/apps.ts')
-rw-r--r--packages/backend/src/server/api/endpoints/i/apps.ts43
1 files changed, 43 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/endpoints/i/apps.ts b/packages/backend/src/server/api/endpoints/i/apps.ts
new file mode 100644
index 0000000000..994528e5c9
--- /dev/null
+++ b/packages/backend/src/server/api/endpoints/i/apps.ts
@@ -0,0 +1,43 @@
+import $ from 'cafy';
+import define from '../../define';
+import { AccessTokens } from '@/models/index';
+
+export const meta = {
+ requireCredential: true as const,
+
+ secure: true,
+
+ params: {
+ sort: {
+ validator: $.optional.str.or([
+ '+createdAt',
+ '-createdAt',
+ '+lastUsedAt',
+ '-lastUsedAt',
+ ]),
+ },
+ }
+};
+
+export default define(meta, async (ps, user) => {
+ const query = AccessTokens.createQueryBuilder('token')
+ .where('token.userId = :userId', { userId: user.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;
+ }
+
+ 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,
+ })));
+});