@@ -4,38 +4,16 @@ import { workingDirectory } from '../helpers/conf';
4
4
const dbPath = `${ workingDirectory } /redisinsight.db` ;
5
5
6
6
export class DatabaseScripts {
7
- /**
8
- * Find the row index in a table based on a condition in another column
9
- * @param dbTableParameters The sqlite database table parameters
10
- * @returns The index of the row matching the condition
11
- */
12
- static async getRowIndexFromTableInDB ( dbTableParameters : DbTableParameters ) : Promise < number | null > {
13
- const db = new sqlite3 . Database ( dbPath ) ;
14
- const query = `SELECT rowid FROM ${ dbTableParameters . tableName } WHERE ${ dbTableParameters . conditionColumnName } = ?` ;
15
-
16
- return new Promise < number | null > ( ( resolve , reject ) => {
17
- db . get ( query , [ dbTableParameters . conditionColumnValue ] , ( err : { message : string } , row : any ) => {
18
- if ( err ) {
19
- reject ( new Error ( `Error during finding row index: ${ err . message } ` ) ) ;
20
- }
21
- else {
22
- db . close ( ) ;
23
- resolve ( row ? row . rowid : null ) ; // Return the rowid if a row matches the condition
24
- }
25
- } ) ;
26
- } ) ;
27
- }
28
7
/**
29
8
* Update table column value into local DB for a specific row
30
9
* @param dbTableParameters The sqlite database table parameters
31
10
*/
32
11
static async updateColumnValueInDBTable ( dbTableParameters : DbTableParameters ) : Promise < void > {
33
- const rowIndex = await this . getRowIndexFromTableInDB ( dbTableParameters ) ;
34
12
const db = new sqlite3 . Database ( dbPath ) ;
35
- const query = `UPDATE ${ dbTableParameters . tableName } SET ${ dbTableParameters . columnName } = ? WHERE rowid = ?` ;
13
+ const query = `UPDATE ${ dbTableParameters . tableName } SET ${ dbTableParameters . columnName } = ? WHERE ${ dbTableParameters . conditionWhereColumnName } = ?` ;
36
14
37
15
return new Promise < void > ( ( resolve , reject ) => {
38
- db . run ( query , [ dbTableParameters . rowValue , rowIndex ] , ( err : { message : string } ) => {
16
+ db . run ( query , [ dbTableParameters . rowValue , dbTableParameters . conditionWhereColumnValue ] , ( err : { message : string } ) => {
39
17
if ( err ) {
40
18
reject ( new Error ( `Error during changing ${ dbTableParameters . columnName } column value: ${ err . message } ` ) ) ;
41
19
}
@@ -52,26 +30,21 @@ export class DatabaseScripts {
52
30
* @param dbTableParameters The sqlite database table parameters
53
31
*/
54
32
static async getColumnValueFromTableInDB ( dbTableParameters : DbTableParameters ) : Promise < any > {
55
- const rowIndex = await DatabaseScripts . getRowIndexFromTableInDB ( dbTableParameters ) ;
56
- if ( rowIndex !== null ) {
57
- const db = new sqlite3 . Database ( dbPath ) ;
58
- const query = `SELECT ${ dbTableParameters . columnName } FROM ${ dbTableParameters . tableName } WHERE rowid = ?` ;
33
+ const db = new sqlite3 . Database ( dbPath ) ;
34
+ const query = `SELECT ${ dbTableParameters . columnName } FROM ${ dbTableParameters . tableName } WHERE ${ dbTableParameters . conditionWhereColumnName } = ?` ;
59
35
60
- return new Promise < void > ( ( resolve , reject ) => {
61
- db . get ( query , [ rowIndex ] , ( err : { message : string } , row : any ) => {
62
- if ( err ) {
63
- reject ( new Error ( `Error during getting ${ dbTableParameters . columnName } column value: ${ err . message } ` ) ) ;
64
- }
65
- else {
66
- const columnValue = row [ dbTableParameters . columnName ! ] ;
67
- db . close ( ) ;
68
- resolve ( columnValue ) ;
69
- }
70
- } ) ;
36
+ return new Promise < void > ( ( resolve , reject ) => {
37
+ db . get ( query , [ dbTableParameters . conditionWhereColumnValue ] , ( err : { message : string } , row : any ) => {
38
+ if ( err ) {
39
+ reject ( new Error ( `Error during getting ${ dbTableParameters . columnName } column value: ${ err . message } ` ) ) ;
40
+ }
41
+ else {
42
+ const columnValue = row [ dbTableParameters . columnName ! ] ;
43
+ db . close ( ) ;
44
+ resolve ( columnValue ) ;
45
+ }
71
46
} ) ;
72
- }
73
- throw new Error ( `No matching row found for the given condition in ${ dbTableParameters . tableName } ` ) ;
74
-
47
+ } ) ;
75
48
}
76
49
77
50
/**
@@ -101,13 +74,13 @@ export class DatabaseScripts {
101
74
* @param tableName The name of table in DB
102
75
* @param columnName The name of column in table
103
76
* @param rowValue Value to update in table
104
- * @param conditionColumnName The name of the column to search
105
- * @param conditionColumnValue The value to match in the column
77
+ * @param conditionWhereColumnName The name of the column to search
78
+ * @param conditionWhereColumnValue The value to match in the column
106
79
*/
107
80
export type DbTableParameters = {
108
81
tableName : string ,
109
82
columnName ?: string ,
110
83
rowValue ?: string | number ,
111
- conditionColumnName ?: string ,
112
- conditionColumnValue ?: string
113
- } ;
84
+ conditionWhereColumnName ?: string ,
85
+ conditionWhereColumnValue ?: string
86
+ } ;
0 commit comments