diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-02-07 18:11:20 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-02-07 18:11:20 +0900 |
| commit | c3140f57b99f9f11437279695b05ee3eccff41ca (patch) | |
| tree | d3f3e30c509c54f7443dc7712479842c03ab5b35 /src/server | |
| parent | Improve instance stats (diff) | |
| download | sharkey-c3140f57b99f9f11437279695b05ee3eccff41ca.tar.gz sharkey-c3140f57b99f9f11437279695b05ee3eccff41ca.tar.bz2 sharkey-c3140f57b99f9f11437279695b05ee3eccff41ca.zip | |
連合しているインスタンスを一覧できるように
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/api/endpoints/federation/instances.ts | 84 | ||||
| -rw-r--r-- | src/server/api/endpoints/federation/show-instance.ts | 20 | ||||
| -rw-r--r-- | src/server/api/endpoints/instances.ts | 51 |
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); -})); |