issue #63
All checks were successful
Test CI / build (push) Successful in 1m17s

- 일정 생성, 목록 조회, 당일 목록 조회 기능 구현
This commit is contained in:
geonhee-min
2025-12-11 17:04:19 +09:00
parent 2237030257
commit d580f53775
3 changed files with 20 additions and 7 deletions

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}`;
}