All files / libs/kernel/auth/core/src/lib auth-core.module.ts

0% Statements 0/42
0% Branches 0/1
0% Functions 0/1
0% Lines 0/42

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43                                                                                     
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { PassportModule } from '@nestjs/passport';
import { TypeOrmModule } from '@nestjs/typeorm';

import { MasterSetting, User } from '@amalia/core/models';
import { AdminScopesAuthModule } from '@amalia/tenants/companies/admin-scopes/auth';
import { HierarchyContextModule } from '@amalia/tenants/teams/hierarchy/core';

import { authConfig } from './config/auth.config';
import { AuthenticatedContextFactory } from './factories';
import { AmaliaAuthGuard, PoliciesGuard, SuperAdminAuthGuard } from './guards';
import { UserAuthenticationRepository } from './repositories/user-authentication.repository';
import { IdentityProviderService } from './services';
import { JwtStrategy } from './strategies';
import { ImpersonateUserUseCase } from './use-cases';

@Module({
  imports: [ConfigModule.forFeature(authConfig), HierarchyContextModule, AdminScopesAuthModule],
  providers: [
    IdentityProviderService,
    AmaliaAuthGuard,
    PoliciesGuard,
    SuperAdminAuthGuard,
    AuthenticatedContextFactory,
  ],
  exports: [IdentityProviderService, AmaliaAuthGuard, PoliciesGuard, SuperAdminAuthGuard, AuthenticatedContextFactory],
})
export class AuthCoreModule {
  public static forRoot() {
    return {
      module: AuthCoreModule,
      imports: [
        TypeOrmModule.forFeature([MasterSetting, User]),
        PassportModule.register({ defaultStrategy: 'jwt' }),
        AdminScopesAuthModule,
      ],
      providers: [ImpersonateUserUseCase, UserAuthenticationRepository, JwtStrategy],
      exports: [],
    };
  }
}