From d3d712e20c5e8fb991c63b827b79fc3adc03103d 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/rest/CreditPackageController.java | 12 ++++++++++++ .../enterprise/services/CreditPackageService.java | 5 +++++ .../services/CreditPackageServiceImpl.java | 7 +++++++ 3 files changed, 24 insertions(+) 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); + } }