39 lines
907 B
TypeScript
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,
|
|
);
|
|
}
|
|
}
|