@cbm-common/tax-ice-repository
v0.0.1
Published
Documentación en español para la librería `@cbm-common/tax-ice-repository`.
Downloads
9
Readme
@cbm-common/tax-ice-repository
Documentación en español para la librería @cbm-common/tax-ice-repository.
Resumen
- Propósito: Proveer una capa de acceso (repository + service) para gestionar los datos de ICE/Impuestos especiales (Tax ICE) vía HTTP.
- Paquete:
@cbm-common/tax-ice-repository(verpackage.json). - Requisitos:
@angular/corey@angular/commonv20.1.5 yHttpClientModuledisponible en la app.
Estado del contenido del paquete
- Exports públicos:
src/public-api.tsexponeindex,tax-ice.model,tax-ice.module,tax-ice.repository,tax-ice.service.
Instalación
- Instalar la librería desde el registro NPM (asumiendo que está publicada):
npm install @cbm-common/tax-ice-repository- La librería requiere
HttpClientModuleen la aplicación que la consume:
import { HttpClientModule } from '@angular/common/http';
import { NgModule } from '@angular/core';
@NgModule({
imports: [HttpClientModule],
})
export class AppModule {}Uso rápido
- Registrar el módulo con configuración base (URL base del API):
import { NgModule } from '@angular/core';
import { CbmTaxIceModule } from '@cbm-common/tax-ice-repository';
@NgModule({
imports: [
CbmTaxIceModule.forRoot({ baseUrl: 'https://api.example.com/api/tax-ices' }),
],
})
export class AppModule {}- Inyectar el repositorio y usar sus métodos (retornan
Observable):
import { Component, OnInit } from '@angular/core';
import { CbmTaxIceRepository } from '@cbm-common/tax-ice-repository';
@Component({ selector: 'app-demo', template: '' })
export class DemoComponent implements OnInit {
constructor(private repo: CbmTaxIceRepository) {}
ngOnInit() {
// List
this.repo.list({ enabled: true }).subscribe(res => console.log(res.data));
// Get one
this.repo.getOne('id-123').subscribe(res => console.log(res.data));
// Save
this.repo.save({ code: 'ICE001', type: 'fixed', value: 10 }).subscribe(r => console.log(r.message));
}
}API pública (resumen)
Módulos / símbolos principales exportados (ver src/lib):
CbmTaxIceModule— módulo para configurar la URL base medianteforRoot({ baseUrl }).CbmTaxIceService— servicio que realiza las llamadas HTTP.CbmTaxIceRepository— repositorio inyectable que delega en el servicio y expone la API usada por la aplicación.CbmTaxIceModel— tipos/contratos para parámetros y respuestas.
Modelos principales (CbmTaxIceModel)
- ListParams: { enabled?: boolean; description?: string }
- ListResponse: { success: boolean; data: Array<{ _id, code, value, percentage, description, type, start_range, end_range, ice_vehicle, enabled, ... }> }
- GetOneResponse: { success: boolean; data: { _id, code?, percentage?, description?, ... } }
- SaveBody: { code: string; value?: number; percentage?: number; description?: string; type: string; start_range?: number; end_range?: number; ice_vehicle?: boolean }
- UpdateBody: similar a SaveBody pero opcional en sus campos
- ChangeStatusBody: { enabled: boolean; disabled_reason?: string }
- ConfirmResponse: { success: boolean; message: string; data?: any }
Métodos disponibles en CbmTaxIceRepository (firma y comportamiento)
list(params: CbmTaxIceModel.ListParams): Observable<CbmTaxIceModel.ListResponse>
- Consulta la lista filtrada por
params.
- Consulta la lista filtrada por
getOne(id: string): Observable<CbmTaxIceModel.GetOneResponse>
- Obtiene un registro por su
id.
- Obtiene un registro por su
save(data: CbmTaxIceModel.SaveBody): Observable<CbmTaxIceModel.ConfirmResponse>
- Crea un nuevo registro.
update(id: string, data: CbmTaxIceModel.UpdateBody): Observable<CbmTaxIceModel.ConfirmResponse>
- Actualiza el registro identificado por
id.
- Actualiza el registro identificado por
changeStatus(id: string, data: CbmTaxIceModel.ChangeStatusBody): Observable<CbmTaxIceModel.ConfirmResponse>
- Cambia el estado
enabledde un registro y puede incluirdisabled_reason.
- Cambia el estado
delete(id: string): Observable<CbmTaxIceModel.ConfirmResponse>
- Elimina el registro.
Comportamiento del servicio HTTP (CbmTaxIceService)
- Construye rutas a partir de
config.baseUrl(se limpia de slashes finales). - Endpoints usados (por convención del servicio):
- GET
${baseUrl}-> list - GET
${baseUrl}/{id}-> getOne - POST
${baseUrl}-> save - PUT
${baseUrl}/{id}-> update - PUT
${baseUrl}/change-status/{id}-> changeStatus - DELETE
${baseUrl}/{id}-> delete
- GET
Ejemplos de payloads
- SaveBody ejemplo:
{
"code": "ICE001",
"type": "fixed",
"value": 12.5,
"description": "Impuesto especial ejemplo",
"ice_vehicle": false
}- ChangeStatusBody ejemplo:
{
"enabled": false,
"disabled_reason": "Obsoleto"
}Build y publicación
Para compilar la librería (desde el workspace raíz):
ng build tax-ice-repositoryLos artefactos estarán en dist/tax-ice-repository. Para publicar (si corresponde):
cd dist/tax-ice-repository
npm publishTests
- Ejecutar tests unitarios del workspace con
ng test(si están configurados en el proyecto consumidor).
Notas de implementación y contexto (resumen de archivos revisados)
package.json: nombre del paquete y peerDependencies (Angular 20.1.5).src/public-api.ts: exporta./lib/index.src/lib/index.ts: re-exportatax-ice.model,tax-ice.module,tax-ice.repository,tax-ice.service.src/lib/tax-ice.module.ts: exponeCbmTaxIceModule.forRoot({ baseUrl })que inyectaTAX_ICE_MODULE_CONFIG.src/lib/tax-ice.service.ts: implementa las llamadas HTTP descritas arriba.src/lib/tax-ice.repository.ts: reexpone los métodos del servicio con contratos deCbmTaxIceModel.
Asunciones
- La API remota respeta las rutas y respuestas esperadas por
CbmTaxIceService(estructura JSON y códigos HTTP habituales).
Siguientes pasos sugeridos (opcionales)
- Añadir ejemplos de pruebas unitarias para
CbmTaxIceRepositoryyCbmTaxIceService. - Documentar posibles códigos de error HTTP y mapeo a errores de cliente.
Estado: README actualizado con documentación en español y ejemplos.
