From a1d6b03ec98abbc073b5b73b631da6ea3eae4eb9 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Wed, 27 Mar 2024 15:20:14 +0100 Subject: [node] finished the great typescript rewrite --- nodejs/database/markets.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 nodejs/database/markets.ts (limited to 'nodejs/database/markets.ts') diff --git a/nodejs/database/markets.ts b/nodejs/database/markets.ts new file mode 100644 index 0000000..7ae5ca2 --- /dev/null +++ b/nodejs/database/markets.ts @@ -0,0 +1,26 @@ +import { DbData, db } from './db.ts'; +import { Market } from '../model/market.ts'; +import { systemFromWaypoint } from '../lib/utils.ts'; + +const addMarketStatement = db.prepare(`INSERT INTO markets(system, data) VALUES (?, json(?));`); +const getMarketAtWaypointStatement = db.prepare(`SELECT data FROM markets WHERE data->>'symbol' = ?;`); +//const getMarketsInSystemStatement = db.prepare(`SELECT data FROM markets WHERE system = ?;`); +const updateMarketStatement = db.prepare(`UPDATE markets SET data = json(:data) WHERE data->>'symbol' = :symbol;`); + +export function getMarketAtWaypoint(symbol: string): Market|null { + const data = getMarketAtWaypointStatement.get(symbol) as DbData; + if (!data) return null; + return JSON.parse(data.data); +} + +export function setMarket(data: Market): void { + if (getMarketAtWaypoint(data.symbol) === null) { + const system = systemFromWaypoint(data.symbol); + addMarketStatement.run(system, JSON.stringify(data)); + } else { + updateMarketStatement.run({ + data: JSON.stringify(data), + symbol: data.symbol, + }); + } +} -- cgit v1.2.3