Merge branch 'main' of https://gitea.bkdhome.p-e.kr/baekyangdan/scheduler-back
All checks were successful
Test CI / build (push) Successful in 1m21s

This commit is contained in:
2025-12-14 02:13:21 +09:00
7 changed files with 815 additions and 25 deletions

View File

@@ -1,2 +1,6 @@
yarnPath: .yarn/releases/yarn-4.11.0.cjs
npmScopes:
baekyangdan:
npmRegistryServer: "https://gitea.bkdhome.p-e.kr/api/packages/baekyangdan/npm/"
npmAuthToken: "d39c7d88c52806df7522ce2b340b6577c5ec5082"
nodeLinker: node-modules

View File

@@ -26,6 +26,7 @@
"drizzle-pull:prod": "dotenv -e .env.prod -- drizzle-kit pull"
},
"dependencies": {
"@baekyangdan/core-utils": "^1.0.4",
"@fastify/cookie": "^11.0.2",
"@nestjs/class-transformer": "^0.4.0",
"@nestjs/class-validator": "^0.13.4",

View File

@@ -7,6 +7,7 @@ import {
} from '@nestjs/common';
import { JsonWebTokenError, TokenExpiredError } from '@nestjs/jwt';
import { FastifyReply, FastifyRequest } from 'fastify';
import { UnauthorizedCode, UnauthorizedMessage, BadRequestCode, BadRequestMessage, InternalServerErrorCode, InternalServerErrorMessage } from '@baekyangdan/core-utils';
@Catch()
export class AllExceptionsFilter implements ExceptionFilter {
@@ -22,8 +23,8 @@ export class AllExceptionsFilter implements ExceptionFilter {
const responseBody = {
statusCode: status,
message: 'Access Token Expired',
code: 'AccessTokenExpired',
message: UnauthorizedMessage.ACCESS_TOKEN_EXPIRED,
code: UnauthorizedCode.ACCESS_TOKEN_EXPIRED,
timestamp: new Date().toISOString(),
path: ctx.getRequest().url
};
@@ -38,8 +39,8 @@ export class AllExceptionsFilter implements ExceptionFilter {
const responseBody = {
statusCode: status,
message: 'Invalid Token',
code: 'InvalidToken',
message: UnauthorizedMessage.INVALID_TOKEN,
code: UnauthorizedCode.INVALID_TOKEN,
timestamp: new Date().toISOString(),
path: ctx.getRequest().url
};
@@ -56,7 +57,7 @@ export class AllExceptionsFilter implements ExceptionFilter {
let message =
exception instanceof HttpException
? exception.getResponse()
: 'Internal server error';
: InternalServerErrorMessage.INTERNAL_SERVER_ERROR;
if (typeof message === 'object' && (message as any).message) {
message = (message as any).message;
@@ -67,7 +68,8 @@ export class AllExceptionsFilter implements ExceptionFilter {
timestamp: new Date().toISOString(),
path: request.url,
statusCode: status,
error: message
message: message,
error: InternalServerErrorCode
});
}
}

View File

@@ -1,6 +1,9 @@
import { IsArray, IsDateString, IsString } from "@nestjs/class-validator";
export class ListRequestDto {
@IsDateString()
date?: string;
@IsDateString()
startDate?: string;

View File

@@ -10,7 +10,7 @@ export class ScheduleRepo {
constructor(@Inject('DRIZZLE') private readonly db: NodePgDatabase<typeof schema>) {}
async getList(accountId: string, data: DTO.ListRequest) {
const { startDate, endDate, name, status, styleList, typeList } = data;
const { date, startDate, endDate, name, status, styleList, typeList } = data;
const schedule = schema.schedule;
const result = await this
@@ -22,14 +22,24 @@ export class ScheduleRepo {
endDate: schedule.endDate,
status: schedule.status,
style: schedule.style,
type: schedule.style,
type: schedule.type,
})
.from(schedule)
.where(
and(
eq(schedule.owner, accountId),
startDate ? gte(schedule.startDate, Converter.formatDateToSqlDate(startDate)) : undefined,
endDate ? lte(schedule.endDate, Converter.formatDateToSqlDate(endDate)) : undefined,
(startDate && endDate)
? and(
lte(schedule.startDate, Converter.formatDateToSqlDate(endDate)),
gte(schedule.endDate, Converter.formatDateToSqlDate(startDate))
)
: undefined,
date
? and(
lte(schedule.startDate, Converter.formatDateToSqlDate(date)),
gte(schedule.endDate, Converter.formatDateToSqlDate(date))
)
: undefined,
name ? like(schedule.name, `%${name}%`) : undefined,
(typeList && typeList.length > 0) ? inArray(schedule.type, typeList) : undefined,
(styleList && styleList.length > 0) ? inArray(schedule.style, styleList) : undefined,

View File

@@ -11,9 +11,9 @@ export class Converter {
static formatDateToSqlDate(date: string): string {
const targetDate = new Date(date);
const year = targetDate.getUTCFullYear();
const month = (targetDate.getUTCMonth() + 1).toString().padStart(2, '0');
const day = (targetDate.getUTCDate()).toString().padStart(2, '0');
const year = targetDate.getFullYear();
const month = (targetDate.getMonth() + 1).toString().padStart(2, '0');
const day = (targetDate.getDate()).toString().padStart(2, '0');
return `${year}-${month}-${day}`;
}

794
yarn.lock

File diff suppressed because it is too large Load Diff