bitfront-library
Version:
Angular CLI project with components and classes used by other Angular projects of the BIT foundation.
90 lines • 3.99 kB
JavaScript
"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