Skip to content

Commit 9474d73

Browse files
committed
refactor: use-date-util
1 parent ab132f7 commit 9474d73

File tree

8 files changed

+24
-13
lines changed

8 files changed

+24
-13
lines changed

src/app.module.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {
2+
Logger,
23
MiddlewareConsumer,
34
Module,
45
NestModule,
@@ -21,6 +22,8 @@ import { PathBlockMiddleware } from './common/middleware/path-block-middleware';
2122
import { DiscordWebhookService } from './common/discord/discord-webhook.service';
2223
import { HttpModule } from '@nestjs/axios';
2324
import { OpenaiModule } from './common/openai/openai.module';
25+
import { tz } from './common/utils/date-util';
26+
import dayjs from 'dayjs';
2427

2528
@Module({
2629
imports: [
@@ -84,6 +87,7 @@ export class AppModule implements NestModule, OnApplicationBootstrap {
8487
) {}
8588

8689
async onApplicationBootstrap() {
90+
Logger.debug(`[CURRENT TIME] ${tz().format()}`);
8791
await this.furnitureSeedService.sync();
8892
await this.ecoVerificationSeedService.sync();
8993
}

src/common/discord/discord-webhook.service.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Injectable, Logger } from '@nestjs/common';
22
import { HttpService } from '@nestjs/axios';
33
import { ConfigService } from '@nestjs/config';
44
import { firstValueFrom } from 'rxjs';
5+
import { tz } from '../utils/date-util';
56

67
@Injectable()
78
export class DiscordWebhookService {
@@ -32,7 +33,7 @@ export class DiscordWebhookService {
3233
title: options.title,
3334
description: options.message,
3435
color: 0xff0000,
35-
timestamp: new Date().toISOString(),
36+
timestamp: tz().format('YYYY-MM-DD HH:mm:ss'),
3637
fields: options.stack
3738
? [{ name: 'Stack Trace', value: '```' + options.stack + '```' }]
3839
: [],

src/common/filters/http-exception.filter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { Request, Response } from 'express';
99
import { BusinessException } from '../exception/business-exception';
1010
import { ERROR_META } from '../exception/error-meta';
1111
import { DiscordWebhookService } from '../discord/discord-webhook.service';
12+
import { tz } from '../utils/date-util';
1213

1314
@Catch()
1415
export class HttpExceptionFilter implements ExceptionFilter {
@@ -56,7 +57,7 @@ export class HttpExceptionFilter implements ExceptionFilter {
5657
const payload = {
5758
method: request.method,
5859
path: request.url,
59-
timestamp: new Date().toISOString(),
60+
timestamp: tz().format('YYYY-MM-DD HH:mm:ss'),
6061
};
6162
response.status(status).json({ code, message, ...payload });
6263
}

src/common/interceptors/request-logger.interceptor.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import {
2-
Injectable,
3-
NestInterceptor,
42
CallHandler,
53
ExecutionContext,
4+
Injectable,
65
Logger,
6+
NestInterceptor,
77
} from '@nestjs/common';
88
import { Observable, tap } from 'rxjs';
9+
import { tz } from '../utils/date-util';
910

1011
@Injectable()
1112
export class RequestLoggerInterceptor implements NestInterceptor {
@@ -15,11 +16,11 @@ export class RequestLoggerInterceptor implements NestInterceptor {
1516
const req = ctx.switchToHttp().getRequest();
1617
const host = req.headers.host;
1718
const { method, originalUrl: url } = req;
18-
const start = Date.now();
19+
const start = tz().millisecond();
1920

2021
return next.handle().pipe(
2122
tap(() => {
22-
const ms = Date.now() - start;
23+
const ms = tz().millisecond() - start;
2324
this.log.log(`${host} ${method} ${url} +${ms}ms`);
2425
}),
2526
);

src/common/middleware/path-block-middleware.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { HttpStatus, Injectable, NestMiddleware } from '@nestjs/common';
22
import { NextFunction, Request, Response } from 'express';
3+
import { tz } from '../utils/date-util';
34

45
type RouteDef = {
56
method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
@@ -74,7 +75,7 @@ export class PathBlockMiddleware implements NestMiddleware {
7475
if (!ok) {
7576
return res.status(HttpStatus.NOT_FOUND).json({
7677
statusCode: HttpStatus.NOT_FOUND,
77-
timestamp: new Date().toISOString(),
78+
timestamp: tz().format('YYYY-MM-DD HH:mm:ss'),
7879
path: `${method} ${url}`,
7980
message: '존재하지 않는 요청입니다.',
8081
});

src/common/s3/s3.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { S3Client } from '@aws-sdk/client-s3';
77
import { basename, extname } from 'path';
88
import { BusinessException } from '../exception/business-exception';
99
import { ErrorType } from '../exception/error-code.enum';
10+
import { tz } from '../utils/date-util';
1011

1112
@Module({
1213
imports: [
@@ -32,7 +33,7 @@ import { ErrorType } from '../exception/error-code.enum';
3233
const ext = extname(file.originalname); // 확장자
3334
const baseName = basename(file.originalname, ext); // 확장자 제외
3435
// 파일이름-날짜.확장자
35-
const fileName = `images/${baseName}-${Date.now()}${ext}`;
36+
const fileName = `images/${baseName}-${tz().millisecond()}${ext}`;
3637
callback(null, fileName);
3738
},
3839
}),

src/common/utils/date-util.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ const utc = require('dayjs/plugin/utc');
55
const timezone = require('dayjs/plugin/timezone');
66
dayjs.extend(utc);
77
dayjs.extend(timezone);
8+
dayjs.tz.setDefault('Asia/Seoul');
89

9-
export function tz(d?: string | number | Date | null | undefined): Dayjs {
10-
return dayjs.tz(d);
10+
export function tz(): Dayjs {
11+
return dayjs.tz();
1112
}

src/domain/eco-verification/eco-verification.service.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
import * as dayjs from 'dayjs';
2020
import { CoupleService } from '../couple/couple.service';
2121
import { MemberEcoVerificationSummaryResponseDto } from './dto/member-eco-verification-summary-response.dto';
22+
import { tz } from '../../common/utils/date-util';
2223

2324
@Injectable()
2425
export class EcoVerificationService {
@@ -84,7 +85,7 @@ export class EcoVerificationService {
8485
status: EcoVerificationStatus.REJECTED,
8586
})
8687
.andWhere('DATE(mev.createdAt) = :today', {
87-
today: dayjs().format('YYYY-MM-DD'),
88+
today: tz().format('YYYY-MM-DD'),
8889
})
8990
.getExists();
9091

@@ -263,7 +264,7 @@ export class EcoVerificationService {
263264
const todayDate =
264265
date && date.trim().length
265266
? dayjs(date).format('YYYY-MM-DD')
266-
: dayjs().format('YYYY-MM-DD');
267+
: tz().format('YYYY-MM-DD');
267268
const yesterdayDate = dayjs(date).subtract(1, 'day').format('YYYY-MM-DD');
268269

269270
const memberEcoVerifications = await this.memberEcoVerificationRepo.find({
@@ -352,7 +353,7 @@ export class EcoVerificationService {
352353
type: record.ecoVerification.type,
353354
})
354355
.andWhere('DATE(mev.createdAt) = :today', {
355-
today: dayjs().format('YYYY-MM-DD'),
356+
today: tz().format('YYYY-MM-DD'),
356357
})
357358
.getExists();
358359

0 commit comments

Comments
 (0)