dependencies Legend  Declarations  Module  Bootstrap  Providers  Exports cluster_UsersModule cluster_UsersModule_providers cluster_UsersModule_exports RolesService RolesService UsersService UsersService UsersModule UsersModule UsersModule->RolesService UsersModule->UsersService AuthService AuthService AuthService->UsersModule CaslAbilityFactory CaslAbilityFactory CaslAbilityFactory->UsersModule RolesService RolesService RolesService->UsersModule UserIdentitiesService UserIdentitiesService UserIdentitiesService->UsersModule UsersService UsersService UsersService->UsersModule
import { Module } from "@nestjs/common";
import { MongooseModule } from "@nestjs/mongoose";
import { User, UserSchema } from "./schemas/user.schema";
import { UsersService } from "./users.service";
import { UsersController } from "./users.controller";
import {
  UserIdentity,
  UserIdentitySchema,
} from "./schemas/user-identity.schema";
import { RolesService } from "./roles.service";
import { Role, RoleSchema } from "./schemas/role.schema";
import { UserRole, UserRoleSchema } from "./schemas/user-role.schema";
import { CaslAbilityFactory } from "src/casl/casl-ability.factory";
import { JwtModule } from "@nestjs/jwt";
import { ConfigModule, ConfigService } from "@nestjs/config";
import {
  UserSettings,
  UserSettingsSchema,
} from "./schemas/user-settings.schema";
import { UserIdentitiesController } from "./user-identities.controller";
import { UserIdentitiesService } from "./user-identities.service";
import { AuthService } from "src/auth/auth.service";
import { accessGroupServiceFactory } from "src/auth/access-group-provider/access-group-service-factory";

@Module({
  imports: [
    JwtModule.registerAsync({
      imports: [ConfigModule],
      useFactory: async (configService: ConfigService) => ({
        secret: configService.get<string>("jwt.secret"),
        signOptions: { expiresIn: configService.get<number>("jwt.expiresIn") },
      }),
      inject: [ConfigService],
    }),
    ConfigModule,
    MongooseModule.forFeature([
      {
        name: UserIdentity.name,
        schema: UserIdentitySchema,
      },
      {
        name: Role.name,
        schema: RoleSchema,
      },
      {
        name: User.name,
        schema: UserSchema,
      },
      {
        name: UserRole.name,
        schema: UserRoleSchema,
      },
      {
        name: UserSettings.name,
        schema: UserSettingsSchema,
      },
    ]),
  ],
  providers: [
    AuthService,
    CaslAbilityFactory,
    UsersService,
    UserIdentitiesService,
    RolesService,
    accessGroupServiceFactory,
  ],
  exports: [UsersService, RolesService],
  controllers: [UsersController, UserIdentitiesController],
})
export class UsersModule {}

results matching ""

    No results matching ""