Implemented a basic extraction loop
This commit is contained in:
parent
f190aea975
commit
efdf50a55a
12 changed files with 2022 additions and 0 deletions
8
database/000_init.sql
Normal file
8
database/000_init.sql
Normal file
|
@ -0,0 +1,8 @@
|
|||
CREATE TABLE schema_version (
|
||||
version INTEGER NOT NULL
|
||||
);
|
||||
CREATE TABLE config (
|
||||
id INTEGER PRIMARY KEY,
|
||||
key TEXT NOT NULL UNIQUE,
|
||||
value TEXT NOT NULL
|
||||
);
|
23
database/config.js
Normal file
23
database/config.js
Normal file
|
@ -0,0 +1,23 @@
|
|||
import db from './db.js';
|
||||
|
||||
const getTokenStatement = db.prepare(`SELECT value from config where key = 'token';`);
|
||||
const registerAgentStatement = db.prepare(`INSERT INTO config(key, value) VALUES ('symbol', ?), ('faction', ?), ('token', ?);`);
|
||||
|
||||
export function getToken() {
|
||||
try {
|
||||
return getTokenStatement.get().value;
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export function registerAgent(symbol, faction, token) {
|
||||
try {
|
||||
registerAgentStatement.run(symbol, faction, token);
|
||||
return true;
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
return false;
|
||||
}
|
||||
}
|
29
database/db.js
Normal file
29
database/db.js
Normal file
|
@ -0,0 +1,29 @@
|
|||
import fs from 'fs';
|
||||
import Database from 'better-sqlite3';
|
||||
|
||||
const allMigrations = [
|
||||
'database/000_init.sql',
|
||||
];
|
||||
|
||||
const db = new Database(
|
||||
process.env.NODE_ENV === 'test' ? 'test.db' : 'spacetraders.db',
|
||||
process.env.NODE_ENV === 'development' ? { verbose: console.log } : null
|
||||
);
|
||||
db.pragma('foreign_keys = ON');
|
||||
|
||||
db.transaction(function migrate() {
|
||||
let version;
|
||||
try {
|
||||
version = db.prepare('SELECT version FROM schema_version').get().version;
|
||||
} catch {
|
||||
version = 0;
|
||||
}
|
||||
if (version === allMigrations.length) return;
|
||||
while (version < allMigrations.length) {
|
||||
db.exec(fs.readFileSync(allMigrations[version], 'utf8'));
|
||||
version++;
|
||||
}
|
||||
db.exec(`DELETE FROM schema_version; INSERT INTO schema_version (version) VALUES (${version});`);
|
||||
})();
|
||||
|
||||
export default db;
|
Loading…
Add table
Add a link
Reference in a new issue