42 lines
1.6 KiB
TypeScript
42 lines
1.6 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
import { UsersController } from '../controllers/users.controller';
|
|
|
|
// Import domain ports
|
|
import { USER_REPOSITORY } from '@domain/ports/out/user.repository';
|
|
import { TypeOrmUserRepository } from '../../infrastructure/persistence/typeorm/repositories/typeorm-user.repository';
|
|
import { UserOrmEntity } from '../../infrastructure/persistence/typeorm/entities/user.orm-entity';
|
|
import { SubscriptionsModule } from '../subscriptions/subscriptions.module';
|
|
import { FeatureFlagGuard } from '../guards/feature-flag.guard';
|
|
import { GDPRModule } from '../gdpr/gdpr.module';
|
|
import { EmailModule } from '../../infrastructure/email/email.module';
|
|
import { ORGANIZATION_REPOSITORY } from '@domain/ports/out/organization.repository';
|
|
import { OrganizationOrmEntity } from '../../infrastructure/persistence/typeorm/entities/organization.orm-entity';
|
|
import { TypeOrmOrganizationRepository } from '../../infrastructure/persistence/typeorm/repositories/typeorm-organization.repository';
|
|
|
|
@Module({
|
|
imports: [
|
|
TypeOrmModule.forFeature([UserOrmEntity, OrganizationOrmEntity]),
|
|
SubscriptionsModule,
|
|
GDPRModule,
|
|
// Email d'accès envoyé au compte créé par un administrateur
|
|
EmailModule,
|
|
],
|
|
controllers: [UsersController],
|
|
providers: [
|
|
FeatureFlagGuard,
|
|
{
|
|
provide: USER_REPOSITORY,
|
|
useClass: TypeOrmUserRepository,
|
|
},
|
|
{
|
|
provide: ORGANIZATION_REPOSITORY,
|
|
useClass: TypeOrmOrganizationRepository,
|
|
},
|
|
],
|
|
exports: [
|
|
USER_REPOSITORY, // optional, export if other modules need it
|
|
],
|
|
})
|
|
export class UsersModule {}
|