@cbm-common/payment-term-repository
v0.0.1
Published
Documentación en español para la librería `@cbm-common/payment-term-repository`.
Readme
@cbm-common/payment-term-repository
Documentación en español para la librería @cbm-common/payment-term-repository.
Resumen
- Propósito: Proveer el acceso a la API de condiciones de pago (Payment Term) mediante un servicio HTTP tipado y un repositorio inyectable.
- Paquete:
@cbm-common/payment-term-repository(verpackage.json). - Requisitos: Angular 20.1.5 y
HttpClientModuleen la aplicación consumidora.
Qué exporta
- Exports públicos (ver
src/public-api.ts):payment-term.model,payment-term.module,payment-term.repository,payment-term.service.
Configuración del módulo
El módulo CbmPaymentTermModule permite inyectar la baseUrl de la API mediante forRoot:
import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { CbmPaymentTermModule } from '@cbm-common/payment-term-repository';
@NgModule({
imports: [HttpClientModule, CbmPaymentTermModule.forRoot({ baseUrl: 'https://api.example.com/api/payment-terms' })],
})
export class AppModule {}- Interfaz de configuración:
ICbmPaymentTermModuleConfig { baseUrl: string }. - Token de inyección:
PAYMENT_TERM_MODULE_CONFIG.
Servicio: CbmPaymentTermService
El servicio construye rutas a partir de config.baseUrl y expone métodos para consultar la API:
list(params: CbmPaymentTermModel.ListParams): Observable<CbmPaymentTermModel.ListResponse>
- Parámetros: { name?: string; code?: string }
- Endpoint: GET
${baseUrl}
getOne(id: string): Observable<CbmPaymentTermModel.GetOneResponse>
- Endpoint: GET
${baseUrl}/{id}
- Endpoint: GET
Modelos y contratos (CbmPaymentTermModel)
- ListParams: filtros opcionales (
name,code). - ListResponse: { success: boolean; data: Array< { _id, country_id, code, name, SRI_code, created_at, created_user, order? } > }
- GetOneResponse: { success: boolean; data: { _id, country_id?, code?, name?, created_at?, created_user?, SRI_code?, order? } }
Repositorio: CbmPaymentTermRepository
- Interfaz
ICbmPaymentTermRepositoryque exponelist(params)ygetOne(id)y delega enCbmPaymentTermService.
Ejemplo de uso en un componente
import { Component, OnInit } from '@angular/core';
import { CbmPaymentTermRepository } from '@cbm-common/payment-term-repository';
@Component({ selector: 'app-demo', template: '' })
export class DemoComponent implements OnInit {
constructor(private repo: CbmPaymentTermRepository) {}
ngOnInit() {
this.repo.list({ name: 'Net' }).subscribe(res => console.log(res.data));
}
}Build y publicación
Para compilar la librería desde la raíz del workspace:
ng build payment-term-repositoryLos artefactos estarán en dist/payment-term-repository. Para publicar:
cd dist/payment-term-repository
npm publishNotas y recomendaciones
- El módulo se diseñó para inyectar la URL base mediante
PAYMENT_TERM_MODULE_CONFIG; asegúrate de registrarCbmPaymentTermModule.forRoot({ baseUrl })en la app consumidora. - El servicio usa
HttpClienty construye rutas conconfig.baseUrl. Si necesitas interceptores o un adaptador HTTP específico (antes se usabaPaymentTermHttpServiceen alguna versiones), considera añadir un adaptador o registrar interceptores a nivel de la app consumidora. - Los tipos están definidos en
src/lib/payment-term.model.tsy se usan en el repositorio y el servicio; no se usaanyen las firmas públicas.
Siguientes pasos sugeridos
- Añadir ejemplos de tests unitarios que mockeen
HttpClientparaCbmPaymentTermService. - Documentar en el README un ejemplo de configuración de interceptores si la API requiere autenticación específica.
Estado: README.md actualizado con documentación en español basada en los archivos fuente de la librería.
