From 9cb00b4689aba8bc3e92673783be8d5019b217a6 Mon Sep 17 00:00:00 2001 From: Tran Gia Bao Date: Sun, 16 Feb 2025 20:57:07 +0700 Subject: [PATCH] feature: Fetch credit package by ID --- .../enterprise/entities/CreditPackageEntity.java | 2 -- .../enterprise/rest/CreditPackageController.java | 12 ++++++++++++ .../enterprise/services/CreditPackageService.java | 5 +++++ .../services/CreditPackageServiceImpl.java | 7 +++++++ 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/sep490-enterprise/src/main/java/enterprise/entities/CreditPackageEntity.java b/sep490-enterprise/src/main/java/enterprise/entities/CreditPackageEntity.java index 9a082667..90a57423 100644 --- a/sep490-enterprise/src/main/java/enterprise/entities/CreditPackageEntity.java +++ b/sep490-enterprise/src/main/java/enterprise/entities/CreditPackageEntity.java @@ -19,12 +19,10 @@ public class CreditPackageEntity extends AbstractAuditableEntity { @Column(name = "number_of_credits", nullable = false) @Min(0) - @NotNull private int numberOfCredits = 0; @Column(name = "price", nullable = false) @Min(0) - @NotNull private long price = 0; } diff --git a/sep490-enterprise/src/main/java/enterprise/rest/CreditPackageController.java b/sep490-enterprise/src/main/java/enterprise/rest/CreditPackageController.java index 6a4e3f6c..bb7309dd 100644 --- a/sep490-enterprise/src/main/java/enterprise/rest/CreditPackageController.java +++ b/sep490-enterprise/src/main/java/enterprise/rest/CreditPackageController.java @@ -6,11 +6,14 @@ import green_buildings.commons.api.security.UserRole; import jakarta.annotation.security.RolesAllowed; import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.UUID; @RestController @RequestMapping("/api/credit-package") @@ -29,4 +32,13 @@ public List findAll() { .toList(); } + @GetMapping("/{id}") + @RolesAllowed({UserRole.RoleNameConstant.SYSTEM_ADMIN, UserRole.RoleNameConstant.ENTERPRISE_OWNER}) + public ResponseEntity findById(@PathVariable UUID id) { + CreditPackageDTO creditPackageDTO = creditPackageService.findById(id) + .map(mapper::entityToDTO) + .orElseThrow(); + return ResponseEntity.ok(creditPackageDTO); + } + } diff --git a/sep490-enterprise/src/main/java/enterprise/services/CreditPackageService.java b/sep490-enterprise/src/main/java/enterprise/services/CreditPackageService.java index 35ab2777..bdf75e40 100644 --- a/sep490-enterprise/src/main/java/enterprise/services/CreditPackageService.java +++ b/sep490-enterprise/src/main/java/enterprise/services/CreditPackageService.java @@ -3,7 +3,12 @@ import enterprise.entities.CreditPackageEntity; import java.util.List; +import java.util.Optional; +import java.util.UUID; public interface CreditPackageService { + List findAll(); + + Optional findById(UUID id); } diff --git a/sep490-enterprise/src/main/java/enterprise/services/CreditPackageServiceImpl.java b/sep490-enterprise/src/main/java/enterprise/services/CreditPackageServiceImpl.java index 8262e771..a7603951 100644 --- a/sep490-enterprise/src/main/java/enterprise/services/CreditPackageServiceImpl.java +++ b/sep490-enterprise/src/main/java/enterprise/services/CreditPackageServiceImpl.java @@ -7,6 +7,8 @@ import org.springframework.stereotype.Service; import java.util.List; +import java.util.Optional; +import java.util.UUID; @Service @RequiredArgsConstructor @@ -19,4 +21,9 @@ public class CreditPackageServiceImpl implements CreditPackageService { public List findAll() { return creditPackageRepository.findAll(); } + + @Override + public Optional findById(UUID id) { + return creditPackageRepository.findById(id); + } }