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