icydraw/src/server/object/history.ts

39 lines
907 B
TypeScript

import { join } from 'path';
import sqlite3 from 'sqlite3';
import { open, Database } from 'sqlite';
import { CanvasRecord } from '../../common/types/canvas';
export class History {
private db!: Database;
constructor(
private _store = join(__dirname, '..', '..', '..', 'canvas.db'),
) {}
async initialize(): Promise<void> {
this.db = await open({
filename: this._store,
driver: sqlite3.cached.Database,
});
await this.db.migrate();
}
async insert(record: CanvasRecord): Promise<void> {
await this.db.run(
`INSERT INTO Placement (user, x, y, ts, color) VALUES (?,?,?,?,?)`,
record.user,
record.x,
record.y,
record.ts,
record.color,
);
}
async getUserPlacements(user: string): Promise<CanvasRecord[]> {
return this.db.all<CanvasRecord[]>(
`SELECT * FROM Placement WHERE user = ?`,
user,
);
}
}