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/notes/polls | |
| parent | Update src/server/api/endpoints/meta.ts (diff) | |
| download | sharkey-a7e6b766be6b30b37839beb13f31d96b141cc25a.tar.gz sharkey-a7e6b766be6b30b37839beb13f31d96b141cc25a.tar.bz2 sharkey-a7e6b766be6b30b37839beb13f31d96b141cc25a.zip | |
Resolve #2623
Diffstat (limited to 'src/server/api/endpoints/notes/polls')
| -rw-r--r-- | src/server/api/endpoints/notes/polls/recommendation.ts | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/server/api/endpoints/notes/polls/recommendation.ts b/src/server/api/endpoints/notes/polls/recommendation.ts index 9af223c010..34250a32f9 100644 --- a/src/server/api/endpoints/notes/polls/recommendation.ts +++ b/src/server/api/endpoints/notes/polls/recommendation.ts @@ -2,6 +2,7 @@ import $ from 'cafy'; import Vote from '../../../../../models/poll-vote'; import Note, { pack } from '../../../../../models/note'; import { ILocalUser } from '../../../../../models/user'; +import getParams from '../../../get-params'; export const meta = { desc: { @@ -10,16 +11,23 @@ export const meta = { }, requireCredential: true, + + params: { + limit: { + validator: $.num.optional.range(1, 100), + default: 10 + }, + + offset: { + validator: $.num.optional.min(0), + default: 0 + } + } }; 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'); - - // Get 'offset' parameter - const [offset = 0, offsetErr] = $.num.optional.min(0).get(params.offset); - if (offsetErr) return rej('invalid offset param'); + const [ps, psErr] = getParams(meta, params); + if (psErr) return rej(psErr); // Get votes const votes = await Vote.find({ @@ -46,14 +54,14 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = $ne: null } }, { - limit: limit, - skip: offset, + limit: ps.limit, + skip: ps.offset, sort: { _id: -1 } }); - // Serialize - res(await Promise.all(notes.map(async note => - await pack(note, user, { detail: true })))); + res(await Promise.all(notes.map(note => pack(note, user, { + detail: true + })))); }); |