From 1112525351642f6d23a67770c8045fe858652e20 Mon Sep 17 00:00:00 2001 From: niamu01 Date: Fri, 29 Dec 2023 22:02:58 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20:sparkles:=20=EC=9E=90=EC=8B=A0?= =?UTF-8?q?=EC=9D=B4=20=ED=8C=94=EB=A1=9C=EC=9A=B0=ED=95=9C=20=EC=97=AC?= =?UTF-8?q?=EB=B6=80=20=ED=99=95=EC=9D=B8=20=EC=BF=BC=EB=A6=AC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - #406 --- app/src/follow/follow.resolve.ts | 9 +++++++++ app/src/follow/follow.service.ts | 16 ++++++++++++++++ app/src/schema.gql | 1 + 3 files changed, 26 insertions(+) diff --git a/app/src/follow/follow.resolve.ts b/app/src/follow/follow.resolve.ts index d6a54fdb..ad213f0d 100644 --- a/app/src/follow/follow.resolve.ts +++ b/app/src/follow/follow.resolve.ts @@ -62,6 +62,15 @@ export class FollowResolver { return followResult; } + @UseGuards(StatAuthGuard) + @Query((_returns) => Boolean, { nullable: true }) + async getFollowStatus( + @MyUserId() userId: number, + @Args('target') target: string, + ): Promise { + return await this.followService.followStatus(userId, target); + } + @UseGuards(StatAuthGuard) @Query((_returns) => FollowListWithCount) async getFollowerList( diff --git a/app/src/follow/follow.service.ts b/app/src/follow/follow.service.ts index 97995605..c1dba35f 100644 --- a/app/src/follow/follow.service.ts +++ b/app/src/follow/follow.service.ts @@ -293,6 +293,22 @@ export class FollowService { return await this.followModel.countDocuments({ userId, filter }); } + async followStatus( + userId: number, + target: string, + ): Promise { + const followId = await this.userIdByLogin(target); + + let isFollowing: boolean | undefined = undefined; + + await this.followModel.findOne({ + userId, + followId, + }); + + return isFollowing; + } + async checkFollowingStatus( userId: number, userPreview: UserPreview[], diff --git a/app/src/schema.gql b/app/src/schema.gql index d930e5d7..c1bb22a0 100644 --- a/app/src/schema.gql +++ b/app/src/schema.gql @@ -641,6 +641,7 @@ type Query { getEvalLogs(after: String, first: Int! = 20, corrector: String, corrected: String, projectName: String, outstandingOnly: Boolean! = false, imperfectOnly: Boolean! = false, sortOrder: EvalLogSortOrder! = BEGIN_AT_DESC): EvalLogsPaginated! getSetting: Setting! getExpTable: [ExpTable!]! + getFollowStatus(target: String!): Boolean getFollowerList(target: String!, limit: Int! = 3, sortOrder: FollowSortOrder!): FollowListWithCount! getFollowerPaginated(after: String, first: Int! = 20, target: String!, sortOrder: FollowSortOrder! = FOLLOW_AT_DESC): FollowListPaginated! getFollowingList(target: String!, limit: Int! = 3, sortOrder: FollowSortOrder!): FollowListWithCount!