From a7e6b766be6b30b37839beb13f31d96b141cc25a Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 2 Nov 2018 12:49:08 +0900 Subject: Resolve #2623 --- src/server/api/endpoints/messaging/history.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/server/api/endpoints/messaging') diff --git a/src/server/api/endpoints/messaging/history.ts b/src/server/api/endpoints/messaging/history.ts index 1dd08cd13c..078af21f27 100644 --- a/src/server/api/endpoints/messaging/history.ts +++ b/src/server/api/endpoints/messaging/history.ts @@ -3,6 +3,7 @@ import History from '../../../../models/messaging-history'; import Mute from '../../../../models/mute'; import { pack } from '../../../../models/messaging-message'; import { ILocalUser } from '../../../../models/user'; +import getParams from '../../get-params'; export const meta = { desc: { @@ -12,13 +13,19 @@ export const meta = { requireCredential: true, - kind: 'messaging-read' + kind: 'messaging-read', + + params: { + limit: { + validator: $.num.optional.range(1, 100), + default: 10 + } + } }; 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'); + const [ps, psErr] = getParams(meta, params); + if (psErr) return rej(psErr); const mute = await Mute.find({ muterId: user._id, @@ -33,12 +40,11 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) = $nin: mute.map(m => m.muteeId) } }, { - limit: limit, + limit: ps.limit, sort: { updatedAt: -1 } }); - // Serialize res(await Promise.all(history.map(h => pack(h.messageId, user)))); }); -- cgit v1.2.3-freya