feat: sortable date with time respect

This commit is contained in:
Methapon2001 2024-07-31 11:21:43 +07:00
parent eb0511ee70
commit e04f40c58e

View file

@ -28,16 +28,20 @@ export class LogController extends Controller {
@Query() date?: Date,
@Query() startDate?: Date,
@Query() endDate?: Date,
@Query() timezone = "+07:00",
@Query() sort: "asc" | "desc" = "desc",
) {
if (!endDate && !startDate) startDate = endDate = date;
let startDateString: string | undefined;
let endDateString: string | undefined;
let startTimeString = "00:00:00";
let endTimeString = "23:59:59";
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`;
if (date && !startDate && !endDate) {
startDateString = `${date.getFullYear()}-${`${date.getMonth() + 1}`.padStart(2, "0")}-${`${date.getDate()}`.padStart(2, "0")}T${startTimeString}`;
endDateString = `${date.getFullYear()}-${`${date.getMonth() + 1}`.padStart(2, "0")}-${`${date.getDate()}`.padStart(2, "0")}T${endTimeString}`;
}
if (startDate) startDateString = startDate.toISOString();
if (endDate) endDateString = endDate.toISOString();
const queryData = await elasticsearch.search({
index: ELASTICSEARCH_INDEX,
@ -63,7 +67,7 @@ export class LogController extends Controller {
{
range: {
startTimeStamp: {
time_zone: "+07:00",
time_zone: timezone,
gte: startDateString,
lte: endDateString,
},
@ -75,7 +79,7 @@ export class LogController extends Controller {
},
},
search_after: searchAfter ? [searchAfter] : undefined,
sort: [{ startTimeStamp: "desc" }],
sort: [{ startTimeStamp: sort }],
size: size,
});
return queryData.hits.hits;