diff --git a/pom.xml b/pom.xml index df316bc..9dc9700 100644 --- a/pom.xml +++ b/pom.xml @@ -50,7 +50,7 @@ com.github.Podzilla podzilla-utils-lib - 1.1.11 + v1.1.13 diff --git a/src/main/java/com/podzilla/cart/controller/PromoCodeController.java b/src/main/java/com/podzilla/cart/controller/PromoCodeController.java index 1ff1bab..969545e 100644 --- a/src/main/java/com/podzilla/cart/controller/PromoCodeController.java +++ b/src/main/java/com/podzilla/cart/controller/PromoCodeController.java @@ -1,5 +1,6 @@ package com.podzilla.cart.controller; +import com.podzilla.auth.annotations.AllowedRoles; import com.podzilla.cart.model.PromoCode; import com.podzilla.cart.service.PromoCodeService; import io.swagger.v3.oas.annotations.Operation; @@ -22,6 +23,7 @@ @RestController @RequestMapping("/admin/promocodes") +@AllowedRoles({"ROLE_ADMIN"}) @RequiredArgsConstructor @Tag(name = "PromoCode Admin", description = "Manage promotional codes (Requires Admin Role)") @Slf4j diff --git a/src/main/java/com/podzilla/cart/service/CartService.java b/src/main/java/com/podzilla/cart/service/CartService.java index a22a13a..84aa01f 100644 --- a/src/main/java/com/podzilla/cart/service/CartService.java +++ b/src/main/java/com/podzilla/cart/service/CartService.java @@ -294,7 +294,7 @@ public Cart checkoutCart(final String customerId, final ConfirmationType confirm + " Discount={}, Total={}, ConfirmationType={}", cart.getId(), cart.getSubTotal(), cart.getDiscountAmount(), cart.getTotalPrice(), confirmationType); - eventPublisher.publishEvent(EventsConstants.ORDER_PLACED, checkoutEvent); + eventPublisher.publishEvent(EventsConstants.CART_CHECKEDOUT, checkoutEvent); log.info("Checkout event published successfully for cartId: {}. Clearing cart.", cart.getId()); cart.getItems().clear(); diff --git a/src/test/java/service/CartServiceTest.java b/src/test/java/service/CartServiceTest.java index a31bd02..ff7d614 100644 --- a/src/test/java/service/CartServiceTest.java +++ b/src/test/java/service/CartServiceTest.java @@ -343,12 +343,12 @@ void checkoutCart_validCartWithPromo_publishesEventAndClearsCart() { PromoCode promo = createTestPromoCode("SAVE10", PromoCode.DiscountType.PERCENTAGE, new BigDecimal("10"), null, null, true); when(promoCodeService.getActivePromoCode("SAVE10")).thenReturn(Optional.of(promo)); - doNothing().when(eventPublisher).publishEvent(eq(EventsConstants.ORDER_PLACED), any(CartCheckedoutEvent.class)); + doNothing().when(eventPublisher).publishEvent(eq(EventsConstants.CART_CHECKEDOUT), any(CartCheckedoutEvent.class)); Cart result = cartService.checkoutCart(customerId, ConfirmationType.OTP, "", latitude, longitude, address); ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(CartCheckedoutEvent.class); - verify(eventPublisher).publishEvent(eq(EventsConstants.ORDER_PLACED), eventCaptor.capture()); + verify(eventPublisher).publishEvent(eq(EventsConstants.CART_CHECKEDOUT), eventCaptor.capture()); CartCheckedoutEvent publishedEvent = eventCaptor.getValue(); assertEquals(customerId, publishedEvent.getCustomerId()); @@ -377,7 +377,7 @@ void checkoutCart_withSignature_publishesEventWithSignature() { Cart result = cartService.checkoutCart(customerId, ConfirmationType.SIGNATURE, signature, latitude, longitude, address); ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(CartCheckedoutEvent.class); - verify(eventPublisher).publishEvent(eq(EventsConstants.ORDER_PLACED), eventCaptor.capture()); + verify(eventPublisher).publishEvent(eq(EventsConstants.CART_CHECKEDOUT), eventCaptor.capture()); CartCheckedoutEvent publishedEvent = eventCaptor.getValue(); assertEquals(ConfirmationType.SIGNATURE, publishedEvent.getConfirmationType()); @@ -393,7 +393,7 @@ void checkoutCart_signatureTypeWithoutSignature_throwsException() { assertEquals(HttpStatus.BAD_REQUEST, ex.getStatus()); assertEquals("Signature is required for SIGNATURE confirmation type", ex.getMessage()); -verify(eventPublisher, never()).publishEvent(eq(EventsConstants.ORDER_PLACED), any(CartCheckedoutEvent.class)); +verify(eventPublisher, never()).publishEvent(eq(EventsConstants.CART_CHECKEDOUT), any(CartCheckedoutEvent.class)); } @Test @@ -405,7 +405,7 @@ void checkoutCart_emptyCart_throwsGlobalHandlerException() { assertEquals(HttpStatus.BAD_REQUEST, ex.getStatus()); assertEquals("Cannot checkout an empty cart.", ex.getMessage()); -verify(eventPublisher, never()).publishEvent(eq(EventsConstants.ORDER_PLACED), any(CartCheckedoutEvent.class)); +verify(eventPublisher, never()).publishEvent(eq(EventsConstants.CART_CHECKEDOUT), any(CartCheckedoutEvent.class)); } @Test @@ -421,7 +421,7 @@ void checkoutCart_rabbitMqFails_throwsRuntimeExceptionAndCartNotCleared() { cart.setDiscountAmount(new BigDecimal(formattedBigZero)); doThrow(new RuntimeException("Event publish error")).when(eventPublisher) - .publishEvent(eq(EventsConstants.ORDER_PLACED), any(CartCheckedoutEvent.class)); + .publishEvent(eq(EventsConstants.CART_CHECKEDOUT), any(CartCheckedoutEvent.class)); RuntimeException ex = assertThrows(RuntimeException.class, () -> cartService.checkoutCart(customerId, ConfirmationType.QR_CODE, null, latitude, longitude, address));