From 7a5a6feba0a3c1ba4728b91badd8de9c09846210 Mon Sep 17 00:00:00 2001 From: omar mohammed Date: Mon, 19 May 2025 18:15:32 +0300 Subject: [PATCH 1/6] remove create courier endpoint --- .../courier/controllers/CourierController.java | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/main/java/com/podzilla/courier/controllers/CourierController.java b/src/main/java/com/podzilla/courier/controllers/CourierController.java index 5a15093..816f7e0 100644 --- a/src/main/java/com/podzilla/courier/controllers/CourierController.java +++ b/src/main/java/com/podzilla/courier/controllers/CourierController.java @@ -1,7 +1,6 @@ package com.podzilla.courier.controllers; import com.podzilla.courier.dtos.couriers.CourierResponseDto; -import com.podzilla.courier.dtos.couriers.CreateCourierRequestDto; import com.podzilla.courier.dtos.couriers.UpdateCourierRequestDto; import com.podzilla.courier.services.courier.CourierService; import io.swagger.v3.oas.annotations.Operation; @@ -12,7 +11,6 @@ import org.slf4j.LoggerFactory; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -58,19 +56,6 @@ public ResponseEntity getCourierById( .orElse(ResponseEntity.notFound().build()); } - @PostMapping - @Operation(summary = "Create a new courier", - description = "Adds a new courier to the system.") - @ApiResponse(responseCode = "200", - description = "Courier successfully created") - public ResponseEntity createCourier( - @RequestBody(description = "Details of the courier to create") - @org.springframework.web.bind.annotation.RequestBody - final CreateCourierRequestDto courier) { - LOGGER.info("Received request to add courier"); - return ResponseEntity.ok(courierService.createCourier(courier)); - } - @PutMapping("/{id}") @Operation(summary = "Update a courier", description = "Updates details of an existing courier.") @@ -82,8 +67,7 @@ public ResponseEntity updateCourier( @Parameter(description = "ID of the courier to update") @PathVariable final String id, @RequestBody(description = "Updated courier details") - @org.springframework.web.bind.annotation.RequestBody - final UpdateCourierRequestDto courier) { + @org.springframework.web.bind.annotation.RequestBody final UpdateCourierRequestDto courier) { LOGGER.info("Received request to update courier with id {}", id); return courierService.updateCourier(id, courier) .map(ResponseEntity::ok) From 0b0e6a23255a4efcec537cb60bf360496553b053 Mon Sep 17 00:00:00 2001 From: omar mohammed Date: Mon, 19 May 2025 18:15:50 +0300 Subject: [PATCH 2/6] fix hot nug --- .../courier/services/delivery_task/DeliveryTaskService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/podzilla/courier/services/delivery_task/DeliveryTaskService.java b/src/main/java/com/podzilla/courier/services/delivery_task/DeliveryTaskService.java index 5e3dacd..4dc9c77 100644 --- a/src/main/java/com/podzilla/courier/services/delivery_task/DeliveryTaskService.java +++ b/src/main/java/com/podzilla/courier/services/delivery_task/DeliveryTaskService.java @@ -160,7 +160,7 @@ public DeliveryTaskResponseDto updateDeliveryTaskLocation(final String orderId, Optional updatedDeliveryTask = deliveryTaskRepository.findByOrderId(orderId).stream().findFirst(); if (updatedDeliveryTask.isPresent()) { DeliveryTask deliveryTask = updatedDeliveryTask.get(); - deliveryTask.setCourierLongitude(latitude); + deliveryTask.setCourierLatitude(latitude); deliveryTask.setCourierLongitude(longitude); deliveryTaskRepository.save(deliveryTask); LOGGER.debug("Location updated for delivery task with order id: {}", orderId); From 50f4d3ac5805b58a6f63f6fd4015d39a46e2b354 Mon Sep 17 00:00:00 2001 From: omar mohammed Date: Mon, 19 May 2025 18:16:22 +0300 Subject: [PATCH 3/6] update create courier dto --- .../courier/dtos/couriers/CreateCourierRequestDto.java | 2 ++ .../java/com/podzilla/courier/mappers/CourierMapper.java | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/podzilla/courier/dtos/couriers/CreateCourierRequestDto.java b/src/main/java/com/podzilla/courier/dtos/couriers/CreateCourierRequestDto.java index 0a5fc54..f56dfac 100644 --- a/src/main/java/com/podzilla/courier/dtos/couriers/CreateCourierRequestDto.java +++ b/src/main/java/com/podzilla/courier/dtos/couriers/CreateCourierRequestDto.java @@ -7,6 +7,8 @@ @Getter @AllArgsConstructor public class CreateCourierRequestDto { + @NotNull(message = "Courier ID is required") + private String courierId; @NotNull(message = "Name is required") private String name; diff --git a/src/main/java/com/podzilla/courier/mappers/CourierMapper.java b/src/main/java/com/podzilla/courier/mappers/CourierMapper.java index 3981f6b..1f8c095 100644 --- a/src/main/java/com/podzilla/courier/mappers/CourierMapper.java +++ b/src/main/java/com/podzilla/courier/mappers/CourierMapper.java @@ -2,19 +2,19 @@ import com.podzilla.courier.dtos.couriers.CourierResponseDto; import com.podzilla.courier.dtos.couriers.CreateCourierRequestDto; -import com.podzilla.courier.dtos.couriers.UpdateCourierRequestDto; import com.podzilla.courier.models.Courier; public class CourierMapper { - public static Courier toEntity(CreateCourierRequestDto dto) { + public static Courier toEntity(final CreateCourierRequestDto dto) { Courier courier = new Courier(); courier.setName(dto.getName()); courier.setMobileNo(dto.getMobileNo()); + courier.setId(dto.getCourierId()); return courier; } - public static CourierResponseDto toCreateResponseDto(Courier courier) { + public static CourierResponseDto toCreateResponseDto(final Courier courier) { return new CourierResponseDto(courier.getId(), courier.getName(), courier.getMobileNo(), courier.getStatus()); } } From 5eb9d741a140af77b379bd699103293c52587265 Mon Sep 17 00:00:00 2001 From: omar mohammed Date: Mon, 19 May 2025 18:16:44 +0300 Subject: [PATCH 4/6] add courier registered event consumer --- .../CourierRegisteredEventConsumer.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/main/java/com/podzilla/courier/events/CourierRegisteredEventConsumer.java diff --git a/src/main/java/com/podzilla/courier/events/CourierRegisteredEventConsumer.java b/src/main/java/com/podzilla/courier/events/CourierRegisteredEventConsumer.java new file mode 100644 index 0000000..8181de3 --- /dev/null +++ b/src/main/java/com/podzilla/courier/events/CourierRegisteredEventConsumer.java @@ -0,0 +1,31 @@ +package com.podzilla.courier.events; + +import com.podzilla.courier.dtos.couriers.CreateCourierRequestDto; +import com.podzilla.courier.services.courier.CourierService; +import com.podzilla.mq.EventsConstants; +import com.podzilla.mq.events.BaseEvent; +import com.podzilla.mq.events.CourierRegisteredEvent; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +@Component +public class CourierRegisteredEventConsumer { + private final CourierService courierService; + + public CourierRegisteredEventConsumer(final CourierService courierService) { + this.courierService = courierService; + } + + @RabbitListener(queues = EventsConstants.COURIER_USER_EVENT_QUEUE) + public void consumeCourierRegisteredEvent(final BaseEvent event) { + if (event instanceof CourierRegisteredEvent courierRegistered) { + CourierRegisteredEvent courierRegisteredEvent = (CourierRegisteredEvent) event; + CreateCourierRequestDto courier = new CreateCourierRequestDto( + courierRegisteredEvent.getCourierId(), + courierRegisteredEvent.getName(), + courierRegisteredEvent.getMobileNo() + ); + courierService.createCourier(courier); + } + } +} From 9d3ca43a920c4caa1b0edf7a72da2bb7f99d70ee Mon Sep 17 00:00:00 2001 From: omar mohammed Date: Mon, 19 May 2025 18:22:12 +0300 Subject: [PATCH 5/6] remove create courier test --- .../courier/CourierApplicationTests.java | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/test/java/com/podzilla/courier/CourierApplicationTests.java b/src/test/java/com/podzilla/courier/CourierApplicationTests.java index e7df220..5d3e72b 100644 --- a/src/test/java/com/podzilla/courier/CourierApplicationTests.java +++ b/src/test/java/com/podzilla/courier/CourierApplicationTests.java @@ -83,23 +83,6 @@ void getCourierByIdNotFound() throws Exception { .andExpect(status().isNotFound()); } - @Test - @DisplayName("POST /couriers → 200 OK with created courier") - void createCourier() throws Exception { - CreateCourierRequestDto req = new CreateCourierRequestDto("Daisy", "0222333444"); - CourierResponseDto resp = new CourierResponseDto("100", "Daisy", "0222333444", CourierStatus.PICKED_UP); - - Mockito.when(courierService.createCourier(Mockito.any(CreateCourierRequestDto.class))).thenReturn(resp); - - mockMvc.perform(post("/couriers") - .contentType(MediaType.APPLICATION_JSON) - .content(objectMapper.writeValueAsString(req)) - ) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.id", is("100"))) - .andExpect(jsonPath("$.status", is("PICKED_UP"))); - } - @Test @DisplayName("PUT /couriers/{id} → 200 OK when update succeeds") void updateCourierFound() throws Exception { From b6ea971b0977042ccde693078971233e3bd86ff2 Mon Sep 17 00:00:00 2001 From: omar mohammed Date: Mon, 19 May 2025 18:46:51 +0300 Subject: [PATCH 6/6] fix style --- .../podzilla/courier/events/CourierRegisteredEventConsumer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/podzilla/courier/events/CourierRegisteredEventConsumer.java b/src/main/java/com/podzilla/courier/events/CourierRegisteredEventConsumer.java index 8181de3..e2b91ac 100644 --- a/src/main/java/com/podzilla/courier/events/CourierRegisteredEventConsumer.java +++ b/src/main/java/com/podzilla/courier/events/CourierRegisteredEventConsumer.java @@ -18,7 +18,7 @@ public CourierRegisteredEventConsumer(final CourierService courierService) { @RabbitListener(queues = EventsConstants.COURIER_USER_EVENT_QUEUE) public void consumeCourierRegisteredEvent(final BaseEvent event) { - if (event instanceof CourierRegisteredEvent courierRegistered) { + if (event instanceof CourierRegisteredEvent) { CourierRegisteredEvent courierRegisteredEvent = (CourierRegisteredEvent) event; CreateCourierRequestDto courier = new CreateCourierRequestDto( courierRegisteredEvent.getCourierId(),