@Injectable()
export class UserAccountService {
constructor(
@InjectRepository(UserAccount)
private readonly userAccountRepository: UserAccountRepository,
private configService: ConfigService,
private userEmailVerificationService: UserEmailVerificationService,
) {}
This is my service, it has a lot of methods, that works well:
async findOneByEmail(email: string) {
return await this.userAccountRepository.findOneUserAccountByEmail(email);
}
That works well inside the UserAccountModule:
@Module({
controllers: [UserAccountController, UserEmailVerificationController],
imports: [
TypeOrmModule.forFeature([
UserAccount,
UserPermissionsDescriptors,
AuthorizationPermission,
UserAccountEmailVerification,
]),
NotificationModule,
AuthorizationModule,
],
providers: [
UserEmailVerificationService,
NotificationService,
AuthorizationService,
{
provide: getRepositoryToken(UserAccount),
inject: [getDataSourceToken()],
useFactory(datasource: DataSource) {
return datasource
.getRepository(UserAccount)
.extend(UserAccountRepositoryImpl);
},
},
{
provide: getRepositoryToken(UserAccountEmailVerification),
inject: [getDataSourceToken()],
useFactory(datasource: DataSource) {
return datasource
.getRepository(UserAccountEmailVerification)
.extend(UserAccountEmailVerificationRepositoryImpl);
},
},
UserAccountService,
],
exports: [UserAccountService, UserEmailVerificationService],
})
export class UserAccountModule {}