add booking points to user table (#461)

This commit is contained in:
ZaydSkaff
2025-07-09 14:25:42 +03:00
committed by GitHub
parent 74d3620d0e
commit 09322c5b80
3 changed files with 31 additions and 20 deletions

View File

@ -1,5 +1,6 @@
import { PlatformType } from '@app/common/constants/platform-type.enum'; import { PlatformType } from '@app/common/constants/platform-type.enum';
import { RoleType } from '@app/common/constants/role.type.enum'; import { RoleType } from '@app/common/constants/role.type.enum';
import { UserEntity } from '@app/common/modules/user/entities';
import { import {
BadRequestException, BadRequestException,
Injectable, Injectable,
@ -32,7 +33,7 @@ export class AuthService {
pass: string, pass: string,
regionUuid?: string, regionUuid?: string,
platform?: PlatformType, platform?: PlatformType,
): Promise<any> { ): Promise<Omit<UserEntity, 'password'>> {
const user = await this.userRepository.findOne({ const user = await this.userRepository.findOne({
where: { where: {
email, email,
@ -70,8 +71,9 @@ export class AuthService {
} }
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
const { password, ...result } = user; // const { password, ...result } = user;
return result; delete user.password;
return user;
} }
async createSession(data): Promise<UserSessionEntity> { async createSession(data): Promise<UserSessionEntity> {
@ -114,6 +116,7 @@ export class AuthService {
hasAcceptedWebAgreement: user.hasAcceptedWebAgreement, hasAcceptedWebAgreement: user.hasAcceptedWebAgreement,
hasAcceptedAppAgreement: user.hasAcceptedAppAgreement, hasAcceptedAppAgreement: user.hasAcceptedAppAgreement,
project: user?.project, project: user?.project,
bookingPoints: user?.bookingPoints,
}; };
if (payload.googleCode) { if (payload.googleCode) {
const profile = await this.getProfile(payload.googleCode); const profile = await this.getProfile(payload.googleCode);

View File

@ -82,6 +82,12 @@ export class UserEntity extends AbstractEntity<UserDto> {
}) })
public isActive: boolean; public isActive: boolean;
@Column({
nullable: true,
type: Number,
})
public bookingPoints?: number;
@Column({ default: false }) @Column({ default: false })
hasAcceptedWebAgreement: boolean; hasAcceptedWebAgreement: boolean;

View File

@ -1,25 +1,25 @@
import { UserRepository } from '../../../libs/common/src/modules/user/repositories'; import { RoleType } from '@app/common/constants/role.type.enum';
import { differenceInSeconds } from '@app/common/helper/differenceInSeconds';
import { import {
BadRequestException, BadRequestException,
ForbiddenException, ForbiddenException,
Injectable, Injectable,
} from '@nestjs/common'; } from '@nestjs/common';
import { UserSignUpDto } from '../dtos/user-auth.dto';
import { HelperHashService } from '../../../libs/common/src/helper/services';
import { UserLoginDto } from '../dtos/user-login.dto';
import { AuthService } from '../../../libs/common/src/auth/services/auth.service';
import { UserSessionRepository } from '../../../libs/common/src/modules/session/repositories/session.repository';
import { UserOtpRepository } from '../../../libs/common/src/modules/user/repositories/user.repository';
import { ForgetPasswordDto, UserOtpDto, VerifyOtpDto } from '../dtos';
import { EmailService } from '../../../libs/common/src/util/email.service';
import { OtpType } from '../../../libs/common/src/constants/otp-type.enum';
import { UserEntity } from '../../../libs/common/src/modules/user/entities/user.entity';
import * as argon2 from 'argon2';
import { differenceInSeconds } from '@app/common/helper/differenceInSeconds';
import { LessThan, MoreThan } from 'typeorm';
import { ConfigService } from '@nestjs/config'; import { ConfigService } from '@nestjs/config';
import * as argon2 from 'argon2';
import { RoleService } from 'src/role/services'; import { RoleService } from 'src/role/services';
import { RoleType } from '@app/common/constants/role.type.enum'; import { LessThan, MoreThan } from 'typeorm';
import { AuthService } from '../../../libs/common/src/auth/services/auth.service';
import { OtpType } from '../../../libs/common/src/constants/otp-type.enum';
import { HelperHashService } from '../../../libs/common/src/helper/services';
import { UserSessionRepository } from '../../../libs/common/src/modules/session/repositories/session.repository';
import { UserEntity } from '../../../libs/common/src/modules/user/entities/user.entity';
import { UserRepository } from '../../../libs/common/src/modules/user/repositories';
import { UserOtpRepository } from '../../../libs/common/src/modules/user/repositories/user.repository';
import { EmailService } from '../../../libs/common/src/util/email.service';
import { ForgetPasswordDto, UserOtpDto, VerifyOtpDto } from '../dtos';
import { UserSignUpDto } from '../dtos/user-auth.dto';
import { UserLoginDto } from '../dtos/user-login.dto';
@Injectable() @Injectable()
export class UserAuthService { export class UserAuthService {
@ -108,7 +108,7 @@ export class UserAuthService {
async userLogin(data: UserLoginDto) { async userLogin(data: UserLoginDto) {
try { try {
let user; let user: Omit<UserEntity, 'password'>;
if (data.googleCode) { if (data.googleCode) {
const googleUserData = await this.authService.login({ const googleUserData = await this.authService.login({
googleCode: data.googleCode, googleCode: data.googleCode,
@ -145,7 +145,7 @@ export class UserAuthService {
} }
const session = await Promise.all([ const session = await Promise.all([
await this.sessionRepository.update( await this.sessionRepository.update(
{ userId: user.id }, { userId: user?.['id'] },
{ {
isLoggedOut: true, isLoggedOut: true,
}, },
@ -166,6 +166,7 @@ export class UserAuthService {
hasAcceptedAppAgreement: user.hasAcceptedAppAgreement, hasAcceptedAppAgreement: user.hasAcceptedAppAgreement,
project: user.project, project: user.project,
sessionId: session[1].uuid, sessionId: session[1].uuid,
bookingPoints: user.bookingPoints,
}); });
return res; return res;
} catch (error) { } catch (error) {
@ -347,6 +348,7 @@ export class UserAuthService {
userId: user.uuid, userId: user.uuid,
uuid: user.uuid, uuid: user.uuid,
type, type,
bookingPoints: user.bookingPoints,
sessionId, sessionId,
}); });
await this.authService.updateRefreshToken(user.uuid, tokens.refreshToken); await this.authService.updateRefreshToken(user.uuid, tokens.refreshToken);