diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-11-02 12:49:08 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-11-02 12:49:08 +0900 |
| commit | a7e6b766be6b30b37839beb13f31d96b141cc25a (patch) | |
| tree | b6bf96ae808260f0aa94767835d59d25f7f889a7 /src/server/api/endpoints/i/authorized_apps.ts | |
| parent | Update src/server/api/endpoints/meta.ts (diff) | |
| download | misskey-a7e6b766be6b30b37839beb13f31d96b141cc25a.tar.gz misskey-a7e6b766be6b30b37839beb13f31d96b141cc25a.tar.bz2 misskey-a7e6b766be6b30b37839beb13f31d96b141cc25a.zip | |
Resolve #2623
Diffstat (limited to 'src/server/api/endpoints/i/authorized_apps.ts')
| -rw-r--r-- | src/server/api/endpoints/i/authorized_apps.ts | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/src/server/api/endpoints/i/authorized_apps.ts b/src/server/api/endpoints/i/authorized_apps.ts index 9c15670d17..09bcd2dcb6 100644 --- a/src/server/api/endpoints/i/authorized_apps.ts +++ b/src/server/api/endpoints/i/authorized_apps.ts @@ -2,38 +2,47 @@ import $ from 'cafy'; import AccessToken from '../../../../models/access-token'; import { pack } from '../../../../models/app'; import { ILocalUser } from '../../../../models/user'; +import getParams from '../../get-params'; export const meta = { requireCredential: true, - secure: true -}; -export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { - // Get 'limit' parameter - const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit); - if (limitErr) return rej('invalid limit param'); + secure: true, + + params: { + limit: { + validator: $.num.optional.range(1, 100), + default: 10, + }, - // Get 'offset' parameter - const [offset = 0, offsetErr] = $.num.optional.min(0).get(params.offset); - if (offsetErr) return rej('invalid offset param'); + offset: { + validator: $.num.optional.min(0), + default: 0, + }, - // Get 'sort' parameter - const [sort = 'desc', sortError] = $.str.optional.or('desc asc').get(params.sort); - if (sortError) return rej('invalid sort param'); + sort: { + validator: $.str.optional.or('desc|asc'), + default: 'desc', + } + } +}; + +export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => { + const [ps, psErr] = getParams(meta, params); + if (psErr) return rej(psErr); // Get tokens const tokens = await AccessToken .find({ userId: user._id }, { - limit: limit, - skip: offset, + limit: ps.limit, + skip: ps.offset, sort: { - _id: sort == 'asc' ? 1 : -1 + _id: ps.sort == 'asc' ? 1 : -1 } }); - // Serialize res(await Promise.all(tokens.map(token => pack(token.appId, user, { detail: true })))); |