feat(lstv2 move): moved lstv2 into this app to keep them combined and easier to maintain

This commit is contained in:
2025-09-19 22:22:05 -05:00
parent caf2315191
commit e4477402ad
847 changed files with 165801 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
import { eq, sql } from "drizzle-orm";
import { db } from "../../../../database/dbclient.js";
import { logs } from "../../../../database/schema/logs.js";
import { createLog } from "../logger.js";
export const clearLog = async (id: string) => {
/**
* mark the log as cleared
*/
try {
const clear = await db
.update(logs)
.set({ checked: true, created_at: sql`NOW()` })
.where(eq(logs.log_id, id));
createLog("info", "lst", "logger", "Log just cleared.");
return { success: true, message: "Log was just cleared." };
} catch (error) {
createLog(
"error",
"lst",
"logger",
"There was an error clearing the log."
);
return {
success: false,
message: "There was an error clearing the log.",
};
}
};

View File

@@ -0,0 +1,42 @@
import { and, desc, 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)
)
)
.orderBy(desc(logs.created_at));
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,
};
}
};

View File

@@ -0,0 +1,65 @@
import { and, eq, inArray, lte, ne, sql } from "drizzle-orm";
import { db } from "../../../../database/dbclient.js";
import { logs } from "../../../../database/schema/logs.js";
import { createLog } from "../logger.js";
export const logCleanup = async () => {
/**
* We will run the clean logger where we have aged logs that do not need to be here flooding the db
*/
// clear the server logs older than 3 days
try {
// clear info logs older than 3 days
const delLogs = await db
.delete(logs)
.where(
and(
lte(logs.created_at, sql`NOW() - INTERVAL '3 days'`),
//inArray(logs.service, ["server", "tcp", "sqlProd", "globalutils","notify", "logger", "serverupdater"]),
eq(logs.level, "info")
)
)
.returning({ name: logs.message });
createLog(
"info",
"lst",
"logger",
`${delLogs.length} Server logs were just deleted that were older than 3 days`
);
} catch (error) {
createLog(
"error",
"lst",
"logger",
`There was an error deleteing server logs. ${error}`
);
}
try {
// clear all remaining logs ne to info.
const delLogs = await db
.delete(logs)
.where(
and(
lte(logs.created_at, sql`NOW() - INTERVAL '7 days'`),
//inArray(logs.service, ["server", "tcp", "sqlProd", "globalutils", "notify", "logger", "serverupdater"]),
ne(logs.level, "info")
)
)
.returning({ name: logs.message });
createLog(
"info",
"lst",
"logger",
`${delLogs.length} Server logs were just deleted that were older than 7 days`
);
} catch (error) {
createLog(
"error",
"lst",
"logger",
`There was an error deleteing server logs. ${error}`
);
}
};

View File

@@ -0,0 +1,29 @@
import type {Context} from "hono";
import {db} from "../../../../database/dbclient.js";
import {and, eq, gt} from "drizzle-orm";
import {streamSSE, streamText} from "hono/streaming";
import {logs} from "../../../../database/schema/logs.js";
export async function streamLogs(c: Context) {
let id = 0;
let running = true;
// c.header("Content-Type", "text/event-stream");
// c.header("Cache-Control", "no-cache");
// c.header("Connection", "keep-alive");
const getLogs = async () => {};
return streamSSE(c, async (stream) => {
while (running) {
const message = `It is ${new Date().toISOString()}`;
await stream.writeSSE({
data: message,
event: "time-update",
id: String(id++),
});
await stream.sleep(1000);
if (id === 5) {
running = false;
}
}
});
}