Загрузка данных


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$