UNPKG

zettapi_client

Version:

Admin panel and client-side CRUD operations in angular to use with zettapi_server rest api to get started quickly in any CMS project.

46 lines (42 loc) 1.64 kB
app.service('$list', function ($http, mySocket, zapi) { this.getMetadata = function (blockUI, callback) { blockUI.start("A obter listagens disponíveis..."); $http.get(zapi.serverUrl + '/api/list/getall').then(function (response) { response.data.forEach(function (list) { list.values = {}; }); callback(response.data); }).catch(function (response) { swal("Atenção", "Não foi possível obter as listagens disponíveis, por favor actualize a página", "warning"); callback([]); }).finally(function () { blockUI.stop(); }); }; this.get = function (blockUI, list, dbs, channel, callback) { if (dbs.length === 0) return swal("Atenção", "Selecione pelo menos uma base de dados", "warning"); mySocket.on(channel, listDataHandler(blockUI, callback)); blockUI.start("A obter " + list.caption); $http.get(zapi.serverUrl + '/api/list/values/' + list.name, { params: { query: list.values, dbs: dbs } }).then(function (response) { //data handled through websockets }).catch(function (response) { blockUI.stop(); swal("Atenção", response.data, "warning"); callback([]); }); }; function listDataHandler(blockUI, callback) { return function (data) { if (typeof data.ok !== 'undefined') { blockUI.stop(); callback(data.ok); } else if (typeof data.error !== 'undefined') { blockUI.stop(); swal("Ocorreu um erro", data.error, "error"); callback([]); } else if (typeof data.message !== 'undefined') { blockUI.message(data.message); } }; } });