chore: complete payment service but not tested
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import { BadRequestException, Injectable } from "@nestjs/common";
|
||||
import slugify from "slugify";
|
||||
import { DataSource, In, Not } from "typeorm";
|
||||
import { In, Not, QueryRunner } from "typeorm";
|
||||
|
||||
// import { roles } from "../../../../database/seeders/role.seeder";
|
||||
import { CommonMessage, UserMessage } from "../../../common/enums/message.enum";
|
||||
import { CompleteRegistrationDto } from "../../auth/DTO/complete-register.dto";
|
||||
import { UserSettingsService } from "../../settings/providers/user-settings.service";
|
||||
import { WalletsService } from "../../wallets/providers/wallets.service";
|
||||
import { CheckValidityDTO } from "../DTO/check-validity.dto";
|
||||
import { UpdateProfileDto } from "../DTO/update-profile.dto";
|
||||
import { CreateUserGroupDto } from "../DTO/user-group.dto";
|
||||
@@ -33,10 +33,10 @@ export class UsersService {
|
||||
},
|
||||
};
|
||||
constructor(
|
||||
private userRepository: UserRepository,
|
||||
private userGroupRepository: UserGroupRepository,
|
||||
private readonly userRepository: UserRepository,
|
||||
private readonly userGroupRepository: UserGroupRepository,
|
||||
private readonly userSettingsService: UserSettingsService,
|
||||
private readonly dataSource: DataSource,
|
||||
private readonly walletsService: WalletsService,
|
||||
) {}
|
||||
|
||||
/************************************************************ */
|
||||
@@ -91,37 +91,22 @@ export class UsersService {
|
||||
|
||||
/************************************************************ */
|
||||
|
||||
async createUser(registerDto: CompleteRegistrationDto, hashedPassword: string): Promise<User> {
|
||||
const queryRunner = this.dataSource.createQueryRunner();
|
||||
async createUser(registerDto: CompleteRegistrationDto, hashedPassword: string, queryRunner: QueryRunner): Promise<User> {
|
||||
const role = await queryRunner.manager.findOne(Role, { where: { name: RoleEnum.USER } });
|
||||
if (!role) throw new BadRequestException(UserMessage.ROLE_NOT_FOUND);
|
||||
|
||||
await queryRunner.connect();
|
||||
await queryRunner.startTransaction();
|
||||
const user = queryRunner.manager.create(User, {
|
||||
...registerDto,
|
||||
password: hashedPassword,
|
||||
role,
|
||||
});
|
||||
await queryRunner.manager.save(user);
|
||||
|
||||
try {
|
||||
const role = await queryRunner.manager.findOne(Role, {
|
||||
where: { name: RoleEnum.USER },
|
||||
});
|
||||
if (!role) throw new BadRequestException(UserMessage.ROLE_NOT_FOUND);
|
||||
await this.userSettingsService.createUserSettings(user.id, queryRunner);
|
||||
|
||||
const user = queryRunner.manager.create(User, {
|
||||
...registerDto,
|
||||
password: hashedPassword,
|
||||
role,
|
||||
});
|
||||
await queryRunner.manager.save(user);
|
||||
|
||||
await this.userSettingsService.createUserSettings(user.id, queryRunner);
|
||||
|
||||
await queryRunner.commitTransaction();
|
||||
|
||||
return user;
|
||||
} catch (error) {
|
||||
await queryRunner.rollbackTransaction();
|
||||
throw error;
|
||||
} finally {
|
||||
await queryRunner.release();
|
||||
}
|
||||
await this.walletsService.createUserWallet(user.id, queryRunner);
|
||||
|
||||
return user;
|
||||
// const role = await this.roleRepository.findOneBy({ name: RoleEnum.USER });
|
||||
// if (!role) throw new BadRequestException(UserMessage.ROLE_NOT_FOUND);
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Module, OnApplicationBootstrap } from "@nestjs/common";
|
||||
import { Module } from "@nestjs/common";
|
||||
import { TypeOrmModule } from "@nestjs/typeorm";
|
||||
|
||||
import { Role } from "./entities/role.entity";
|
||||
@@ -12,16 +12,12 @@ import { UsersController } from "./users.controller";
|
||||
import { UserSetting } from "../settings/entities/user-setting.entity";
|
||||
import { UserSettingsService } from "../settings/providers/user-settings.service";
|
||||
import { UserSettingsRepository } from "../settings/repositories/user-settings.repository";
|
||||
import { WalletsModule } from "../wallets/wallets.module";
|
||||
|
||||
@Module({
|
||||
imports: [TypeOrmModule.forFeature([User, Role, UserGroup, UserSetting])],
|
||||
imports: [TypeOrmModule.forFeature([User, Role, UserGroup, UserSetting]), WalletsModule],
|
||||
providers: [UsersService, UserRepository, RoleRepository, UserGroupRepository, UserSettingsRepository, UserSettingsService],
|
||||
controllers: [UsersController],
|
||||
exports: [UsersService],
|
||||
})
|
||||
export class UsersModule implements OnApplicationBootstrap {
|
||||
// constructor(private userService: UsersService) {}
|
||||
async onApplicationBootstrap() {
|
||||
// await this.userService.roleSeeder();
|
||||
}
|
||||
}
|
||||
export class UsersModule {}
|
||||
|
||||
Reference in New Issue
Block a user