UNPKG

bitfront-library

Version:

Angular CLI project with components and classes used by other Angular projects of the BIT foundation.

90 lines 3.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseCRUDService = void 0; var global_constants_1 = require("../../shared/global.constants"); /** * Clase básica que implementa un CRUD. * Es recomendable que todos los servicios que implementan un CRUD extiendan esta clase * o implementen la interface BaseCRUDServiceInterface. */ var BaseCRUDService = /** @class */ (function () { function BaseCRUDService(messageService, http) { this.messageService = messageService; this.http = http; } /** Inserta o modifica la información del elemento. */ BaseCRUDService.prototype.save = function (object, mode, params) { if (mode == global_constants_1.FormType.Insert) { var resolveUrl = this.resolveUrl(this.baseUrl, params); return this.http.getHttpPost(resolveUrl, object); } else { var resolveUrl = this.resolveUrl(this.baseUrl + "/" + object.id, params); return this.http.getHttpPut(resolveUrl, object); } }; /** Inserta o modifica la información del elemento. */ BaseCRUDService.prototype.saveObject = function (object, params) { return this.save(object, object && object.id ? global_constants_1.FormType.Update : global_constants_1.FormType.Insert, params); }; /** Elimina el elemento. */ BaseCRUDService.prototype.delete = function (id, params) { var resolveUrl = this.resolveUrl(this.baseUrl + "/" + id, params); return this.http.getHttpDelete(resolveUrl); }; /** Elimina todos los elementos pasados por parámetro */ BaseCRUDService.prototype.deleteAll = function (items, params) { var resolveUrl = this.resolveUrl(this.baseUrl + "/delete", params); return this.http.getHttpPost(resolveUrl, items); }; /** Recupera la información del elemento. */ BaseCRUDService.prototype.get = function (id, params) { var resolveUrl = this.resolveUrl(this.baseUrl + "/" + id, params); return this.http.getHttpGet(resolveUrl); }; /** Recupera todos los elementos. */ BaseCRUDService.prototype.getAll = function (params) { var resolveUrl = this.resolveUrl(this.baseUrl, params); return this.http.getHttpGet(resolveUrl); }; /** Recupera la lista (opcionalmente, filtrada y paginada) de elementos. */ BaseCRUDService.prototype.getAllByFilter = function (filter, params) { var resolveUrl = this.resolveUrl(this.baseUrl + "/filter", params); return this.http.getHttpPost(resolveUrl, filter); }; /** Recupera el número total de la lista (filtrada) de elementos. */ BaseCRUDService.prototype.countAllByFilter = function (filter, params) { var resolveUrl = this.resolveUrl(this.baseUrl + "/count", params); return this.http.getHttpPost(resolveUrl, filter); }; /** * Construye la URL final en base a la plantilla y la colección de parámetros. * Si la clave de un parámetro forma parte de la URL, la reemplaza por su valor. * Si la clave de un parámetro no forma parte de la URL, se añadirá como parte del queryString. */ BaseCRUDService.prototype.resolveUrl = function (url, params) { var queryParams = []; var newUrl = url; if (params) { for (var key in params) if (newUrl.indexOf(key) >= 0) { newUrl = newUrl.replace(key, params[key]); } else { queryParams.push(key + "=" + params[key]); } } if (queryParams.length > 0) { if (newUrl.indexOf("?") < 0) { newUrl += "?" + queryParams.join("&"); } else { newUrl += "&" + queryParams.join("&"); } } return newUrl; }; return BaseCRUDService; }()); exports.BaseCRUDService = BaseCRUDService; //# sourceMappingURL=base.service.js.map