forked from pierront/mylibrary-template
fin avis je crois
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user