From d377e37dbcd4f960dbeb408a258db8a063be11fb Mon Sep 17 00:00:00 2001 From: sdraris Date: Tue, 9 Sep 2025 15:22:27 +0200 Subject: [PATCH] user service edited without stupid base service --- src/routes/user/user.service.ts | 52 +++++++++++++++++---------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/src/routes/user/user.service.ts b/src/routes/user/user.service.ts index cc5241f..94d2b96 100644 --- a/src/routes/user/user.service.ts +++ b/src/routes/user/user.service.ts @@ -3,20 +3,17 @@ import { InjectRepository } from "@nestjs/typeorm"; import { RoleType, Users } from "src/entities/users.entity"; import { Repository } from "typeorm"; import { CreateUserDto } from "./dto/create_user.dto"; -import * as bcrypt from 'bcrypt'; import { UpdateUserDto } from "./dto/update_user.dto"; -import { BaseService } from "src/common/base.service"; +import * as bcrypt from 'bcrypt'; @Injectable() -export class UserService extends BaseService { +export class UserService { constructor( @InjectRepository(Users) private readonly usersRepository: Repository - ) { - super(usersRepository); - } + ) { } - //Creation utilisateur + // Création utilisateur async createUser(dto: CreateUserDto, currentUser?: Users): Promise { // Sécuriser le rôle if (!currentUser || currentUser.role !== RoleType.SUPER_ADMIN) { @@ -26,11 +23,9 @@ export class UserService extends BaseService { // Nettoyage / validation consentement photo let consentDate: Date | undefined; if (dto.consent_photo && dto.consent_photo_at) { - if (dto.consent_photo_at) { - const parsed = new Date(dto.consent_photo_at); - if (!isNaN(parsed.getTime())) { - consentDate = parsed; - } + const parsed = new Date(dto.consent_photo_at); + if (!isNaN(parsed.getTime())) { + consentDate = parsed; } } @@ -57,12 +52,19 @@ export class UserService extends BaseService { const saved = await this.usersRepository.save(entity); return this.findOne(saved.id); } - - async findOneBy(where: Partial) { - return this.usersRepository.findOne({ where }) + + //Trouver tous les utilisateurs + async findAll(): Promise { + return this.usersRepository.find(); } - //Trouver utilisateur par ID + + // Trouver utilisateur par condition + async findOneBy(where: Partial): Promise { + return this.usersRepository.findOne({ where }); + } + + // Trouver utilisateur par ID async findOne(id: string): Promise { const user = await this.usersRepository.findOne({ where: { id } }); if (!user) { @@ -71,28 +73,28 @@ export class UserService extends BaseService { return user; } - //Trouver utilisateur par email + // Trouver utilisateur par email async findByEmailOrNull(email: string): Promise { - const user = await this.usersRepository.findOne({ where: { email } }); - return user; + return this.usersRepository.findOne({ where: { email } }); } - //Mettre a jour un utilisateur + // Mettre à jour un utilisateur async updateUser(id: string, dto: UpdateUserDto, currentUser: Users): Promise { const user = await this.findOne(id); - //Tant que pas super_admin interdir changement de role + // Interdire changement de rôle si pas super admin if (dto.role && currentUser.role !== RoleType.SUPER_ADMIN) { - throw new ForbiddenException('Acces reserve aux super admins'); + throw new ForbiddenException('Accès réservé aux super admins'); } - //Gestion de changement mot de passe + // Gestion du mot de passe if (dto.password) { const salt = await bcrypt.genSalt(); user.password_hash = await bcrypt.hash(dto.password, salt); delete (dto as any).password; } + // Conversion de la date de consentement if (dto.consent_photo_at !== undefined) { user.consent_photo_at = dto.consent_photo_at ? new Date(dto.consent_photo_at) @@ -104,11 +106,11 @@ export class UserService extends BaseService { return this.usersRepository.save(user); } - //Supprimer un utilisateur + // Supprimer un utilisateur async remove(id: string): Promise { const result = await this.usersRepository.delete(id); if (result.affected === 0) { throw new NotFoundException('Utilisateur introuvable'); } } -} \ No newline at end of file +}