diff --git a/seasoned_api/src/database/sqliteDatabase.js b/seasoned_api/src/database/sqliteDatabase.js index 76b92f6..7b346a6 100644 --- a/seasoned_api/src/database/sqliteDatabase.js +++ b/seasoned_api/src/database/sqliteDatabase.js @@ -1,12 +1,12 @@ const fs = require('fs'); const path = require('path'); -const sqlite = require('sqlite'); +const sqlite3 = require('sqlite3').verbose(); class SqliteDatabase { constructor(host) { this.host = host; - this.connection = sqlite; + this.connection = this.connect() this.schemaDirectory = path.join(__dirname, 'schemas'); } @@ -14,10 +14,12 @@ class SqliteDatabase { * Connect to the database. * @returns {Promise} succeeds if connection was established */ - connect() { + async connect() { return Promise.resolve() - .then(() => sqlite.open(this.host)) - .then(() => sqlite.exec('pragma foreign_keys = on;')); + .then(() => { + this.connection = new sqlite3.Database(this.host); + this.connection.run('PRAGMA foreign_keys=on') + }); } /** @@ -27,7 +29,13 @@ class SqliteDatabase { * @returns {Promise} */ run(sql, parameters) { - return this.connection.run(sql, parameters); + return new Promise((resolve, reject) => { + this.connection.run(sql, parameters, (error, result) => { + if (error) + reject(error); + resolve(result) + }); + }); } /** @@ -36,8 +44,15 @@ class SqliteDatabase { * @param {Array} parameters in the SQL query * @returns {Promise} */ - all(sql, parameters) { - return this.connection.all(sql, parameters); + async all(sql, parameters) { + return new Promise((resolve, reject) => { + this.connection.all(sql, parameters, (err, rows) => { + if (err) { + reject(err); + } + resolve(rows); + }) + }) } /** @@ -46,8 +61,16 @@ class SqliteDatabase { * @param {Array} parameters in the SQL query * @returns {Promise} */ - get(sql, parameters) { - return this.connection.get(sql, parameters); + async get(sql, parameters) { + return new Promise((resolve, reject) => { + this.connection.get(sql, parameters, (err, rows) => { + if (err) { + reject(err); + } + console.log('rows', rows) + resolve(rows); + }) + }) } /** @@ -56,8 +79,10 @@ class SqliteDatabase { * @param {Array} parameters in the SQL query * @returns {Promise} */ - execute(sql) { - return this.connection.exec(sql); + async execute(sql) { + return new Promise(resolve => { + resolve(this.connection.exec(sql)); + }) } /**