From b56b811553f6c86c9072f95206920f0583dff8e3 Mon Sep 17 00:00:00 2001 From: boneyard93501 <4523011+boneyard93501@users.noreply.github.com> Date: Sat, 23 Oct 2021 13:46:55 -0500 Subject: [PATCH] update promises --- src/local_db.ts | 109 +++++++++++++++++++++--------------------------- 1 file changed, 47 insertions(+), 62 deletions(-) diff --git a/src/local_db.ts b/src/local_db.ts index 7306bf0..dc5cb33 100644 --- a/src/local_db.ts +++ b/src/local_db.ts @@ -1,6 +1,8 @@ // import { sqlite3, open } from 'sqlite3'; // var sqlite3 = require("sqlite3").verbose(); // import "sqlite3"; +import { resolveProperties } from '@ethersproject/properties'; +import { ResultCodes } from '@fluencelabs/fluence/dist/internal/commonTypes'; import * as sqlite from 'sqlite3'; const sqlite3 = sqlite.verbose(); import { Response } from './eip_processor'; @@ -19,6 +21,11 @@ export interface DBRecord { signed_response: string; } +export interface DBResult { + stderr: string; + stdout: Array +} + // db handler export function get_db(db_path: string): sqlite.Database { var db_path = db_path; @@ -78,72 +85,50 @@ export async function insert_event(db: sqlite.Database, eip_obj: any, response_o return promise; } - -// export function select_event(snapshot_id: number): DBRecord { -export function select_event(snapshot_id: number): any { - // todo: adding request log +export async function select_event(snapshot_id: number): Promise { var db = get_db(DB_PATH); + let result: DBResult = {} as DBResult; const stmt = 'select * from snapshot where snapshot_id=?' - db.get(stmt, [snapshot_id], (err, row) => { - db.close(); - if (err) { - return console.error(err.message); - } - return row - ? console.log(row) - : console.log(`No record found for snapshot id: ${snapshot_id}`); + return new Promise((resolve) => { + db.get(stmt, [snapshot_id], (err, row) => { + db.close(); + if (err) { + result.stderr = err.message; + result.stdout = []; + resolve(result) + } + else { + result.stderr = ""; + const response_arr = new Array(); + response_arr.push(row); + result.stdout = response_arr; + resolve(result); + } + }); }); - db.close(); }; -// export function select_events(): Array { -export async function select_events(): Promise { +// todo: add pagination +export function select_events(): Promise { var db = get_db(DB_PATH); - // todo: add pagination - const stmt = 'select * from snapshot limit ?'; - console.log("select events stmt: ", stmt); - var response_arr = new Array(); - const select = db.all(stmt, [100], (err, rows) => { - console.log("number of rows: ", rows.length); - if (err) { - // todo: no good, change that. - console.error(err.message); - return []; - } - else { - for (var row of rows) { - const _row: DBRecord = row; - response_arr.push(_row); - - }; - console.log("len resp array in db all: ", response_arr.length); - return response_arr; - } + const stmt = "select * from snapshot limit ?"; + let result: DBResult = {} as DBResult; + return new Promise((resolve) => { + db.all(stmt, [100], (err, rows) => { + console.log("number of rows: ", rows.length); + if (err) { + result.stderr = err.message; + result.stdout = []; + } else { + const response_arr = new Array(); + for (var row of rows) { + const _row: DBRecord = row; + response_arr.push(_row); + } + result.stderr = ""; + result.stdout = response_arr; + } + resolve(result); + }); }); - // console.log("select: ", select); - // db.close(); - // console.log("len resp array out of db all: ", response_arr); - // return response_arr; -} - - -/* - -var db = new sqlite3.Database(DB_PATH); - db.serialize(function () { - const create_stmt = "CREATE TABLE lorem (info TEXT)"; - db.run(create_stmt); - - const ins_stmt = "INSERT INTO lorem VALUES (?)"; - var stmt = db.prepare("INSERT INTO lorem VALUES (?)"); - for (var i = 0; i < 10; i++) { - stmt.run("Ipsum " + i); - } - stmt.finalize(); - - db.each("SELECT rowid AS id, info FROM lorem", function (err: any, row: any) { - console.log(row.id + ": " + row.info); - }); - }); - -*/ \ No newline at end of file +} \ No newline at end of file