@cbm-common/company-custom-repository
v0.0.1
Published
Librería Angular para gestionar configuraciones y niveles personalizados de una compañía.
Readme
@cbm-common/company-custom-repository
Librería Angular para gestionar configuraciones y niveles personalizados de una compañía.
Descripción
Esta librería expone:
- Modelos TypeScript en
CbmCompanyCustomModel(definidos ensrc/lib/company-custom.model.ts). - Interfaz
ICbmCompanyCustomRepositorycon la API pública. - Implementación HTTP
CbmCompanyCustomService(usaHttpClient+ tokenCOMPANY_CUSTOM_MODULE_CONFIG). - Wrapper
CbmCompanyCustomRepository(inyectable, delega en el servicio). - Un
CbmCompanyCustomModuleque expone el token de configuraciónCOMPANY_CUSTOM_MODULE_CONFIGpara establecerbaseUrl.
Instalación y uso
Durante el desarrollo este paquete se consume mediante tsconfig.paths apuntando a dist/. Para usarlo:
- Construir la librería:
ng build company-custom-repository- Registrar el módulo y configurar la URL base:
import { CbmCompanyCustomModule } from 'company-custom-repository';
providers: [
CbmCompanyCustomModule.forRoot({ baseUrl: `${environment.msCompany}/company-custom` }),
]Nota: si publicas el paquete cambia el import por el nombre publicado (p. ej. @cbm-common/company-custom-repository).
API pública
Modelos principales (CbmCompanyCustomModel):
FindResponse— datos generales de configuración por compañía.FindCustomLevelsResponse— listado de niveles personalizados.UpdateBody/UpdateCustomLevelBody— payloads para actualizar.ConfirmResponse— respuesta genérica de confirmación.
Interfaz ICbmCompanyCustomRepository (métodos):
getLevels(): Observable<FindResponse>getCustomLevels(): Observable<FindCustomLevelsResponse>updateCustomLevel(id: string, data: UpdateCustomLevelBody): Observable<ConfirmResponse>update(id: string, data: UpdateBody): Observable<ConfirmResponse>
CbmCompanyCustomService implementa la lógica HTTP y construye las URLs usando el baseUrl configurado.
Ejemplo rápido de uso
import { Component, OnInit } from '@angular/core';
import { CbmCompanyCustomRepository } from 'company-custom-repository';
@Component({ /* ... */ })
export class ExampleComponent implements OnInit {
constructor(private repo: CbmCompanyCustomRepository) {}
ngOnInit() {
this.repo.getLevels().subscribe(res => console.log(res));
}
}Consideraciones y buenas prácticas
- Todos los tipos están definidos en
CbmCompanyCustomModel; evita usarany. - El servicio devuelve
Observablede RxJS; maneja errores en la capa consumidora. - Si recibes errores de resolución del paquete en la app, ejecuta
ng build company-custom-repositorypara generardist/company-custom-repository.
Contribuciones
- Fork del repositorio.
- Crea una rama para tus cambios.
- Ejecuta build/tests:
ng build company-custom-repository
ng test- Abre un merge request describiendo los cambios.
Licencia
Revisa la licencia en la raíz del mono-repo (LICENSE).
