refactor: 🗃️ Change event log database for note purges
This commit is contained in:
parent
e7f17dbe4d
commit
293af7f34b
@ -0,0 +1,24 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `purge_count` on the `event` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- RedefineTables
|
||||
PRAGMA foreign_keys=OFF;
|
||||
CREATE TABLE "new_event" (
|
||||
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
"time" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"type" TEXT NOT NULL,
|
||||
"success" BOOLEAN NOT NULL,
|
||||
"size_bytes" INTEGER,
|
||||
"note_id" TEXT,
|
||||
"host" TEXT,
|
||||
"error" TEXT,
|
||||
"expire_window_days" INTEGER
|
||||
);
|
||||
INSERT INTO "new_event" ("error", "expire_window_days", "host", "id", "size_bytes", "success", "time", "type") SELECT "error", "expire_window_days", "host", "id", "size_bytes", "success", "time", "type" FROM "event";
|
||||
DROP TABLE "event";
|
||||
ALTER TABLE "new_event" RENAME TO "event";
|
||||
PRAGMA foreign_key_check;
|
||||
PRAGMA foreign_keys=ON;
|
@ -24,7 +24,7 @@ model event {
|
||||
type String
|
||||
success Boolean
|
||||
size_bytes Int?
|
||||
purge_count Int?
|
||||
note_id String?
|
||||
host String?
|
||||
error String?
|
||||
expire_window_days Int?
|
||||
|
@ -6,6 +6,7 @@ describe("Logging write events", () => {
|
||||
it("Should write a write event to database", async () => {
|
||||
const testWriteEvent = {
|
||||
host: "localhost",
|
||||
note_id: "test_id",
|
||||
size_bytes: 100,
|
||||
success: true,
|
||||
expire_window_days: 30,
|
||||
@ -18,7 +19,7 @@ describe("Logging write events", () => {
|
||||
|
||||
// Is event in database?
|
||||
const results = await prisma.event.findMany({
|
||||
where: { type: EventType.WRITE },
|
||||
where: { type: EventType.WRITE, note_id: testWriteEvent.note_id },
|
||||
});
|
||||
expect(results.length).toBe(1);
|
||||
|
||||
@ -30,22 +31,19 @@ describe("Logging write events", () => {
|
||||
it("Should log a read event to database", async () => {
|
||||
const testReadEvent = {
|
||||
host: "localhost",
|
||||
note_id: "test_id",
|
||||
size_bytes: 100,
|
||||
success: true,
|
||||
};
|
||||
|
||||
// Is event written successfully?
|
||||
const logged = await EventLogger.readEvent({
|
||||
host: "localhost",
|
||||
size_bytes: 100,
|
||||
success: true,
|
||||
});
|
||||
const logged = await EventLogger.readEvent(testReadEvent);
|
||||
expect(logged).not.toBeNull();
|
||||
expect(logged).toMatchObject(testReadEvent);
|
||||
|
||||
// Is event in database?
|
||||
const results = await prisma.event.findMany({
|
||||
where: { type: EventType.READ },
|
||||
where: { type: EventType.READ, note_id: testReadEvent.note_id },
|
||||
});
|
||||
expect(results.length).toBe(1);
|
||||
|
||||
@ -56,9 +54,9 @@ describe("Logging write events", () => {
|
||||
|
||||
it("Should log a purge event to database", async () => {
|
||||
const testPurgeEvent = {
|
||||
success: true,
|
||||
purge_count: 1,
|
||||
note_id: "test_id",
|
||||
size_bytes: 100,
|
||||
success: true,
|
||||
};
|
||||
|
||||
// Is event written successfully?
|
||||
@ -68,7 +66,7 @@ describe("Logging write events", () => {
|
||||
|
||||
// Is event in database?
|
||||
const results = await prisma.event.findMany({
|
||||
where: { type: EventType.PURGE },
|
||||
where: { type: EventType.PURGE, note_id: "test_id" },
|
||||
});
|
||||
expect(results.length).toBe(1);
|
||||
|
||||
|
@ -14,20 +14,20 @@ interface Event {
|
||||
|
||||
interface ClientEvent extends Event {
|
||||
host: string;
|
||||
size_bytes: number;
|
||||
success: boolean;
|
||||
note_id?: string;
|
||||
size_bytes?: number;
|
||||
}
|
||||
|
||||
interface WriteEvent extends ClientEvent {
|
||||
expire_window_days: number;
|
||||
expire_window_days?: number;
|
||||
}
|
||||
|
||||
interface ReadEvent extends ClientEvent {}
|
||||
|
||||
interface PurgeEvent extends Event {
|
||||
success: boolean;
|
||||
purge_count: number;
|
||||
size_bytes: number;
|
||||
note_id: string;
|
||||
size_bytes?: number;
|
||||
}
|
||||
|
||||
export default class EventLogger {
|
||||
|
Loading…
Reference in New Issue
Block a user