@@ -3,70 +3,84 @@ import { workingDirectory } from '../helpers/conf';
3
3
4
4
const dbPath = `${ workingDirectory } /redisinsight.db` ;
5
5
6
- /**
7
- * Update table column value into local DB
8
- * @param tableName The name of table in DB
9
- * @param columnName The name of column in table
10
- * @param value Value to update in table
11
- */
12
- export async function updateColumnValueInDBTable ( tableName : string , columnName : string , value : number | string ) : Promise < void > {
13
- const db = new sqlite3 . Database ( dbPath ) ;
14
- const query = `UPDATE ${ tableName } SET ${ columnName } = ${ value } ` ;
6
+ export class DatabaseScripts {
7
+ /**
8
+ * Update table column value into local DB for a specific row
9
+ * @param dbTableParameters The sqlite database table parameters
10
+ */
11
+ static async updateColumnValueInDBTable ( dbTableParameters : DbTableParameters ) : Promise < void > {
12
+ const db = new sqlite3 . Database ( dbPath ) ;
13
+ const query = `UPDATE ${ dbTableParameters . tableName } SET ${ dbTableParameters . columnName } = ? WHERE ${ dbTableParameters . conditionWhereColumnName } = ?` ;
15
14
16
- return new Promise < void > ( ( resolve , reject ) => {
17
- db . run ( query , ( err : { message : string } ) => {
18
- if ( err ) {
19
- reject ( new Error ( `Error during changing ${ columnName } column value: ${ err . message } ` ) ) ;
20
- }
21
- else {
22
- db . close ( ) ;
23
- resolve ( ) ;
24
- }
15
+ return new Promise < void > ( ( resolve , reject ) => {
16
+ db . run ( query , [ dbTableParameters . rowValue , dbTableParameters . conditionWhereColumnValue ] , ( err : { message : string } ) => {
17
+ if ( err ) {
18
+ reject ( new Error ( `Error during changing ${ dbTableParameters . columnName } column value: ${ err . message } ` ) ) ;
19
+ }
20
+ else {
21
+ db . close ( ) ;
22
+ resolve ( ) ;
23
+ }
24
+ } ) ;
25
25
} ) ;
26
- } ) ;
27
- }
26
+ }
28
27
29
- /**
30
- * Get Column value from table in local Database
31
- * @param tableName The name of table in DB
32
- * @param columnName The name of column in table
33
- */
34
- export async function getColumnValueFromTableInDB ( tableName : string , columnName : string ) : Promise < any > {
35
- const db = new sqlite3 . Database ( dbPath ) ;
36
- const query = `SELECT ${ columnName } FROM ${ tableName } ` ;
28
+ /**
29
+ * Get Column value from table in local Database
30
+ * @param dbTableParameters The sqlite database table parameters
31
+ */
32
+ static async getColumnValueFromTableInDB ( dbTableParameters : DbTableParameters ) : Promise < any > {
33
+ const db = new sqlite3 . Database ( dbPath ) ;
34
+ const query = `SELECT ${ dbTableParameters . columnName } FROM ${ dbTableParameters . tableName } WHERE ${ dbTableParameters . conditionWhereColumnName } = ?` ;
37
35
38
- return new Promise < void > ( ( resolve , reject ) => {
39
- db . get ( query , ( err : { message : string } , row : any ) => {
40
- if ( err ) {
41
- reject ( new Error ( `Error during getting ${ columnName } column value: ${ err . message } ` ) ) ;
42
- }
43
- else {
44
- const columnValue = row [ columnName ] ;
45
- db . close ( ) ;
46
- resolve ( columnValue ) ;
47
- }
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
+ }
46
+ } ) ;
48
47
} ) ;
49
- } ) ;
50
- }
48
+ }
51
49
52
- /**
53
- * Delete all rows from table in local DB
54
- * @param tableName The name of table in DB
55
- */
56
- export async function deleteRowsFromTableInDB ( tableName : string ) : Promise < void > {
57
- const db = new sqlite3 . Database ( dbPath ) ;
58
- const query = `DELETE FROM ${ tableName } ` ;
50
+ /**
51
+ * Delete all rows from table in local DB
52
+ * @param dbTableParameters The sqlite database table parameters
53
+ */
54
+ static async deleteRowsFromTableInDB ( dbTableParameters : DbTableParameters ) : Promise < void > {
55
+ const db = new sqlite3 . Database ( dbPath ) ;
56
+ const query = `DELETE FROM ${ dbTableParameters . tableName } ` ;
59
57
60
- return new Promise < void > ( ( resolve , reject ) => {
58
+ return new Promise < void > ( ( resolve , reject ) => {
61
59
62
- db . run ( query , ( err : { message : string } ) => {
63
- if ( err ) {
64
- reject ( new Error ( `Error during ${ tableName } table rows deletion: ${ err . message } ` ) ) ;
65
- }
66
- else {
67
- db . close ( ) ;
68
- resolve ( ) ;
69
- }
60
+ db . run ( query , ( err : { message : string } ) => {
61
+ if ( err ) {
62
+ reject ( new Error ( `Error during ${ dbTableParameters . tableName } table rows deletion: ${ err . message } ` ) ) ;
63
+ }
64
+ else {
65
+ db . close ( ) ;
66
+ resolve ( ) ;
67
+ }
68
+ } ) ;
70
69
} ) ;
71
- } ) ;
70
+ }
72
71
}
72
+ /**
73
+ * Add new database parameters
74
+ * @param tableName The name of table in DB
75
+ * @param columnName The name of column in table
76
+ * @param rowValue Value to update in table
77
+ * @param conditionWhereColumnName The name of the column to search
78
+ * @param conditionWhereColumnValue The value to match in the column
79
+ */
80
+ export type DbTableParameters = {
81
+ tableName : string ,
82
+ columnName ?: string ,
83
+ rowValue ?: string | number ,
84
+ conditionWhereColumnName ?: string ,
85
+ conditionWhereColumnValue ?: string
86
+ } ;
0 commit comments