summaryrefslogtreecommitdiff
path: root/src/server/api
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-02-07 18:11:20 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-02-07 18:11:20 +0900
commitc3140f57b99f9f11437279695b05ee3eccff41ca (patch)
treed3f3e30c509c54f7443dc7712479842c03ab5b35 /src/server/api
parentImprove instance stats (diff)
downloadsharkey-c3140f57b99f9f11437279695b05ee3eccff41ca.tar.gz
sharkey-c3140f57b99f9f11437279695b05ee3eccff41ca.tar.bz2
sharkey-c3140f57b99f9f11437279695b05ee3eccff41ca.zip
連合しているインスタンスを一覧できるように
Diffstat (limited to 'src/server/api')
-rw-r--r--src/server/api/endpoints/federation/instances.ts84
-rw-r--r--src/server/api/endpoints/federation/show-instance.ts20
-rw-r--r--src/server/api/endpoints/instances.ts51
3 files changed, 104 insertions, 51 deletions
diff --git a/src/server/api/endpoints/federation/instances.ts b/src/server/api/endpoints/federation/instances.ts
new file mode 100644
index 0000000000..723cbe8fd5
--- /dev/null
+++ b/src/server/api/endpoints/federation/instances.ts
@@ -0,0 +1,84 @@
+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,
+ }
+ }
+};
+
+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 if (ps.sort == '+users') {
+ sort = {
+ usersCount: -1
+ };
+ } else if (ps.sort == '-users') {
+ sort = {
+ usersCount: 1
+ };
+ } else if (ps.sort == '+following') {
+ sort = {
+ followingCount: -1
+ };
+ } else if (ps.sort == '-following') {
+ sort = {
+ followingCount: 1
+ };
+ } else if (ps.sort == '+followers') {
+ sort = {
+ followersCount: -1
+ };
+ } else if (ps.sort == '-followers') {
+ sort = {
+ followersCount: 1
+ };
+ } else if (ps.sort == '+caughtAt') {
+ sort = {
+ caughtAt: -1
+ };
+ } else if (ps.sort == '-caughtAt') {
+ sort = {
+ caughtAt: 1
+ };
+ }
+ } else {
+ sort = {
+ _id: -1
+ };
+ }
+
+ const instances = await Instance
+ .find({}, {
+ limit: ps.limit,
+ sort: sort,
+ skip: ps.offset
+ });
+
+ res(instances);
+}));
diff --git a/src/server/api/endpoints/federation/show-instance.ts b/src/server/api/endpoints/federation/show-instance.ts
new file mode 100644
index 0000000000..ad31c56afc
--- /dev/null
+++ b/src/server/api/endpoints/federation/show-instance.ts
@@ -0,0 +1,20 @@
+import $ from 'cafy';
+import define from '../../define';
+import Instance from '../../../../models/instance';
+
+export const meta = {
+ requireCredential: false,
+
+ params: {
+ host: {
+ validator: $.str
+ }
+ }
+};
+
+export default define(meta, (ps, me) => new Promise(async (res, rej) => {
+ const instance = await Instance
+ .findOne({ host: ps.host });
+
+ res(instance);
+}));
diff --git a/src/server/api/endpoints/instances.ts b/src/server/api/endpoints/instances.ts
deleted file mode 100644
index b7c686a353..0000000000
--- a/src/server/api/endpoints/instances.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-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);
-}));