From 1dba82aae598953018652999ee737a2599852da7 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 15 Nov 2018 06:21:13 +0900 Subject: [PATCH] [API] Add /instances --- src/server/api/endpoints/instances.ts | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/server/api/endpoints/instances.ts diff --git a/src/server/api/endpoints/instances.ts b/src/server/api/endpoints/instances.ts new file mode 100644 index 000000000..b7c686a35 --- /dev/null +++ b/src/server/api/endpoints/instances.ts @@ -0,0 +1,51 @@ +import $ from 'cafy'; +import define from '../define'; +import Instance from '../../../models/instance'; + +export const meta = { + requireCredential: false, + + params: { + limit: { + validator: $.num.optional.range(1, 100), + default: 30 + }, + + offset: { + validator: $.num.optional.min(0), + default: 0 + }, + + sort: { + validator: $.str.optional.or('+notes|-notes'), + } + } +}; + +export default define(meta, (ps, me) => new Promise(async (res, rej) => { + let _sort; + if (ps.sort) { + if (ps.sort == '+notes') { + _sort = { + notesCount: -1 + }; + } else if (ps.sort == '-notes') { + _sort = { + notesCount: 1 + }; + } + } else { + _sort = { + _id: -1 + }; + } + + const instances = await Instance + .find({}, { + limit: ps.limit, + sort: _sort, + skip: ps.offset + }); + + res(instances); +}));