summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/federation
diff options
context:
space:
mode:
authorおさむのひと <46447427+samunohito@users.noreply.github.com>2023-12-02 21:00:05 +0900
committerGitHub <noreply@github.com>2023-12-02 21:00:05 +0900
commit336416261a0a9f46467f90e93854d81ca01292d9 (patch)
tree8ae444f178513fce8f29c2ad3366d5cac71fdb41 /packages/backend/src/server/api/endpoints/federation
parentfix: #12544 (#12545) (diff)
downloadsharkey-336416261a0a9f46467f90e93854d81ca01292d9.tar.gz
sharkey-336416261a0a9f46467f90e93854d81ca01292d9.tar.bz2
sharkey-336416261a0a9f46467f90e93854d81ca01292d9.zip
バックエンドが生成するapi.jsonからmisskey-jsの型を作成する (#12434)
* ひとまず生成できるところまで * ファイル構成整理 * 生成コマンド整理 * misskey-jsへの組み込み * fix generator.ts * wip * fix generator.ts * fix package.json * 生成ロジックの調整 * 型レベルでのswitch-case機構をmisskey-jsからfrontendに持ち込めるようにした * 型チェック用のtsconfig.jsonを作成 * 他のエンドポイントを呼ぶ関数にも適用 * 未使用エンティティなどを削除 * misskey-js側で手動定義されていた型を自動生成された型に移行(ただしapi.jsonがvalidでなくなってしまったので後で修正する) * messagingは廃止されている(テストのビルドエラー解消) * validなapi.jsonを出力できるように修正 * 修正漏れ対応 * Ajvに怒られて起動できなかったところを修正 * fix ci(途中) * パラメータenumをやめる * add command * add api.json * 都度自動生成をやめる * 一気通貫スクリプト修正 * fix ci * 生成ロジック修正 * フロントの型チェックは結局やらなかったので戻しておく * fix pnpm-lock.yaml * add README.md --------- Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com> Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Diffstat (limited to 'packages/backend/src/server/api/endpoints/federation')
-rw-r--r--packages/backend/src/server/api/endpoints/federation/instances.ts29
1 files changed, 24 insertions, 5 deletions
diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts
index c8beefa9c7..e5a90715f5 100644
--- a/packages/backend/src/server/api/endpoints/federation/instances.ts
+++ b/packages/backend/src/server/api/endpoints/federation/instances.ts
@@ -36,13 +36,32 @@ export const paramDef = {
blocked: { type: 'boolean', nullable: true },
notResponding: { type: 'boolean', nullable: true },
suspended: { type: 'boolean', nullable: true },
- silenced: { type: "boolean", nullable: true },
+ silenced: { type: 'boolean', nullable: true },
federating: { type: 'boolean', nullable: true },
subscribing: { type: 'boolean', nullable: true },
publishing: { type: 'boolean', nullable: true },
limit: { type: 'integer', minimum: 1, maximum: 100, default: 30 },
offset: { type: 'integer', default: 0 },
- sort: { type: 'string' },
+ sort: {
+ type: 'string',
+ nullable: true,
+ enum: [
+ '+pubSub',
+ '-pubSub',
+ '+notes',
+ '-notes',
+ '+users',
+ '-users',
+ '+following',
+ '-following',
+ '+followers',
+ '-followers',
+ '+firstRetrievedAt',
+ '-firstRetrievedAt',
+ '+latestRequestReceivedAt',
+ '-latestRequestReceivedAt',
+ ],
+ },
},
required: [],
} as const;
@@ -103,18 +122,18 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
}
}
- if (typeof ps.silenced === "boolean") {
+ if (typeof ps.silenced === 'boolean') {
const meta = await this.metaService.fetch(true);
if (ps.silenced) {
if (meta.silencedHosts.length === 0) {
return [];
}
- query.andWhere("instance.host IN (:...silences)", {
+ query.andWhere('instance.host IN (:...silences)', {
silences: meta.silencedHosts,
});
} else if (meta.silencedHosts.length > 0) {
- query.andWhere("instance.host NOT IN (:...silences)", {
+ query.andWhere('instance.host NOT IN (:...silences)', {
silences: meta.silencedHosts,
});
}