fin avis je crois

This commit is contained in:
2026-04-25 15:52:38 +02:00
parent 785900645f
commit 13b0c92161
2 changed files with 67 additions and 0 deletions
@@ -0,0 +1,27 @@
package fr.iut_fbleau.but3.dev62.mylibrary.avis.converter;
import fr.iut_fbleau.but3.dev62.mylibrary.avis.AvisDTO;
import fr.iut_fbleau.but3.dev62.mylibrary.avis.AvisInfo;
import fr.iut_fbleau.but3.dev62.mylibrary.avis.entity.Avis;
public final class AvisConverter {
private AvisConverter() {
}
public static Avis toDomain(AvisInfo avisInfo) {
return Avis.builder()
.clientId(avisInfo.clientId())
.livreId(avisInfo.livreId())
.note(avisInfo.note())
.commentaire(avisInfo.commentaire())
.dateAchat(avisInfo.dateAchat())
.build();
}
public static AvisDTO toDTO(Avis avis) {
return AvisDTO.builder()
.avisId(avis.getId())
.build();
}
}
@@ -0,0 +1,40 @@
package fr.iut_fbleau.but3.dev62.mylibrary.avis.usecase;
import fr.iut_fbleau.but3.dev62.mylibrary.avis.AvisDTO;
import fr.iut_fbleau.but3.dev62.mylibrary.avis.AvisInfo;
import fr.iut_fbleau.but3.dev62.mylibrary.avis.converter.AvisConverter;
import fr.iut_fbleau.but3.dev62.mylibrary.avis.entity.Avis;
import fr.iut_fbleau.but3.dev62.mylibrary.avis.exception.NotValidAvisException;
import fr.iut_fbleau.but3.dev62.mylibrary.avis.repository.AvisRepository;
import fr.iut_fbleau.but3.dev62.mylibrary.avis.validator.AvisValidator;
import fr.iut_fbleau.but3.dev62.mylibrary.customer.exception.CustomerNotFoundException;
import fr.iut_fbleau.but3.dev62.mylibrary.customer.repository.CustomerRepository;
import java.util.Optional;
import java.util.UUID;
public final class AvisUseCase {
private final AvisRepository avisRepository;
private final CustomerRepository customerRepository;
public AvisUseCase(AvisRepository avisRepository, CustomerRepository customerRepository) {
this.avisRepository = avisRepository;
this.customerRepository = customerRepository;
}
public AvisDTO gererAvis(AvisInfo avisInfo) throws NotValidAvisException, CustomerNotFoundException {
AvisValidator.validate(avisInfo);
customerRepository.findById(avisInfo.clientId())
.orElseThrow(() -> new CustomerNotFoundException(avisInfo.clientId()));
Avis avis = AvisConverter.toDomain(avisInfo);
Avis savedAvis = avisRepository.save(avis);
return AvisConverter.toDTO(savedAvis);
}
public Optional<AvisDTO> findAvisById(UUID uuid) {
return avisRepository.findById(uuid).map(AvisConverter::toDTO);
}
}