From 89ffab9f41e37f7189a45c553fa3a2390e7d3e29 Mon Sep 17 00:00:00 2001 From: evilimkova <evilimkova@onpointserv.com> Date: Tue, 4 Apr 2023 16:32:45 +0200 Subject: [PATCH] findCertificateByUserIdAndCourseId --- .../modulecertificate/service/CertificateController.java | 8 ++++---- .../modulecertificate/service/CertificateFacade.java | 7 +++++++ .../modulecertificate/service/CertificateRepository.java | 4 ++++ .../modulecertificate/service/CertificateService.java | 5 +++++ 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateController.java b/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateController.java index c31cd05a..1fedbb67 100644 --- a/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateController.java +++ b/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateController.java @@ -67,11 +67,11 @@ public class CertificateController { * @param userId ID of user to retrieve certificates for. * @param courseId ID of course to retrieve certificates for. * @return List of CertificateDto objects with previously generated certificates - * for specified User. + * for specified User and Course. */ - @GetMapping("/getId") - public String getId(@RequestParam String userId, @RequestParam String courseId) { - return "0"; + @GetMapping("/findForUserAndCourse") + public List<CertificateSimpleDto> findForUserAndCourse(@RequestParam Long userId, @RequestParam Long courseId) { + return certificateFacade.findByUserIdAndCourseId(userId, courseId); } /** diff --git a/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateFacade.java b/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateFacade.java index fe2084cc..0403330a 100644 --- a/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateFacade.java +++ b/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateFacade.java @@ -42,6 +42,13 @@ public class CertificateFacade { public List<CertificateSimpleDto> findByUserId(Long userId) { return certificateMapper.mapToList(certificateService.findByUserId(userId)); } + + @Cacheable(cacheNames = "certificates", key = "#userId") + @Transactional(readOnly = true) + public List<CertificateSimpleDto> findByUserIdAndCourseId(Long userId, Long courseId) { + return certificateMapper.mapToList(certificateService.findByUserIdAndCourseId(userId, courseId)); + } + //@Transactional(readOnly = true) //public Page<CertificateDto> findAll(Pageable pageable) { //return certificateMapper.mapToPageDto(certificateService.findAll(pageable)); diff --git a/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateRepository.java b/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateRepository.java index 14c6fbd7..832d2d22 100644 --- a/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateRepository.java +++ b/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateRepository.java @@ -13,5 +13,9 @@ public interface CertificateRepository extends JpaRepository<Certificate, Long> @Query("SELECT c FROM Certificate c WHERE c.userId = ?1") List<Certificate> findCertificateByUserId(Long userId); + + @Query("SELECT c FROM Certificate c WHERE c.userId = ?1 and c.courseId = ?2") + List<Certificate> findCertificateByUserIdAndCourseId(Long userId, Long courseId); + } diff --git a/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateService.java b/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateService.java index baf8828b..4725dcda 100644 --- a/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateService.java +++ b/application/module-certificate/src/main/java/org/fuseri/modulecertificate/service/CertificateService.java @@ -30,6 +30,11 @@ public class CertificateService { return certificateRepository.findCertificateByUserId(userId); } + @Transactional(readOnly = true) + public List<Certificate> findByUserIdAndCourseId(Long userId, Long courseId) { + return certificateRepository.findCertificateByUserIdAndCourseId(userId, courseId); + } + @Transactional(readOnly = true) public Certificate save(Certificate certificate) { return certificateRepository.save(certificate); -- GitLab