angular.module('focaConfiguracion') .factory("RequestHeadersInterceptor", [ '$injector', function($injector) { function reintentarRequest(httpConfig) { var $timeout = $injector.get('$timeout'); $timeout(function() { var $http = $injector.get('$http'); return $http(httpConfig.config); }, 5000); return getDataSqlite(httpConfig); } function updateDataSqlite(request) { var sqliteService = $injector.get('focaSqliteService'); sqliteService.updateQuery( request.config.url, JSON.stringify(request.config.data), request.config.method, JSON.stringify(request.data)) } function getDataSqlite(request) { return new Promise(function(resolve) { var sqliteService = $injector.get('focaSqliteService'); sqliteService.getQuery( request.config.url, JSON.stringify(request.config.data), request.config.method, respuesta); function respuesta(config) { var request = { data: JSON.parse(config), status: 200 }; console.log(request); if (config) { resolve(request); } } }); } var request = { responseError: async function(config) { if (config.status === -1) { var data = await reintentarRequest(config); config.data = data.data; return config; } else { return config; } }, response: function(response) { if (typeof response.data !== 'string') { updateDataSqlite(response); } return response; } } return request; } ]);