Skip to content

Commit 4fe1504

Browse files
committed
style: prettier 포맷팅 적용
1 parent 131fc22 commit 4fe1504

File tree

3 files changed

+52
-57
lines changed

3 files changed

+52
-57
lines changed

src/controllers/svg.controller.ts

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
1-
import { NextFunction, RequestHandler, Request, Response } from "express";
2-
import logger from '@/configs/logger.config'
3-
import { GetSvgBadgeQuery, BadgeDataResponseDto } from "@/types";
1+
import { NextFunction, RequestHandler, Request, Response } from 'express';
2+
import logger from '@/configs/logger.config';
3+
import { GetSvgBadgeQuery, BadgeDataResponseDto } from '@/types';
44
import { SvgService } from '@/services/svg.service';
55

66
export class SvgController {
7-
constructor(private svgService: SvgService) {}
7+
constructor(private svgService: SvgService) {}
88

9-
getSvgBadge: RequestHandler = async (
10-
req: Request<object, object, object, GetSvgBadgeQuery>,
11-
res: Response<BadgeDataResponseDto>,
12-
next: NextFunction,
13-
) => {
14-
try {
15-
const { username } = req.params as { username: string };
16-
const { type = 'default'} = req.query;
9+
getSvgBadge: RequestHandler = async (
10+
req: Request<object, object, object, GetSvgBadgeQuery>,
11+
res: Response<BadgeDataResponseDto>,
12+
next: NextFunction,
13+
) => {
14+
try {
15+
const { username } = req.params as { username: string };
16+
const { type = 'default' } = req.query;
1717

18-
const data = await this.svgService.getBadgeData(username, type);
19-
const response = new BadgeDataResponseDto(true, '배지 데이터 조회에 성공하였습니다.', data, null);
18+
const data = await this.svgService.getBadgeData(username, type);
19+
const response = new BadgeDataResponseDto(true, '배지 데이터 조회에 성공하였습니다.', data, null);
2020

21-
res.status(200).json(response);
22-
} catch (error) {
23-
logger.error('SVG Badge 조회 실패:', error);
24-
next(error);
25-
}
21+
res.status(200).json(response);
22+
} catch (error) {
23+
logger.error('SVG Badge 조회 실패:', error);
24+
next(error);
2625
}
26+
};
2727
}

src/routes/svg.router.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,6 @@ const svgController = new SvgController(svgService);
6868
* '500':
6969
* description: 서버 오류
7070
*/
71-
router.get(
72-
'/:username/badge',
73-
validateRequestDto(GetSvgBadgeQueryDto, 'query'),
74-
svgController.getSvgBadge,
75-
);
71+
router.get('/:username/badge', validateRequestDto(GetSvgBadgeQueryDto, 'query'), svgController.getSvgBadge);
7672

7773
export default router;

src/services/svg.service.ts

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,40 @@ import logger from '@/configs/logger.config';
22
import { SvgBadgeType, BadgeData } from '@/types';
33
import { LeaderboardRepository } from '@/repositories/leaderboard.repository';
44

5+
const safeNumber = (value: any, defaultValue: number = 0): number => {
6+
const num = Number(value);
7+
return isNaN(num) ? defaultValue : num;
8+
};
9+
510
export class SvgService {
6-
constructor(private leaderboardRepo: LeaderboardRepository) {}
11+
constructor(private leaderboardRepo: LeaderboardRepository) {}
712

8-
async getBadgeData(
9-
username: string,
10-
type: SvgBadgeType,
11-
dateRange: number = 30,
12-
): Promise<BadgeData> {
13-
try {
14-
const userStats = await this.leaderboardRepo.getUserStats(username, dateRange);
15-
const recentPosts = type === 'default'
16-
? await this.leaderboardRepo.getRecentPosts(username, dateRange, 3)
17-
: [];
13+
async getBadgeData(username: string, type: SvgBadgeType, dateRange: number = 30): Promise<BadgeData> {
14+
try {
15+
const userStats = await this.leaderboardRepo.getUserStats(username, dateRange);
16+
const recentPosts = type === 'default' ? await this.leaderboardRepo.getRecentPosts(username, dateRange, 3) : [];
1817

19-
return {
20-
user: {
21-
username: userStats.username,
22-
totalViews: Number(userStats.total_views),
23-
totalLikes: Number(userStats.total_likes),
24-
totalPosts: Number(userStats.total_posts),
25-
viewDiff: Number(userStats.view_diff),
26-
likeDiff: Number(userStats.like_diff),
27-
postDiff: Number(userStats.post_diff),
28-
},
29-
recentPosts: recentPosts.map(post => ({
30-
title: post.title,
31-
releasedAt: post.released_at,
32-
viewCount: Number(post.today_view),
33-
likeCount: Number(post.today_like),
34-
viewDiff: Number(post.view_diff),
35-
}))
36-
};
37-
} catch (error) {
38-
logger.error('SvgService getBadgeData error: ', error);
39-
throw error;
40-
}
18+
return {
19+
user: {
20+
username: userStats.username,
21+
totalViews: safeNumber(userStats.total_views),
22+
totalLikes: safeNumber(userStats.total_likes),
23+
totalPosts: safeNumber(userStats.total_posts),
24+
viewDiff: safeNumber(userStats.view_diff),
25+
likeDiff: safeNumber(userStats.like_diff),
26+
postDiff: safeNumber(userStats.post_diff),
27+
},
28+
recentPosts: recentPosts.map((post) => ({
29+
title: post.title,
30+
releasedAt: post.released_at,
31+
viewCount: safeNumber(post.today_view),
32+
likeCount: safeNumber(post.today_like),
33+
viewDiff: safeNumber(post.view_diff),
34+
})),
35+
};
36+
} catch (error) {
37+
logger.error('SvgService getBadgeData error: ', error);
38+
throw error;
4139
}
40+
}
4241
}

0 commit comments

Comments
 (0)