summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/federation
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-01-27 00:17:13 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-01-27 00:17:13 +0900
commit5f5f68cdcd31653cef2ae6bd29ce8bfcf60113ff (patch)
tree51e9e6179f6d1bda3013d1412f6e43f9f8f70e86 /packages/backend/src/server/api/endpoints/federation
parentMerge branch 'develop' (diff)
parent12.102.0 (diff)
downloadmisskey-5f5f68cdcd31653cef2ae6bd29ce8bfcf60113ff.tar.gz
misskey-5f5f68cdcd31653cef2ae6bd29ce8bfcf60113ff.tar.bz2
misskey-5f5f68cdcd31653cef2ae6bd29ce8bfcf60113ff.zip
Merge branch 'develop'
Diffstat (limited to 'packages/backend/src/server/api/endpoints/federation')
-rw-r--r--packages/backend/src/server/api/endpoints/federation/dns.ts43
-rw-r--r--packages/backend/src/server/api/endpoints/federation/followers.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/federation/following.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/federation/instances.ts13
-rw-r--r--packages/backend/src/server/api/endpoints/federation/show-instance.ts9
-rw-r--r--packages/backend/src/server/api/endpoints/federation/update-remote-user.ts5
-rw-r--r--packages/backend/src/server/api/endpoints/federation/users.ts15
7 files changed, 37 insertions, 74 deletions
diff --git a/packages/backend/src/server/api/endpoints/federation/dns.ts b/packages/backend/src/server/api/endpoints/federation/dns.ts
deleted file mode 100644
index 19e3ef8055..0000000000
--- a/packages/backend/src/server/api/endpoints/federation/dns.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { promises as dns } from 'dns';
-import $ from 'cafy';
-import define from '../../define';
-import { Instances } from '@/models/index';
-import { toPuny } from '@/misc/convert-host';
-
-const resolver = new dns.Resolver();
-resolver.setServers(['1.1.1.1']);
-
-export const meta = {
- tags: ['federation'],
-
- requireCredential: false as const,
-
- params: {
- host: {
- validator: $.str,
- },
- },
-};
-
-export default define(meta, async (ps, me) => {
- const instance = await Instances.findOneOrFail({ host: toPuny(ps.host) });
-
- const [
- resolved4,
- resolved6,
- resolvedCname,
- resolvedTxt,
- ] = await Promise.all([
- resolver.resolve4(instance.host).catch(() => []),
- resolver.resolve6(instance.host).catch(() => []),
- resolver.resolveCname(instance.host).catch(() => []),
- resolver.resolveTxt(instance.host).catch(() => []),
- ]);
-
- return {
- a: resolved4,
- aaaa: resolved6,
- cname: resolvedCname,
- txt: resolvedTxt,
- };
-});
diff --git a/packages/backend/src/server/api/endpoints/federation/followers.ts b/packages/backend/src/server/api/endpoints/federation/followers.ts
index 9cb4082bbf..c0a85f166c 100644
--- a/packages/backend/src/server/api/endpoints/federation/followers.ts
+++ b/packages/backend/src/server/api/endpoints/federation/followers.ts
@@ -7,7 +7,7 @@ import { makePaginationQuery } from '../../common/make-pagination-query';
export const meta = {
tags: ['federation'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
host: {
@@ -29,16 +29,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'Following',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const query = makePaginationQuery(Followings.createQueryBuilder('following'), ps.sinceId, ps.untilId)
.andWhere(`following.followeeHost = :host`, { host: ps.host });
diff --git a/packages/backend/src/server/api/endpoints/federation/following.ts b/packages/backend/src/server/api/endpoints/federation/following.ts
index 4a42550f93..147f0aedb2 100644
--- a/packages/backend/src/server/api/endpoints/federation/following.ts
+++ b/packages/backend/src/server/api/endpoints/federation/following.ts
@@ -7,7 +7,7 @@ import { makePaginationQuery } from '../../common/make-pagination-query';
export const meta = {
tags: ['federation'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
host: {
@@ -29,16 +29,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'Following',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const query = makePaginationQuery(Followings.createQueryBuilder('following'), ps.sinceId, ps.untilId)
.andWhere(`following.followerHost = :host`, { host: ps.host });
diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts
index 50d9ff3fd7..11df7ed6b6 100644
--- a/packages/backend/src/server/api/endpoints/federation/instances.ts
+++ b/packages/backend/src/server/api/endpoints/federation/instances.ts
@@ -7,7 +7,7 @@ import { fetchMeta } from '@/misc/fetch-meta';
export const meta = {
tags: ['federation'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
host: {
@@ -54,16 +54,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: false, nullable: false,
ref: 'FederationInstance',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const query = Instances.createQueryBuilder('instance');
diff --git a/packages/backend/src/server/api/endpoints/federation/show-instance.ts b/packages/backend/src/server/api/endpoints/federation/show-instance.ts
index 9d5d9bc9f8..6f13b28cae 100644
--- a/packages/backend/src/server/api/endpoints/federation/show-instance.ts
+++ b/packages/backend/src/server/api/endpoints/federation/show-instance.ts
@@ -6,7 +6,7 @@ import { toPuny } from '@/misc/convert-host';
export const meta = {
tags: ['federation'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
host: {
@@ -15,12 +15,13 @@ export const meta = {
},
res: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
+ type: 'object',
+ optional: true, nullable: false,
ref: 'FederationInstance',
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const instance = await Instances
.findOne({ host: toPuny(ps.host) });
diff --git a/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts b/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts
index 2ba09b1361..092f805bc2 100644
--- a/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts
+++ b/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts
@@ -7,15 +7,16 @@ import { updatePerson } from '@/remote/activitypub/models/person';
export const meta = {
tags: ['federation'],
- requireCredential: true as const,
+ requireCredential: true,
params: {
userId: {
validator: $.type(ID),
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps) => {
const user = await getRemoteUser(ps.userId);
await updatePerson(user.uri!);
diff --git a/packages/backend/src/server/api/endpoints/federation/users.ts b/packages/backend/src/server/api/endpoints/federation/users.ts
index 730dbd74c3..9a8f749936 100644
--- a/packages/backend/src/server/api/endpoints/federation/users.ts
+++ b/packages/backend/src/server/api/endpoints/federation/users.ts
@@ -7,7 +7,7 @@ import { makePaginationQuery } from '../../common/make-pagination-query';
export const meta = {
tags: ['federation'],
- requireCredential: false as const,
+ requireCredential: false,
params: {
host: {
@@ -29,16 +29,17 @@ export const meta = {
},
res: {
- type: 'array' as const,
- optional: false as const, nullable: false as const,
+ type: 'array',
+ optional: false, nullable: false,
items: {
- type: 'object' as const,
- optional: false as const, nullable: false as const,
- ref: 'User',
+ type: 'object',
+ optional: false, nullable: false,
+ ref: 'UserDetailedNotMe',
},
},
-};
+} as const;
+// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, me) => {
const query = makePaginationQuery(Users.createQueryBuilder('user'), ps.sinceId, ps.untilId)
.andWhere(`user.host = :host`, { host: ps.host });