42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { and, eq, gte, inArray, lte, sql } from "drizzle-orm";
|
|
import { db } from "../../../../database/dbclient.js";
|
|
import { logs } from "../../../../database/schema/logs.js";
|
|
import { createLog } from "../logger.js";
|
|
|
|
export const getLogs = async (data: any) => {
|
|
try {
|
|
// clear all remaining logs ne to info.
|
|
const checked =
|
|
data.checked && data.checked[0] === "true" ? true : false || false;
|
|
const logData = await db
|
|
.select()
|
|
.from(logs)
|
|
.where(
|
|
and(
|
|
gte(
|
|
logs.created_at,
|
|
sql.raw(`NOW() - INTERVAL '${data.hours ?? "4"} hours'`)
|
|
),
|
|
inArray(logs.service, data.service),
|
|
inArray(logs.level, data.level),
|
|
eq(logs.checked, checked)
|
|
)
|
|
);
|
|
|
|
return { success: true, message: "logs returned", data: logData };
|
|
} catch (error) {
|
|
console.log(error);
|
|
createLog(
|
|
"error",
|
|
"lst",
|
|
"logger",
|
|
`There was an error deleteing server logs. ${error}`
|
|
);
|
|
return {
|
|
success: false,
|
|
message: "An error occured while trying to get the logs",
|
|
error,
|
|
};
|
|
}
|
|
};
|