From 877225e9c34831e090787bf265573ea462e7f53e Mon Sep 17 00:00:00 2001 From: niamu01 Date: Fri, 29 Dec 2023 22:40:58 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20:recycle:=20list=20=EC=BF=BC?= =?UTF-8?q?=EB=A6=AC=EC=97=90=EB=8F=84=20sort=EC=9D=98=20defaultvalue=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - #406 fix: :bug: following 관련 함수에서 사용한 follower -> following 수정 - #406 fix: :bug: 파일명 수정 resolve -> resolver style: :art: 변수 선언 시 필요 없는 타입 어노테이션 제거 - #406 fix: :bug: 필요없는 if 검사 삭제 - #406 fix: :bug: 변수 대입을 안하고 있었던 부분 수정 (...) --- app/src/follow/follow.module.ts | 2 +- .../{follow.resolve.ts => follow.resolver.ts} | 10 +++++++-- app/src/follow/follow.service.ts | 22 +++++++++---------- app/src/schema.gql | 4 ++-- 4 files changed, 21 insertions(+), 17 deletions(-) rename app/src/follow/{follow.resolve.ts => follow.resolver.ts} (94%) diff --git a/app/src/follow/follow.module.ts b/app/src/follow/follow.module.ts index aa5f0a08..055295d5 100644 --- a/app/src/follow/follow.module.ts +++ b/app/src/follow/follow.module.ts @@ -3,7 +3,7 @@ import { MongooseModule } from '@nestjs/mongoose'; import { CursusUserModule } from 'src/api/cursusUser/cursusUser.module'; import { PaginationCursorModule } from 'src/pagination/cursor/pagination.cursor.module'; import { FollowSchema, follow } from './db/follow.database.schema'; -import { FollowResolver } from './follow.resolve'; +import { FollowResolver } from './follow.resolver'; import { FollowService } from './follow.service'; @Module({ diff --git a/app/src/follow/follow.resolve.ts b/app/src/follow/follow.resolver.ts similarity index 94% rename from app/src/follow/follow.resolve.ts rename to app/src/follow/follow.resolver.ts index ad213f0d..370d5244 100644 --- a/app/src/follow/follow.resolve.ts +++ b/app/src/follow/follow.resolver.ts @@ -77,7 +77,10 @@ export class FollowResolver { @MyUserId() userId: number, @Args('target') target: string, @Args('limit', { defaultValue: 3 }) limit: number, - @Args('sortOrder', { type: () => FollowSortOrder }) + @Args('sortOrder', { + type: () => FollowSortOrder, + defaultValue: FollowSortOrder.FOLLOW_AT_DESC, + }) sortOrder: FollowSortOrder, ): Promise { const targetId = await this.followService.userIdByLogin(target); @@ -111,7 +114,10 @@ export class FollowResolver { @MyUserId() userId: number, @Args('target') target: string, @Args('limit', { defaultValue: 3 }) limit: number, - @Args('sortOrder', { type: () => FollowSortOrder }) + @Args('sortOrder', { + type: () => FollowSortOrder, + defaultValue: FollowSortOrder.FOLLOW_AT_DESC, + }) sortOrder: FollowSortOrder, ): Promise { const targetId = await this.followService.userIdByLogin(target); diff --git a/app/src/follow/follow.service.ts b/app/src/follow/follow.service.ts index c1dba35f..b0c36203 100644 --- a/app/src/follow/follow.service.ts +++ b/app/src/follow/follow.service.ts @@ -123,7 +123,7 @@ export class FollowService { .sort(followSort(sortOrder)) .limit(limit); - const followerUserPreview: UserPreview[] = await Promise.all( + const followerUserPreview = await Promise.all( follower.map(async (follower) => { const userPreview = await this.cursusUserService.findOneUserPreviewAndLean({ @@ -211,7 +211,7 @@ export class FollowService { .sort(followSort(sortOrder)) .limit(limit); - const followingUserPreview: UserPreview[] = await Promise.all( + const followingUserPreview = await Promise.all( following.map(async (following) => { const userPreview = await this.cursusUserService.findOneUserPreviewAndLean({ @@ -235,7 +235,7 @@ export class FollowService { ): Promise { const targetId = await this.userIdByLogin(target); - const totalCount = await this.followerCount(targetId); + const totalCount = await this.followingCount(targetId); const aggregate = this.followModel.aggregate(); const filter: FilterQuery = {}; @@ -301,10 +301,12 @@ export class FollowService { let isFollowing: boolean | undefined = undefined; - await this.followModel.findOne({ - userId, - followId, - }); + if (userId !== followId) { + isFollowing = !!(await this.followModel.findOne({ + userId, + followId, + })); + } return isFollowing; } @@ -314,10 +316,6 @@ export class FollowService { userPreview: UserPreview[], ): Promise { const followList = userPreview.map(async (user) => { - if (!user) { - throw new NotFoundException(); - } - let isFollowing: boolean | undefined = undefined; if (userId !== user.id) { @@ -332,7 +330,7 @@ export class FollowService { return { isFollowing, user }; }); - return Promise.all(followList); + return await Promise.all(followList); } private generateEmptyPage(): FollowListPaginated { diff --git a/app/src/schema.gql b/app/src/schema.gql index c1bb22a0..02aa9ff2 100644 --- a/app/src/schema.gql +++ b/app/src/schema.gql @@ -642,9 +642,9 @@ type Query { getSetting: Setting! getExpTable: [ExpTable!]! getFollowStatus(target: String!): Boolean - getFollowerList(target: String!, limit: Int! = 3, sortOrder: FollowSortOrder!): FollowListWithCount! + getFollowerList(target: String!, limit: Int! = 3, sortOrder: FollowSortOrder! = FOLLOW_AT_DESC): FollowListWithCount! getFollowerPaginated(after: String, first: Int! = 20, target: String!, sortOrder: FollowSortOrder! = FOLLOW_AT_DESC): FollowListPaginated! - getFollowingList(target: String!, limit: Int! = 3, sortOrder: FollowSortOrder!): FollowListWithCount! + getFollowingList(target: String!, limit: Int! = 3, sortOrder: FollowSortOrder! = FOLLOW_AT_DESC): FollowListWithCount! getFollowingPaginated(after: String, first: Int! = 20, target: String!, sortOrder: FollowSortOrder! = FOLLOW_AT_DESC): FollowListPaginated! }