bitfront-library
Version:
Angular CLI project with components and classes used by other Angular projects of the BIT foundation.
60 lines (59 loc) • 2.52 kB
TypeScript
import { Observable } from "rxjs";
import { BaseCRUDServiceInterface } from "./base-interface.service";
import { BaseFilter } from "./base.filter";
import { Item } from "../../shared/data/item";
import { FormType } from "../../shared/global.constants";
import { HttpUtilsService } from "../../shared/service/http-utils.service";
import { MessageService } from "../../shared/service/message.service";
/**
* 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.
*/
export declare abstract class BaseCRUDService implements BaseCRUDServiceInterface {
protected messageService: MessageService;
protected http: HttpUtilsService;
/** URL base del servicio CRUD. */
protected baseUrl: string;
constructor(messageService: MessageService, http: HttpUtilsService);
/** Inserta o modifica la información del elemento. */
save<T>(object: Item, mode: FormType, params?: {
[key: string]: string;
}): Observable<T>;
/** Inserta o modifica la información del elemento. */
saveObject<T>(object: Item, params?: {
[key: string]: string;
}): Observable<T>;
/** Elimina el elemento. */
delete(id: Number, params?: {
[key: string]: string;
}): Observable<any>;
/** Elimina todos los elementos pasados por parámetro */
deleteAll(items: number[], params?: {
[key: string]: string;
}): Observable<any>;
/** Recupera la información del elemento. */
get<T>(id: Number, params?: {
[key: string]: string;
}): Observable<T>;
/** Recupera todos los elementos. */
getAll<T>(params?: {
[key: string]: string;
}): Observable<T>;
/** Recupera la lista (opcionalmente, filtrada y paginada) de elementos. */
getAllByFilter<T>(filter: BaseFilter, params?: {
[key: string]: string;
}): Observable<T>;
/** Recupera el número total de la lista (filtrada) de elementos. */
countAllByFilter(filter: BaseFilter, params?: {
[key: string]: string;
}): Observable<number>;
/**
* 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.
*/
resolveUrl(url: string, params: {
[key: string]: string;
}): string;
}