diff --git a/src/cafe/cafe.repository.ts b/src/cafe/cafe.repository.ts index 47de4c8..50012ab 100644 --- a/src/cafe/cafe.repository.ts +++ b/src/cafe/cafe.repository.ts @@ -108,9 +108,10 @@ export class CafeRepository { async getSwipeCafeList( userUuid: string, query: GetSwipeCafeListDto, - page: number, - take = 20, ): Promise<{ data: GeneralCafeResDto[]; hasNextPage: boolean }> { + const page = query.page; + const take = query.take; + const skip = (page - 1) * take; const limit = take + 1; // +1 to check for the next page const DISLIKE_EXPIRE_DAYS = 7; @@ -145,7 +146,6 @@ export class CafeRepository { return { data: rawResult, - hasNextPage, }; } diff --git a/src/cafe/cafe.service.ts b/src/cafe/cafe.service.ts index e6480b0..540470b 100644 --- a/src/cafe/cafe.service.ts +++ b/src/cafe/cafe.service.ts @@ -106,33 +106,31 @@ export class CafeService { async getSwipeCafeList( user: User, query: GetSwipeCafeListDto, - page = 1, - take = 20, ): Promise { + // GPS coordinates Validation if (!this.isValidKoreanGPS(query.latitude, query.longitude)) { throw new BadRequestException( 'Wrong GPS coordinates (out of South Korea)', ); } - const { data, hasNextPage } = await this.cafeRepository.getSwipeCafeList( - user.uuid, - query, - page, - take, - ); - - if (page < 1) { + // Pagination values Validation + if (query.page < 1) { throw new BadRequestException('Page must be greater than 0'); } - if (take < 1 || take > 20) { + if (query.take < 1 || query.take > 20) { throw new BadRequestException('Take must be between 1 and 20'); } + const { data, hasNextPage } = await this.cafeRepository.getSwipeCafeList( + user.uuid, + query, + ); + const result: SwipeCafeListResDto = { data, - nextPage: page + 1, + nextPage: query.page + 1, cafeCount: data.length, hasNextPage, }; diff --git a/src/cafe/dto/req/getSwipeCafeList.dto.ts b/src/cafe/dto/req/getSwipeCafeList.dto.ts index 8c0b689..138e7d1 100644 --- a/src/cafe/dto/req/getSwipeCafeList.dto.ts +++ b/src/cafe/dto/req/getSwipeCafeList.dto.ts @@ -12,7 +12,7 @@ export class GetSwipeCafeListDto extends GetNearCafeListDto { @IsNumber() @IsOptional() @Type(() => Number) - page: number; + page: number = 1; @ApiProperty({ example: 20,