· 6 years ago · Jun 19, 2019, 06:16 AM
1actions.push(function() {
2var d = $q.defer();
3 Database.recreateTable(table).then(function() {
4 d.resolve("Success");
5 }, function(e) { d.resolve(e);});
6 return d.promise
7})
8
9var recreateTable = function(table) {
10 var def = $q.defer();
11 execute("DROP TABLE IF EXISTS " + table).then(function() {
12 createTable(table).then(function() {
13 def.resolve();
14 }, function(error) {
15 ValidatorService.log(getScriptName(), error);
16 def.reject(error);
17 });
18 }, function (error) {
19 ValidatorService.log(getScriptName(), error);
20 def.reject(error);
21 });
22 return def.promise;
23}
24
25var createTable = function(table) {
26 var def = $q.defer();
27 var q = "CREATE TABLE IF NOT EXISTS " + table + " (" + getColumns(table, true, true) + ")";
28 execute(q).then(function(s) {
29 def.resolve();
30 }, function (error) {
31 def.reject(error);
32 });
33 return def.promise;
34}
35
36var execute = function (query, bindings) {
37
38 bindings = typeof bindings !== 'undefined' && typeof bindings !== 'null' ? bindings : [];
39 var deferred = $q.defer();
40
41 if (db === undefined || db === null) { //initialize first if hasn't been done yet
42 init().then(executeQuery(), function(error) {} );
43 }
44 else {
45 executeQuery();
46 }
47
48 function executeQuery() {
49 if (window.cordova) {
50 $cordovaSQLite.execute(db, query, bindings).then(function (result) {
51 deferred.resolve(result);
52 }, function (fail) {
53 ValidatorService.log(getScriptName(), JSON.stringify(fail));
54 deferred.reject(fail);
55 });
56 }
57 else {
58 db = window.openDatabase("database.db", '1.0', 'auto', 1024 * 1024 * 100);
59 db.transaction(function(tx) {
60 tx.executeSql(query, bindings, function (tx, result) {
61 deferred.resolve(result);
62 }, function (tx, fail) {
63 deferred.resolve(fail);
64 });
65 });
66 }
67 }
68
69 return deferred.promise;
70}
71
72function executeRun() {
73 var d = $q.defer();
74 function multi(i) {
75 if (actions.length > 0 && i < actions.length) {
76 actions[i]().then(function(s) {
77 multi(i+1);
78 }, function(e) {
79 multi(i+1);
80 })
81 }
82 else {
83 d.resolve();
84 }
85 }
86 multi(0);
87 return d.promise;
88}