@cbm-common/price-list-repository
v0.0.1
Published
Documentación en español para la librería `@cbm-common/price-list-repository`.
Readme
CbmPriceListRepository
Documentación en español para la librería @cbm-common/price-list-repository.
Esta librería proporciona el módulo, servicio y repositorio para manejar listas de precios contra un endpoint REST configurable.
Resumen
- Configuración:
CbmPriceListModule.forRoot({ baseUrl })que inyectaPRICE_LIST_MODULE_CONFIG. - Servicio:
CbmPriceListServiceusaHttpClienty la configuración inyectada para construir las URLs. - Repositorio:
CbmPriceListRepositoryexpone métodos tipados (list,getOne).
Build
Compilar la librería desde la raíz del monorepo:
ng build price-list-repositoryConfiguración del módulo
Registrar la configuración al importar el módulo en tu AppModule:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { CbmPriceListModule } from '@cbm-common/price-list-repository';
@NgModule({
imports: [
BrowserModule,
CbmPriceListModule.forRoot({ baseUrl: '/api/price-lists' }),
],
})
export class AppModule {}Tipos principales
Consulta projects/price-list-repository/src/lib/price-list.model.ts para la definición completa. Resumen:
- ListParams: filtros (enabled?, name?).
- ListResponse: { success, data: Array } con campos del listado.
- GetOne: respuesta para obtener un registro por id.
API pública
La clase CbmPriceListRepository expone:
- list(params: ListParams): Observable
- getOne(id: string): Observable
Los métodos son observables y están tipados con las interfaces de CbmPriceListModel.
Ejemplos
- Consumir el repositorio en un componente:
import { Component } from '@angular/core';
import { CbmPriceListRepository } from '@cbm-common/price-list-repository';
@Component({ template: '' })
export class Example {
constructor(private repo: CbmPriceListRepository) {}
load() {
this.repo.list({ name: 'Promoción' }).subscribe(res => console.log(res.data));
}
}- Obtener un registro por id:
this.repo.getOne('id-123').subscribe(res => console.log(res.data));Notas
- Base URL: todas las rutas se construyen desde
baseUrlregistrado porforRoot. - Tipos: usa las interfaces exportadas en
CbmPriceListModelpara evitarany. - Compatibilidad: versiones anteriores podían exponer
PriceListHttpServiceo interceptores; la versión actual empleaHttpClienty el token de configuración. Si necesitas interceptores específicos, regístralos en la app o extiende la librería.
Tests
Comandos habituales para tests/lint si están configurados:
ng test
ng lintSi quieres, puedo añadir snippets de pruebas unitarias (HttpClientTestingModule) para verificar rutas y payloads.
