diff --git a/src/modules/schedule/dto/list/list-request.dto.ts b/src/modules/schedule/dto/list/list-request.dto.ts index f6ae775..27a37c2 100644 --- a/src/modules/schedule/dto/list/list-request.dto.ts +++ b/src/modules/schedule/dto/list/list-request.dto.ts @@ -1,6 +1,9 @@ import { IsArray, IsDateString, IsString } from "@nestjs/class-validator"; export class ListRequestDto { + @IsDateString() + date?: string; + @IsDateString() startDate?: string; diff --git a/src/modules/schedule/schedule.repo.ts b/src/modules/schedule/schedule.repo.ts index 2b036f1..9499472 100644 --- a/src/modules/schedule/schedule.repo.ts +++ b/src/modules/schedule/schedule.repo.ts @@ -10,7 +10,7 @@ export class ScheduleRepo { constructor(@Inject('DRIZZLE') private readonly db: NodePgDatabase) {} 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, diff --git a/src/util/converter.ts b/src/util/converter.ts index c3ea70f..481c8a6 100644 --- a/src/util/converter.ts +++ b/src/util/converter.ts @@ -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}`; }