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