app.js 2.76 KB
angular.module('focaSqlite', [])
    .factory('focaSqliteService', [
        function() {
            var dataBase;
            var baseReady;
            function error(error) {
                console.error(error);
            }
            return {
                openDataBase: function() {
                    var db = null;
                    db = window.sqlitePlugin.openDatabase({
                        name: 'foca.distribuidor',
                        location: 'default',
                    });
                    dataBase = db;
                    var queryCreate = "CREATE TABLE IF NOT EXISTS querys " +
                        "(route text," +
                        "type text," +
                        "body text," +
                        "response text," +
                        "PRIMARY KEY(route, body, type))";
                    dataBase.transaction(function(tx) {
                        tx.executeSql(queryCreate);
                        baseReady = true;
                    }, error);
                },
                updateQuery: function(route, body, type, response, success) {

                    function callQuery() {
                        if (baseReady) {

                            var query = 'INSERT OR REPLACE INTO querys (route, type, body, response)' +
                            "VALUES('" + route + "'" +
                            ", '" + type + "'" +
                            ", '" + body + "'" +
                            ", '" + response + "')";

                            dataBase.transaction(function(tx) {
                                tx.executeSql(query);
                            }, error, success)
                        } else {
                            setTimeout(function() {

                                callQuery();
                            }, 1000)
                        }
                    }
                    callQuery();
                },
                getQuery: function(route, body, type, success) {
                    function callQuery() {

                        if(baseReady) {

                            var query= "SELECT * FROM querys " +
                            "WHERE route = '" + route + "'" +
                            " and body = '" + body + "'" +
                            " and type = '" + type + "'";
                            dataBase.executeSql(query, [], function(data) {
                                success(data.rows.item(0).response);
                            }, error);
                        } else {
                            setTimeout(function() {
                                callQuery();
                            }, 1000);
                        }
                    }
                    callQuery();
                }
            }
        }
    ]);