df5c276e03d8358683f3c879ce1ea979abfd1c23
[vicar] / src / vicar-config-qml / qml / vicarconfigqml / Library / js / DBUtility.js
1 /*
2 @version: 0.2
3 @author: Sudheer K. <scifi1947 at gmail.com>
4 @license: GNU General Public License
5 */
6
7 function getDatabase() {
8      logMessage("Opening VICaR database..");
9      return openDatabaseSync("VICaR", "1.0", "StorageDatabase", 100);
10 }
11
12 function logMessage(strMessage){
13     if (typeof(logUtility)!== 'undefined'){
14         logUtility.logMessage(strMessage);
15     }
16     else{        
17         console.log(strMessage);
18     }
19 }
20
21 // Initialize tables
22 function initialize() {
23     var db = getDatabase();
24     db.transaction(
25         function(tx) {
26             // Create the settings table if it doesn't already exist
27             // If the table exists, this is skipped
28             tx.executeSql('CREATE TABLE IF NOT EXISTS settings(setting TEXT PRIMARY KEY, value TEXT)');
29 <<<<<<< HEAD
30             tx.executeSql('CREATE TABLE IF NOT EXISTS profiles(id INTEGER PRIMARY KEY, numberpattern TEXT, gatewaynumber TEXT, dtmfformat TEXT, dtmfprefix TEXT, dtmfsuffix TEXT)');
31 =======
32             tx.executeSql('CREATE TABLE IF NOT EXISTS rules(id INTEGER PRIMARY KEY, numberpattern TEXT, gatewaynumber TEXT, dtmfformat TEXT, dtmfprefix TEXT, dtmfsuffix TEXT)');
33 >>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
34           },
35         function(error) {
36             logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
37          });
38 }
39
40 function getSetting(setting) {
41     var db = getDatabase();
42     var res="";
43     db.transaction(
44       function(tx) {
45           var rs = tx.executeSql('SELECT value FROM settings WHERE setting=?;', [setting]);
46           if (rs.rows.length > 0) {
47                res = rs.rows.item(0).value;
48                logMessage(setting+" is "+res);
49           } else {
50               res = "Unknown";
51           }
52       },
53       function(error) {
54          logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
55       }
56      );
57      return res;
58 }
59
60
61 function setSetting(setting, value) {
62     var db = getDatabase();
63     var res = "";
64     db.transaction(
65         function(tx) {
66             var rs = tx.executeSql('INSERT OR REPLACE INTO settings VALUES (?,?);', [setting,value]);
67             if (rs.rowsAffected > 0) {
68                 res = "OK";
69                 logMessage("Updated "+setting+" to "+value);
70             } else {
71              res = "Error";
72             }
73         },
74         function(error) {
75             logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
76         }
77     );
78    return res;
79 }
80
81 function addRule(ruleObj){
82 <<<<<<< HEAD
83     logMessage('SQL> INSERT INTO profiles(id, numberpattern, gatewaynumber, dtmfformat, dtmfprefix, dtmfsuffix) VALUES (NULL, '+[ruleObj.numberpattern, ruleObj.gatewaynumber, ruleObj.dtmfformat, ruleObj.dtmfprefix, ruleObj.dtmfsuffix]+')');
84 =======
85     logMessage('SQL> INSERT INTO rules(id, numberpattern, gatewaynumber, dtmfformat, dtmfprefix, dtmfsuffix) VALUES (NULL, '+[ruleObj.numberpattern, ruleObj.gatewaynumber, ruleObj.dtmfformat, ruleObj.dtmfprefix, ruleObj.dtmfsuffix]+')');
86 >>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
87     var db = getDatabase();
88     var res = "";
89     logMessage("Opened VICaR database..");
90
91     db.transaction(function(tx) {
92 <<<<<<< HEAD
93                var rs = tx.executeSql('INSERT INTO profiles(id, numberpattern, gatewaynumber, dtmfformat, dtmfprefix, dtmfsuffix) VALUES (NULL, ?, ?, ?, ?, ?);', [ruleObj.numberpattern, ruleObj.gatewaynumber, ruleObj.dtmfformat, ruleObj.dtmfprefix, ruleObj.dtmfsuffix]);
94 =======
95                var rs = tx.executeSql('INSERT INTO rules(id, numberpattern, gatewaynumber, dtmfformat, dtmfprefix, dtmfsuffix) VALUES (NULL, ?, ?, ?, ?, ?);', [ruleObj.numberpattern, ruleObj.gatewaynumber, ruleObj.dtmfformat, ruleObj.dtmfprefix, ruleObj.dtmfsuffix]);
96 >>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
97                logMessage("Inserted "+rs.rowsAffected+" rows");
98                if (rs.rowsAffected > 0) {
99                  res = "OK";
100                } else {
101                  res = "Error";
102                }
103          },
104          function(error) {
105            logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
106          }
107    );
108    return res;
109 }
110
111 function updateRule(id,ruleObj){
112 <<<<<<< HEAD
113     logMessage('SQL> UPDATE profiles set numberpattern = '+[ruleObj.numberpattern]+
114 =======
115     logMessage('SQL> UPDATE rules set numberpattern = '+[ruleObj.numberpattern]+
116 >>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
117                ', gatewaynumber = '+[ruleObj.gatewaynumber]+
118                ', dtmfformat = '+[ruleObj.dtmfformat]+
119                ', dtmfprefix = '+[ruleObj.dtmfprefix]+
120                ', dtmfsuffix = '+[ruleObj.dtmfsuffix]+
121                ' WHERE id = ?'+[id]);
122     var db = getDatabase();
123     var res = "";
124     db.transaction(function(tx) {
125 <<<<<<< HEAD
126            var rs = tx.executeSql('UPDATE profiles set numberpattern = ?, gatewaynumber = ?, dtmfformat = ?, dtmfprefix = ?, dtmfsuffix = ? WHERE id = ?;',
127 =======
128            var rs = tx.executeSql('UPDATE rules set numberpattern = ?, gatewaynumber = ?, dtmfformat = ?, dtmfprefix = ?, dtmfsuffix = ? WHERE id = ?;',
129 >>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
130                             [ruleObj.numberpattern, ruleObj.gatewaynumber, ruleObj.dtmfformat, ruleObj.dtmfprefix, ruleObj.dtmfsuffix, id]);
131            logMessage("Updated "+rs.rowsAffected+" rows");
132            if (rs.rowsAffected > 0) {
133              res = "OK";
134            } else {
135              res = "Error";
136            }
137          },
138          function(error) {
139             logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
140          }
141    );
142    return res;
143 }
144
145 function removeRule(id){
146 <<<<<<< HEAD
147     logMessage('SQL> DELETE FROM profiles WHERE id = '+[id]);
148     var db = getDatabase();
149     var res = "";
150     db.transaction(function(tx) {
151          var rs = tx.executeSql('DELETE FROM profiles WHERE id = ?;', [id]);
152 =======
153     logMessage('SQL> DELETE FROM rules WHERE id = '+[id]);
154     var db = getDatabase();
155     var res = "";
156     db.transaction(function(tx) {
157          var rs = tx.executeSql('DELETE FROM rules WHERE id = ?;', [id]);
158 >>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
159                logMessage("Deleted "+rs.rowsAffected+" rows");
160                if (rs.rowsAffected > 0) {
161                  res = "OK";
162                } else {
163                  res = "Error";
164                }
165          },
166          function(error) {
167             logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
168          }
169    );
170    return res;
171 }
172
173 function getAllRules(){
174     var db = getDatabase();
175     var rulesArray = new Array();
176     var ruleObj;
177     db.transaction(function(tx) {
178 <<<<<<< HEAD
179            var rs = tx.executeSql('SELECT * FROM profiles');
180 =======
181            var rs = tx.executeSql('SELECT * FROM rules');
182 >>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
183            logMessage("Fetched "+rs.rows.length+" rows");
184            var i = 0;
185            for (i = 0; i < rs.rows.length; i++){
186                ruleObj = new Object();
187                ruleObj.id = rs.rows.item(i).id;
188                ruleObj.numberpattern = rs.rows.item(i).numberpattern;
189                ruleObj.gatewaynumber = rs.rows.item(i).gatewaynumber;
190                ruleObj.dtmfformat = rs.rows.item(i).dtmfformat;
191                ruleObj.dtmfprefix = rs.rows.item(i).dtmfprefix;
192                ruleObj.dtmfsuffix = rs.rows.item(i).dtmfsuffix;
193                rulesArray[i] = ruleObj;
194                logMessage("id = "+ruleObj.id
195                           +", numberpattern = "+ruleObj.numberpattern
196                           +", gatewaynumber = "+ruleObj.gatewaynumber
197                           +", dtmfformat = "+ruleObj.dtmfformat
198                           +", dtmfprefix = "+ruleObj.dtmfprefix
199                           +", dtmfsuffix = "+ruleObj.dtmfsuffix);
200            }
201        },
202        function(error) {
203            logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
204        }
205    );
206    return rulesArray;
207 }
208
209
210 function getRuleByID(id){
211     var db = getDatabase();
212     var ruleObj;
213     db.transaction(function(tx) {
214 <<<<<<< HEAD
215            logMessage('SQL> SELECT * FROM profiles WHERE id = '+[id]);
216            var rs = tx.executeSql('SELECT * FROM profiles WHERE id = '+[id]);
217 =======
218            logMessage('SQL> SELECT * FROM rules WHERE id = '+[id]);
219            var rs = tx.executeSql('SELECT * FROM rules WHERE id = '+[id]);
220 >>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
221            logMessage("Fetched "+rs.rows.length+" rows");
222            if (rs.rows.length > 0){
223                ruleObj = new Object();
224                ruleObj.id = rs.rows.item(0).id;
225                ruleObj.numberpattern = rs.rows.item(0).numberpattern;
226                ruleObj.gatewaynumber = rs.rows.item(0).gatewaynumber;
227                ruleObj.dtmfformat = rs.rows.item(0).dtmfformat;
228                ruleObj.dtmfprefix = rs.rows.item(0).dtmfprefix;
229                ruleObj.dtmfsuffix = rs.rows.item(0).dtmfsuffix;
230                logMessage("id = "+ruleObj.id
231                           +", numberpattern = "+ruleObj.numberpattern
232                           +", gatewaynumber = "+ruleObj.gatewaynumber
233                           +", dtmfformat = "+ruleObj.dtmfformat
234                           +", dtmfprefix = "+ruleObj.dtmfprefix
235                           +", dtmfsuffix = "+ruleObj.dtmfsuffix);
236            }
237        },
238        function(error) {
239            logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
240        }
241    );
242    return ruleObj;
243 }