diff --git a/apps/backend/src/rank/decorator/getRank.decorator.ts b/apps/backend/src/rank/decorator/getRank.decorator.ts index d2b3845..fdb8e82 100644 --- a/apps/backend/src/rank/decorator/getRank.decorator.ts +++ b/apps/backend/src/rank/decorator/getRank.decorator.ts @@ -9,7 +9,31 @@ export function getRankResponseDecorator() { ApiResponse({ status: 200, description: '랭킹 조회 성공', - type: GetRankSuccessResponseDto + type: GetRankSuccessResponseDto, + examples: { + success: { + summary: '랭킹이 있는 경우', + value: { + code: 200, + message: '현재 랭킹을 조회했습니다.', + data: { + rank: 5, + percentage: 50 + } + } + }, + noRank: { + summary: '랭킹이 갱신되지 않은 경우', + value: { + code: 200, + message: '현재 랭킹을 조회했습니다.', + data: { + rank: -1, + percentage: null + } + } + } + } }) ); } diff --git a/apps/backend/src/rank/dto/getRank.dto.ts b/apps/backend/src/rank/dto/getRank.dto.ts index b2afc0c..3133810 100644 --- a/apps/backend/src/rank/dto/getRank.dto.ts +++ b/apps/backend/src/rank/dto/getRank.dto.ts @@ -3,9 +3,15 @@ import { ApiProperty } from '@nestjs/swagger'; export class GetRankDataDto { @ApiProperty({ description: '순위', - example: '5' + example: 33 }) rank: number; + + @ApiProperty({ + description: '백분율', + example: 50 + }) + percentage: number | null; } export class GetRankSuccessResponseDto { diff --git a/apps/backend/src/rank/rank.service.ts b/apps/backend/src/rank/rank.service.ts index 6a94a26..52e4fa4 100644 --- a/apps/backend/src/rank/rank.service.ts +++ b/apps/backend/src/rank/rank.service.ts @@ -43,6 +43,6 @@ export class RankService { const totalmembers = await this.redisClient.zCard('ranking'); if (!rank) return { rank: -1, percentage: null }; const percentage = ((rank + 1) / totalmembers) * 100; - return { rank: rank + 1, percentage: percentage.toFixed(0) }; + return { rank: rank + 1, percentage: percentage == 0 ? 1 : percentage.toFixed(0) }; } }