Files
basic-erp/apps/api/src/sapdb/sapdb.module.ts
T

38 lines
1.5 KiB
TypeScript

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],
exports: [SapDbService],
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 {}