fb87297495fb2f7401acb4044690eb3eec5afb0c
[marketstoday] / src / qml / Library / js / DBUtility.js
1 /*
2 @version: 0.4
3 @author: Sudheer K. <scifi1947 at gmail.com>
4 @license: GNU General Public License
5 */
6
7 function getDatabase() {
8      logMessage("Opening MarketsToday database..");
9      return openDatabaseSync("MarketsToday", "1.0", "StorageDatabase", 100);
10 }
11
12 function logMessage(strMessage){
13     if (logUtility){
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 UNIQUE, value TEXT)');
29             tx.executeSql('CREATE TABLE IF NOT EXISTS tickers(symbol TEXT UNIQUE)');
30           },
31         function(error) {
32             logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
33          });
34 }
35
36 function getSetting(setting) {
37     var db = getDatabase();
38     var res="";
39     db.transaction(
40       function(tx) {
41           var rs = tx.executeSql('SELECT value FROM settings WHERE setting=?;', [setting]);
42           if (rs.rows.length > 0) {
43                res = rs.rows.item(0).value;
44                logMessage(setting+" is "+res);
45           } else {
46               res = "Unknown";
47           }
48       },
49       function(error) {
50          logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
51       }
52      );
53      return res;
54 }
55
56
57 function setSetting(setting, value) {
58     var db = getDatabase();
59     var res = "";
60     db.transaction(
61         function(tx) {
62             var rs = tx.executeSql('INSERT OR REPLACE INTO settings VALUES (?,?);', [setting,value]);
63             if (rs.rowsAffected > 0) {
64                 res = "OK";
65                 logMessage("Updated "+setting+" to "+value);
66             } else {
67              res = "Error";
68             }
69         },
70         function(error) {
71             logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
72         }
73     );
74    return res;
75 }
76
77 function addSymbol(symbol){
78     logMessage('SQL> INSERT OR REPLACE INTO tickers VALUES ('+[symbol]+')');
79     var db = getDatabase();
80     var res = "";
81     logMessage("Opened MarketsToday database..");
82
83     db.transaction(function(tx) {
84          var rs = tx.executeSql('INSERT OR REPLACE INTO tickers VALUES (?);', [symbol]);
85                logMessage("Inserted/replaced "+rs.rowsAffected+" rows");
86                if (rs.rowsAffected > 0) {
87                  res = "OK";
88                } else {
89                  res = "Error";
90                }
91          },
92          function(error) {
93            logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
94          }
95    );
96    return res;
97 }
98
99 function removeSymbol(symbol){
100     logMessage('SQL> DELETE FROM tickers WHERE symbol = '+[symbol]);
101     var db = getDatabase();
102     var res = "";
103     db.transaction(function(tx) {
104          var rs = tx.executeSql('DELETE FROM tickers WHERE symbol = ?;', [symbol]);
105                logMessage("Deleted "+rs.rowsAffected+" rows");
106                if (rs.rowsAffected > 0) {
107                  res = "OK";
108                } else {
109                  res = "Error";
110                }
111          },
112          function(error) {
113             logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
114          }
115    );
116    return res;
117 }
118
119 function getAllSymbols(){
120     var db = getDatabase();
121     var symbolsArray = new Array();
122     db.transaction(function(tx) {
123            var rs = tx.executeSql('SELECT symbol FROM tickers');
124            logMessage("Fetched "+rs.rows.length+" rows");
125            var i = 0;
126            for (i = 0; i < rs.rows.length; i++){
127                symbolsArray[i] = rs.rows.item(i).symbol;
128            }
129        },
130        function(error) {
131            logMessage("Error ["+error.code +"] - " + error.DOMString+" occurred.");
132        }
133    );
134    return symbolsArray;
135 }