summaryrefslogtreecommitdiff
path: root/src/server/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api')
-rw-r--r--src/server/api/endpoints/admin/federation/update-instance.ts34
-rw-r--r--src/server/api/endpoints/federation/instances.ts12
2 files changed, 45 insertions, 1 deletions
diff --git a/src/server/api/endpoints/admin/federation/update-instance.ts b/src/server/api/endpoints/admin/federation/update-instance.ts
new file mode 100644
index 0000000000..de40480a49
--- /dev/null
+++ b/src/server/api/endpoints/admin/federation/update-instance.ts
@@ -0,0 +1,34 @@
+import $ from 'cafy';
+import define from '../../../define';
+import Instance from '../../../../../models/instance';
+
+export const meta = {
+ requireCredential: true,
+ requireModerator: true,
+
+ params: {
+ host: {
+ validator: $.str
+ },
+
+ isBlocked: {
+ validator: $.bool
+ },
+ }
+};
+
+export default define(meta, (ps, me) => new Promise(async (res, rej) => {
+ const instance = await Instance.findOne({ host: ps.host });
+
+ if (instance == null) {
+ return rej('instance not found');
+ }
+
+ Instance.update({ host: ps.host }, {
+ $set: {
+ isBlocked: ps.isBlocked
+ }
+ });
+
+ res();
+}));
diff --git a/src/server/api/endpoints/federation/instances.ts b/src/server/api/endpoints/federation/instances.ts
index 723cbe8fd5..ce0d10af28 100644
--- a/src/server/api/endpoints/federation/instances.ts
+++ b/src/server/api/endpoints/federation/instances.ts
@@ -6,6 +6,10 @@ export const meta = {
requireCredential: false,
params: {
+ state: {
+ validator: $.str.optional,
+ },
+
limit: {
validator: $.num.optional.range(1, 100),
default: 30
@@ -73,8 +77,14 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => {
};
}
+ const q = {} as any;
+
+ if (ps.state === 'blocked') {
+ q.isBlocked = true;
+ }
+
const instances = await Instance
- .find({}, {
+ .find(q, {
limit: ps.limit,
sort: sort,
skip: ps.offset