diff options
| author | Marie <marie@kaifa.ch> | 2024-01-02 13:35:03 +0100 |
|---|---|---|
| committer | Marie <marie@kaifa.ch> | 2024-01-02 13:35:03 +0100 |
| commit | a1a57889fc1e5094b2ff10989295a2d2eab544ff (patch) | |
| tree | 1d459b286f052c98f5187054e7865a51f29cbc53 /packages/backend/src/server/api/endpoints/federation | |
| parent | upd: higher character limit for poll options (diff) | |
| download | sharkey-a1a57889fc1e5094b2ff10989295a2d2eab544ff.tar.gz sharkey-a1a57889fc1e5094b2ff10989295a2d2eab544ff.tar.bz2 sharkey-a1a57889fc1e5094b2ff10989295a2d2eab544ff.zip | |
upd: add bubble to instance federation page as state
Closes #296
Diffstat (limited to 'packages/backend/src/server/api/endpoints/federation')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/federation/instances.ts | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts index 617ca65733..053da421d6 100644 --- a/packages/backend/src/server/api/endpoints/federation/instances.ts +++ b/packages/backend/src/server/api/endpoints/federation/instances.ts @@ -41,6 +41,7 @@ export const paramDef = { subscribing: { type: 'boolean', nullable: true }, publishing: { type: 'boolean', nullable: true }, nsfw: { type: 'boolean', nullable: true }, + bubble: { type: 'boolean', nullable: true }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 30 }, offset: { type: 'integer', default: 0 }, sort: { @@ -148,6 +149,23 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- } } + if (typeof ps.bubble === 'boolean') { + const meta = await this.metaService.fetch(true); + + if (ps.bubble) { + if (meta.bubbleInstances.length === 0) { + return []; + } + query.andWhere('instance.host IN (:...bubble)', { + silences: meta.bubbleInstances, + }); + } else if (meta.bubbleInstances.length > 0) { + query.andWhere('instance.host NOT IN (:...bubble)', { + bubble: meta.bubbleInstances, + }); + } + } + if (typeof ps.federating === 'boolean') { if (ps.federating) { query.andWhere('((instance.followingCount > 0) OR (instance.followersCount > 0))'); |