diff --git a/src/controllers/log-controller.ts b/src/controllers/log-controller.ts index 22075b6..4a5ede5 100644 --- a/src/controllers/log-controller.ts +++ b/src/controllers/log-controller.ts @@ -26,7 +26,19 @@ export class LogController extends Controller { @Query() searchAfter?: number, @Query() systemName?: string, @Query() date?: Date, + @Query() startDate?: Date, + @Query() endDate?: Date, ) { + if (!endDate && !startDate) startDate = endDate = date; + + let startDateString: string | undefined; + let endDateString: string | undefined; + + if (startDate && endDate) { + startDateString = `${startDate.getFullYear()}-${(startDate.getMonth() + 1).toString().padStart(2, "0")}-${startDate.getDate().toString().padStart(2, "0")}T00:00:00`; + endDateString = `${endDate.getFullYear()}-${(endDate.getMonth() + 1).toString().padStart(2, "0")}-${endDate.getDate().toString().padStart(2, "0")}T23:59:59`; + } + const queryData = await elasticsearch.search({ index: ELASTICSEARCH_INDEX, query: { @@ -37,26 +49,23 @@ export class LogController extends Controller { ? [ { bool: { - should: [ - { - multi_match: { - query: search, - fields: ["method", "logType", "endpoint", "host"], - }, - }, - ], + should: ["method", "logType", "endpoint", "host", "responseCode"].map( + (v) => ({ + wildcard: { [v]: "*" + search + "*" }, + }), + ), }, }, ] : []), - ...(date + ...(startDateString || endDateString ? [ { range: { startTimeStamp: { time_zone: "+07:00", - gte: `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, "0")}-${date.getDate().toString().padStart(2, "0")}T00:00:00`, - lte: `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, "0")}-${date.getDate().toString().padStart(2, "0")}T23:59:59`, + gte: startDateString, + lte: endDateString, }, }, },