feat(api): módulo de consultas de solo lectura a la base de SAP (HANA con hdb): consultas registradas con parámetros con nombre, cola, auditoría y extensión por cliente

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
GeorgeandClaude Sonnet 5.5 committed 2026-10-20 07:31:17 -05:00
1 parent 9118985d96
commit 3e27f370dc
21 files changed
+770 -2

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
import { Module } from '@nestjs/common';
import { AuditModule } from '../audit/audit.module.js';
import { AppConfigService } from '../config/app-config.service.js';
import { PermissionsModule } from '../permissions/permissions.module.js';
import { HanaAdapter } from './hana.adapter.js';
import { SapDbController } from './sapdb.controller.js';
import { SapDbService } from './sapdb.service.js';
import { SAPDB_ADAPTER, type SapDbAdapter } from './sapdb.types.js';
/** Consultas de solo lectura a la base de SAP B1 (hoy HANA): su propia cola y sus propias consultas registradas. */
@Module({
imports: [AuditModule, PermissionsModule],
controllers: [SapDbController],
providers: [
{
provide: SAPDB_ADAPTER,
inject: [AppConfigService],
// sin motor configurado no hay adaptador: el servicio responde 503 y el resto de la API sigue igual
useFactory: (config: AppConfigService): SapDbAdapter | null =>
config.get('SAPDB_ENGINE') === 'hana'
? new HanaAdapter({
host: config.get('SAPDB_HOST')!,
port: config.get('SAPDB_PORT'),
user: config.get('SAPDB_USER')!,
password: config.get('SAPDB_PASSWORD')!,
schema: config.get('SAPDB_SCHEMA')!,
tls: config.get('SAPDB_TLS'),
caFile: config.get('SAPDB_CA_FILE'),
verifySsl: config.get('SAPDB_VERIFY_SSL'),
})
: null,
},
SapDbService,
],
})
export class SapDbModule {}