summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/federation
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-02-08 20:56:16 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-02-08 20:56:16 +0900
commit5e0eda9526d512344485a4ec642775ca04c2c1af (patch)
tree90dd49e1a9ca318816305b8e35ff812d32b91163 /src/server/api/endpoints/federation
parent10.83.0 (diff)
downloadsharkey-5e0eda9526d512344485a4ec642775ca04c2c1af.tar.gz
sharkey-5e0eda9526d512344485a4ec642775ca04c2c1af.tar.bz2
sharkey-5e0eda9526d512344485a4ec642775ca04c2c1af.zip
Improve instances manegement
Resolve #4187
Diffstat (limited to 'src/server/api/endpoints/federation')
-rw-r--r--src/server/api/endpoints/federation/instances.ts26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/server/api/endpoints/federation/instances.ts b/src/server/api/endpoints/federation/instances.ts
index 9b4efbaaff..9c1e57ee16 100644
--- a/src/server/api/endpoints/federation/instances.ts
+++ b/src/server/api/endpoints/federation/instances.ts
@@ -6,8 +6,16 @@ export const meta = {
requireCredential: false,
params: {
- state: {
- validator: $.str.optional,
+ blocked: {
+ validator: $.bool.optional.nullable,
+ },
+
+ notResponding: {
+ validator: $.bool.optional.nullable,
+ },
+
+ markedAsClosed: {
+ validator: $.bool.optional.nullable,
},
limit: {
@@ -70,6 +78,14 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => {
sort = {
caughtAt: 1
};
+ } else if (ps.sort == '+lastCommunicatedAt') {
+ sort = {
+ lastCommunicatedAt: -1
+ };
+ } else if (ps.sort == '-lastCommunicatedAt') {
+ sort = {
+ lastCommunicatedAt: 1
+ };
} else if (ps.sort == '+driveUsage') {
sort = {
driveUsage: -1
@@ -95,9 +111,9 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => {
const q = {} as any;
- if (ps.state === 'blocked') {
- q.isBlocked = true;
- }
+ if (typeof ps.blocked === 'boolean') q.isBlocked = ps.blocked;
+ if (typeof ps.notResponding === 'boolean') q.isNotResponding = ps.notResponding;
+ if (typeof ps.markedAsClosed === 'boolean') q.isMarkedAsClosed = ps.markedAsClosed;
const instances = await Instance
.find(q, {