summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints')
-rw-r--r--src/server/api/endpoints/instances.ts51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/server/api/endpoints/instances.ts b/src/server/api/endpoints/instances.ts
new file mode 100644
index 0000000000..b7c686a353
--- /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);
+}));