summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2024-11-02 22:02:54 +0000
committerdakkar <dakkar@thenautilus.net>2024-11-02 22:02:54 +0000
commitfa03c4cebeb5ef5dbd32b89328da2065d4a6e8d1 (patch)
treee4b63b5a0f498408e5fbd4c96bd1426a85390cbc /packages/backend/src/server/api/endpoints
parentmerge: Fix frontend TS configs (!725) (diff)
parentfix lint errors in FollowingEntityService.ts (diff)
downloadsharkey-fa03c4cebeb5ef5dbd32b89328da2065d4a6e8d1.tar.gz
sharkey-fa03c4cebeb5ef5dbd32b89328da2065d4a6e8d1.tar.bz2
sharkey-fa03c4cebeb5ef5dbd32b89328da2065d4a6e8d1.zip
merge: Respect user privacy settings in federation endpoints (resolves #712) (!652)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/652 Closes #712 Approved-by: Marie <github@yuugi.dev> Approved-by: dakkar <dakkar@thenautilus.net>
Diffstat (limited to 'packages/backend/src/server/api/endpoints')
-rw-r--r--packages/backend/src/server/api/endpoints/federation/followers.ts21
-rw-r--r--packages/backend/src/server/api/endpoints/federation/following.ts21
2 files changed, 8 insertions, 34 deletions
diff --git a/packages/backend/src/server/api/endpoints/federation/followers.ts b/packages/backend/src/server/api/endpoints/federation/followers.ts
index 45a38e86d9..d5b80035df 100644
--- a/packages/backend/src/server/api/endpoints/federation/followers.ts
+++ b/packages/backend/src/server/api/endpoints/federation/followers.ts
@@ -3,17 +3,15 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import { Inject, Injectable } from '@nestjs/common';
+import { Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
-import type { FollowingsRepository } from '@/models/_.js';
-import { QueryService } from '@/core/QueryService.js';
import { FollowingEntityService } from '@/core/entities/FollowingEntityService.js';
-import { DI } from '@/di-symbols.js';
export const meta = {
tags: ['federation'],
- requireCredential: false,
+ requireCredential: true,
+ kind: 'read:account',
res: {
type: 'array',
@@ -42,21 +40,10 @@ export const paramDef = {
@Injectable()
export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-disable-line import/no-default-export
constructor(
- @Inject(DI.followingsRepository)
- private followingsRepository: FollowingsRepository,
-
private followingEntityService: FollowingEntityService,
- private queryService: QueryService,
) {
super(meta, paramDef, async (ps, me) => {
- const query = this.queryService.makePaginationQuery(this.followingsRepository.createQueryBuilder('following'), ps.sinceId, ps.untilId)
- .andWhere('following.followeeHost = :host', { host: ps.host });
-
- const followings = await query
- .limit(ps.limit)
- .getMany();
-
- return await this.followingEntityService.packMany(followings, me, { populateFollowee: ps.includeFollowee, populateFollower: ps.includeFollower });
+ return this.followingEntityService.getFollowers(me, ps);
});
}
}
diff --git a/packages/backend/src/server/api/endpoints/federation/following.ts b/packages/backend/src/server/api/endpoints/federation/following.ts
index 23257ae926..215f94fbcc 100644
--- a/packages/backend/src/server/api/endpoints/federation/following.ts
+++ b/packages/backend/src/server/api/endpoints/federation/following.ts
@@ -3,17 +3,15 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import { Inject, Injectable } from '@nestjs/common';
+import { Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
-import type { FollowingsRepository } from '@/models/_.js';
-import { QueryService } from '@/core/QueryService.js';
import { FollowingEntityService } from '@/core/entities/FollowingEntityService.js';
-import { DI } from '@/di-symbols.js';
export const meta = {
tags: ['federation'],
- requireCredential: false,
+ requireCredential: true,
+ kind: 'read:account',
res: {
type: 'array',
@@ -42,21 +40,10 @@ export const paramDef = {
@Injectable()
export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-disable-line import/no-default-export
constructor(
- @Inject(DI.followingsRepository)
- private followingsRepository: FollowingsRepository,
-
private followingEntityService: FollowingEntityService,
- private queryService: QueryService,
) {
super(meta, paramDef, async (ps, me) => {
- const query = this.queryService.makePaginationQuery(this.followingsRepository.createQueryBuilder('following'), ps.sinceId, ps.untilId)
- .andWhere('following.followerHost = :host', { host: ps.host });
-
- const followings = await query
- .limit(ps.limit)
- .getMany();
-
- return await this.followingEntityService.packMany(followings, me, { populateFollowee: ps.includeFollowee, populateFollower: ps.includeFollower });
+ return this.followingEntityService.getFollowing(me, ps);
});
}
}