INTO-CPS-Association/DTaaS

View on GitHub
servers/lib/src/files/services/files-service.factory.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { Injectable, Inject } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { IFilesService } from '../interfaces/files.service.interface';
import LocalFilesService from './local-files.service';

@Injectable()
export default class FilesServiceFactory {
  /* eslint-disable no-useless-constructor, no-empty-function */
  constructor(
    private configService: ConfigService,
    @Inject(LocalFilesService) private localFilesService: LocalFilesService,
  ) {}
  /* eslint-enable no-useless-constructor, no-empty-function */

  create(): IFilesService {
    const mode = this.configService.get<string>('MODE');
    if (mode === 'local') {
      return this.localFilesService;
    }
    throw new Error(`Invalid MODE: ${mode}`);
  }
}