63 lines
1.8 KiB
JavaScript
63 lines
1.8 KiB
JavaScript
|
|
import Database from 'better-sqlite3'
|
||
|
|
import { mkdirSync } from 'fs'
|
||
|
|
import { join, dirname } from 'path'
|
||
|
|
import { fileURLToPath } from 'url'
|
||
|
|
|
||
|
|
const __dirname = dirname(fileURLToPath(import.meta.url))
|
||
|
|
const DATA_DIR = join(__dirname, '..', 'data')
|
||
|
|
const DB_PATH = process.env.DB_PATH || join(DATA_DIR, 'partite.db')
|
||
|
|
|
||
|
|
mkdirSync(DATA_DIR, { recursive: true })
|
||
|
|
|
||
|
|
const db = new Database(DB_PATH)
|
||
|
|
db.pragma('journal_mode = WAL')
|
||
|
|
|
||
|
|
db.exec(`
|
||
|
|
CREATE TABLE IF NOT EXISTS partite (
|
||
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
|
data TEXT NOT NULL,
|
||
|
|
modalita TEXT NOT NULL,
|
||
|
|
nome_home TEXT NOT NULL,
|
||
|
|
nome_guest TEXT NOT NULL,
|
||
|
|
set_home INTEGER NOT NULL,
|
||
|
|
set_guest INTEGER NOT NULL,
|
||
|
|
vincitore TEXT,
|
||
|
|
json TEXT NOT NULL
|
||
|
|
)
|
||
|
|
`)
|
||
|
|
|
||
|
|
const stmtInsert = db.prepare(`
|
||
|
|
INSERT INTO partite (data, modalita, nome_home, nome_guest, set_home, set_guest, vincitore, json)
|
||
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
||
|
|
`)
|
||
|
|
|
||
|
|
export function salvaPartita(state) {
|
||
|
|
const payload = {
|
||
|
|
data: new Date().toISOString(),
|
||
|
|
modalita: state.modalitaPartita,
|
||
|
|
nomi: state.sp.nomi,
|
||
|
|
set: state.sp.set,
|
||
|
|
vincitore: state.sp.partitaFinita?.vincitore ?? null,
|
||
|
|
strisce: state.sp.strisce,
|
||
|
|
}
|
||
|
|
const { lastInsertRowid } = stmtInsert.run(
|
||
|
|
payload.data,
|
||
|
|
payload.modalita,
|
||
|
|
payload.nomi.home,
|
||
|
|
payload.nomi.guest,
|
||
|
|
payload.set.home,
|
||
|
|
payload.set.guest,
|
||
|
|
payload.vincitore,
|
||
|
|
JSON.stringify(payload)
|
||
|
|
)
|
||
|
|
return lastInsertRowid
|
||
|
|
}
|
||
|
|
|
||
|
|
export function getPartite() {
|
||
|
|
return db.prepare('SELECT * FROM partite ORDER BY id DESC').all()
|
||
|
|
}
|
||
|
|
|
||
|
|
export function getPartita(id) {
|
||
|
|
return db.prepare('SELECT * FROM partite WHERE id = ?').get(id)
|
||
|
|
}
|