@cbm-common/seat-repository
v0.0.1
Published
This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.1.0.
Downloads
9
Readme
SeatRepository
This project was generated using Angular CLI version 20.1.0.
Code scaffolding
Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
ng generate component component-nameFor a complete list of available schematics (such as components, directives, or pipes), run:
ng generate --helpBuilding
To build the library, run:
@cbm-common/seat-repository
Librería Angular que expone un repositorio para trabajar con asientos contables (Seat). Proporciona un servicio y un módulo de configuración para integrarlo fácilmente en otras aplicaciones o microfrontends.
Contenido
CbmSeatModule— módulo que expone la configuración por token (forRoot).CbmSeatService— servicio HTTP que implementa las operaciones del repositorio.CbmSeatRepository— wrapper/adapter que delega al servicio (interfaz pública de la librería).- Tipos y modelos en
seat.model.ts.
Instalación
Esta librería suele consumirse como paquete monorepo o paquete npm. En este repo está disponible en projects/seat-repository.
Uso (ejemplo mínimo)
- Proveer la configuración global (por ejemplo en el bootstrap o módulo raíz):
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app/app.component';
import { CbmSeatModule } from '@cbm-common/seat-repository';
bootstrapApplication(AppComponent, {
providers: [
CbmSeatModule.forRoot({ baseUrl: 'https://api.mi-app.com/seats' }) as any,
],
});- Consumir el repositorio desde componentes o servicios:
import { Component, OnInit } from '@angular/core';
import { CbmSeatRepository, CbmSeatModel } from '@cbm-common/seat-repository';
@Component({ /* ... */ })
export class ExampleComponent implements OnInit {
constructor(private repo: CbmSeatRepository) {}
async ngOnInit() {
this.repo.list({ dateFrom: 0, dateUntil: Date.now() }).subscribe((res) => {
console.log(res.data);
});
}
}API principal (resumen)
- CbmSeatModule.forRoot(config: { baseUrl: string }) — registra el token
SEAT_MODULE_CONFIGcon la URL base. - CbmSeatService / CbmSeatRepository — métodos disponibles (basado en
seat.model.ts):- list(params: ListParams): Observable
- getOne(id: string): Observable
- save(body: SaveBody): Observable
- update(id: string, body: UpdateBody): Observable
- changeStatus(id: string, body: ChangeStatusBody): Observable
- delete(id: string): Observable
- findAccountingMovements(id: string): Observable
- downloadExcel(params): Observable<HttpResponse> (descarga blob)
- downloadGeneralPdf(params): Observable<HttpResponse>
- downloadIndividualPdf(params): Observable<HttpResponse>
- downloadIndividualExcel(params): Observable<HttpResponse>
- findByFilter(params): Observable
Modelos
- Los modelos y tipos están en
projects/seat-repository/src/lib/seat.model.ts. Revisa allí las formas deListParams,ListResponse,GetOneResponse,SaveBody,UpdateBody, etc.
Desarrollo y pruebas
- Build (local, crea
dist/seat-repository):
ng build seat-repository- Ejecutar pruebas unitarias (Karma/jasmine) para la librería:
ng test seat-repository- Ejecutar todas las pruebas del workspace:
ng testNotas de integración
- Esta librería expecta que el consumidor provea un provider con
CbmSeatModule.forRoot({ baseUrl })o que se inyecte manualmente el tokenSEAT_MODULE_CONFIGsi se desea otra estrategia. - El servicio usa
HttpClientinternamente; asegúrate de importarHttpClientModuleen el contexto de la aplicación si no usasbootstrapApplicationcon providers.
Publicación
- Construir la librería:
ng build seat-repository. - Publicar desde
dist/seat-repositorysi procede.
Ayuda y contribuciones
- Para bugfixes o features, crea un branch, PR y añade tests que cubran cambios de comportamiento.
Si quieres, puedo añadir ejemplos adicionales (snippets para Angular modules tradicionales, pruebas de servicio con HttpClientTestingModule, o una pequeña guía de migración desde la antigua mf-common). ¿Qué prefieres que añada ahora?
