dmitriev-aal@VDI-Dmitriev-A:~/Desktop/rshbintech/it-corp/rprul/ecp/acquiring/backend/ms-acquiring-manage-b2c-limits$ sed -n '1,100p' src/infrastructure/http/http.module.ts
import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
import * as fs from 'node:fs';
import * as path from 'node:path';
import * as https from 'node:https';
import { HttpModule as AxiosHttpModule } from '@nestjs/axios';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { HttpModuleOptions } from '@nestjs/axios/dist/interfaces';
import { AgentOptions } from 'node:https';
import { HttpService } from './http.service';
import { HttpAuthTokenMiddleware } from './middleware/http-auth-token.middleware';
import { HttpContextStorage } from './http-context.storage';
import { CurrentUserService } from './current-user.service';
import { EnvironmentSettings } from '../setting/env/envSetting';
@Module({
imports: [
AxiosHttpModule.registerAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => {
const environmentSettings = configService.get<EnvironmentSettings>(
'environmentSettings',
{
infer: true,
},
);
const options: HttpModuleOptions = {
timeout: 5000,
};
let agentOptions: AgentOptions = {
rejectUnauthorized: false,
};
if (!environmentSettings.isLocalDev && !environmentSettings.isTesting) {
const certs = [
'rshbdev_ca_ca.crt',
'rshbdev_intermediate_ca.crt',
'rshbdev_intermediate_squid.crt',
'rshbpro_ca_ca.crt',
'rshbpro_intermediate_ca.crt',
].map((filename) =>
fs.readFileSync(
path.join('/usr/local/share/ca-certificates', filename),
'utf-8',
),
);
agentOptions = {
ca: certs,
};
}
options.httpsAgent = new https.Agent(agentOptions);
return options;
},
inject: [ConfigService],
}),
],
providers: [
HttpService,
HttpContextStorage,
HttpAuthTokenMiddleware,
CurrentUserService,
],
exports: [HttpService, HttpContextStorage, CurrentUserService],
})
export class HttpsModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(HttpAuthTokenMiddleware).forRoutes('*');
}
}
dmitriev-aal@VDI-Dmitriev-A:~/Desktop/rshbintech/it-corp/rprul/ecp/acquiring/backend/ms-acquiring-manage-b2c-limits$