2026-10-20 07:31:17 -05:00
|
|
|
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],
|
2026-10-20 16:20:53 -05:00
|
|
|
exports: [SapDbService],
|
2026-10-20 07:31:17 -05:00
|
|
|
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 {}
|