Files
Mastering-Node.js-Web-Devel…/Chapter 15/Beginning of Chapter/part2app/dist/server/data/sql_repository.js
T
2024-05-29 18:54:49 +01:00

49 lines
1.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SqlRepository = void 0;
const fs_1 = require("fs");
const sqlite3_1 = require("sqlite3");
const sql_queries_1 = require("./sql_queries");
const sql_helpers_1 = require("./sql_helpers");
class SqlRepository {
db;
constructor() {
this.db = new sqlite3_1.Database("age.db");
this.db.exec((0, fs_1.readFileSync)("age.sql").toString(), err => {
if (err != undefined)
throw err;
});
}
async saveResult(r) {
return await new sql_helpers_1.TransactionHelper()
.add(sql_queries_1.insertPerson, { $name: r.name })
.add(sql_queries_1.insertCalculation, {
$age: r.age, $years: r.years, $nextage: r.nextage
})
.add(sql_queries_1.insertResult, {
$name: r.name,
$age: r.age, $years: r.years, $nextage: r.nextage
})
.run(this.db);
}
getAllResults($limit) {
return this.executeQuery(sql_queries_1.queryAllSql, { $limit });
}
getResultsByName($name, $limit) {
return this.executeQuery(sql_queries_1.queryByNameSql, { $name, $limit });
}
executeQuery(sql, params) {
return new Promise((resolve, reject) => {
this.db.all(sql, params, (err, rows) => {
if (err == undefined) {
resolve(rows);
}
else {
reject(err);
}
});
});
}
}
exports.SqlRepository = SqlRepository;