chore: complete payment service but not tested

This commit is contained in:
mahyargdz
2025-02-04 09:15:22 +03:30
parent 31368610dd
commit 5d91afcc6e
22 changed files with 313 additions and 77 deletions
+17 -32
View File
@@ -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);