Add Old Database
This commit is contained in:
@@ -9,6 +9,8 @@ export const Config = {
|
||||
gadgetbridge: {
|
||||
db_path:
|
||||
process.env.GADGETBRIDGE_DB_PATH || "src/gadgetbridge/db/Gadgetbridge.db",
|
||||
old_db_path:
|
||||
process.env.GADGETBRIDGE_OLD_DB_PATH || "src/gadgetbridge/db/OldSteps.db",
|
||||
},
|
||||
|
||||
grist: {
|
||||
|
||||
@@ -8,20 +8,29 @@ export type StepRow = {
|
||||
export class GadgetbridgeClient {
|
||||
private db: DatabaseSync;
|
||||
|
||||
constructor(dbPath: string) {
|
||||
constructor(dbPath: string, oldDbPath: string) {
|
||||
this.db = new DatabaseSync(dbPath, { open: true });
|
||||
this.db.exec(`ATTACH DATABASE '${oldDbPath}' AS old`);
|
||||
}
|
||||
|
||||
getStepsPerDay(fromTimestamp: number, toTimestamp: number): StepRow[] {
|
||||
const stmt = this.db.prepare(`
|
||||
SELECT date, SUM(steps) AS steps
|
||||
FROM (
|
||||
SELECT
|
||||
DATE(TIMESTAMP, 'unixepoch', 'localtime') AS date,
|
||||
SUM(STEPS) AS steps
|
||||
STEPS AS steps
|
||||
FROM HUAMI_EXTENDED_ACTIVITY_SAMPLE
|
||||
WHERE TIMESTAMP >= ? AND TIMESTAMP < ?
|
||||
UNION ALL
|
||||
SELECT date, steps
|
||||
FROM old.steps
|
||||
WHERE date >= DATE(?, 'unixepoch', 'localtime')
|
||||
AND date < DATE(?, 'unixepoch', 'localtime')
|
||||
)
|
||||
GROUP BY date
|
||||
ORDER BY date
|
||||
`);
|
||||
return stmt.all(fromTimestamp, toTimestamp) as StepRow[];
|
||||
return stmt.all(fromTimestamp, toTimestamp, fromTimestamp, toTimestamp) as StepRow[];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,7 +140,7 @@ await privateServer.register(fastifyAxios, getAxiosConfig());
|
||||
await publicServer.register(fastifyWebsocket);
|
||||
|
||||
// Clients and Services
|
||||
const gadgetbridgeClient = new GadgetbridgeClient(Config.gadgetbridge.db_path);
|
||||
const gadgetbridgeClient = new GadgetbridgeClient(Config.gadgetbridge.db_path, Config.gadgetbridge.old_db_path);
|
||||
const gadgetbridgeService = new GadgetbridgeService(gadgetbridgeClient);
|
||||
|
||||
const gristClient = new GristClient(privateServer.axios.grist);
|
||||
|
||||
Reference in New Issue
Block a user