Skip to content

Commit f6c9de9

Browse files
committed
feat: shows new status when advancing order status
1 parent 6811cd8 commit f6c9de9

File tree

5 files changed

+26
-14
lines changed

5 files changed

+26
-14
lines changed

techchallenge/src/main/java/br/com/grupo63/techchallenge/adapter/in/controller/order/OrderController.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
import br.com.grupo63.techchallenge.adapter.in.controller.AbstractController;
44
import br.com.grupo63.techchallenge.adapter.in.controller.dto.DefaultResponseDTO;
5+
import br.com.grupo63.techchallenge.adapter.in.controller.order.dto.AdvanceOrderStatusResponseDTO;
56
import br.com.grupo63.techchallenge.adapter.in.controller.order.dto.CreateOrderRequestDTO;
67
import br.com.grupo63.techchallenge.core.application.usecase.dto.OrderDTO;
78
import br.com.grupo63.techchallenge.core.application.usecase.exception.NotFoundException;
89
import br.com.grupo63.techchallenge.core.application.usecase.exception.ValidationException;
910
import br.com.grupo63.techchallenge.core.application.usecase.order.IOrderUseCase;
11+
import br.com.grupo63.techchallenge.core.domain.model.order.OrderStatus;
1012
import io.swagger.v3.oas.annotations.Operation;
1113
import io.swagger.v3.oas.annotations.Parameter;
1214
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -38,10 +40,9 @@ public ResponseEntity<List<OrderDTO>> listUnfinishedOrders() {
3840
tags = "5ª chamada - fluxo principal",
3941
summary = "Avançar com o status do pedido.",
4042
description = "Após o pedido ser recebido, esse endpoint seria utilizado pelo funcionário para avançar o status do pedido")
41-
@PostMapping("/avancar-estado")
42-
@ResponseStatus(HttpStatus.OK)
43-
public void advanceOrderStatusFromOrderId(@Parameter(description = "Id do pedido.") @RequestParam Long orderId) throws NotFoundException, ValidationException {
44-
useCase.advanceStatus(orderId);
43+
@PostMapping("/avancar-status")
44+
public AdvanceOrderStatusResponseDTO advanceOrderStatusFromOrderId(@Parameter(description = "Id do pedido.") @RequestParam Long orderId) throws NotFoundException, ValidationException {
45+
return new AdvanceOrderStatusResponseDTO(useCase.advanceStatus(orderId));
4546
}
4647

4748
@Operation(
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package br.com.grupo63.techchallenge.adapter.in.controller.order.dto;
2+
3+
import br.com.grupo63.techchallenge.core.domain.model.order.OrderStatus;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Getter;
6+
import lombok.NoArgsConstructor;
7+
import lombok.Setter;
8+
9+
@Getter
10+
@Setter
11+
@NoArgsConstructor
12+
@AllArgsConstructor
13+
public class AdvanceOrderStatusResponseDTO {
14+
15+
OrderStatus newStatus;
16+
17+
}

techchallenge/src/main/java/br/com/grupo63/techchallenge/adapter/in/controller/order/dto/CreateOrderResponseDTO.java

Lines changed: 0 additions & 7 deletions
This file was deleted.

techchallenge/src/main/java/br/com/grupo63/techchallenge/core/application/usecase/order/IOrderUseCase.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44
import br.com.grupo63.techchallenge.core.application.usecase.dto.OrderDTO;
55
import br.com.grupo63.techchallenge.core.application.usecase.exception.NotFoundException;
66
import br.com.grupo63.techchallenge.core.application.usecase.exception.ValidationException;
7+
import br.com.grupo63.techchallenge.core.domain.model.order.OrderStatus;
78
import jakarta.validation.constraints.NotNull;
89

910
import java.util.List;
1011

1112
public interface IOrderUseCase extends ICRUDUseCase<OrderDTO> {
1213

13-
void advanceStatus(@NotNull Long orderId) throws NotFoundException, ValidationException;
14+
OrderStatus advanceStatus(@NotNull Long orderId) throws NotFoundException, ValidationException;
1415

1516
List<OrderDTO> listUnfinishedOrders();
1617

techchallenge/src/main/java/br/com/grupo63/techchallenge/core/application/usecase/order/OrderUseCase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ private void fillCurrentPrices(Order order) throws NotFoundException {
4242
}
4343

4444
@Override
45-
public void advanceStatus(@NotNull Long orderId) throws NotFoundException, ValidationException {
45+
public OrderStatus advanceStatus(@NotNull Long orderId) throws NotFoundException, ValidationException {
4646
Order order = orderRepository.findByIdAndDeletedFalse(orderId).orElseThrow(NotFoundException::new);
4747

4848
if (order.getPayment() == null || order.getPayment().getStatus() != PaymentStatus.PAID) {
@@ -55,7 +55,7 @@ public void advanceStatus(@NotNull Long orderId) throws NotFoundException, Valid
5555
order.setStatus(nextOrderMap.get(order.getStatus()));
5656
}
5757

58-
orderRepository.saveAndFlush(order);
58+
return orderRepository.saveAndFlush(order).getStatus();
5959
}
6060

6161
public List<OrderDTO> listUnfinishedOrders() {

0 commit comments

Comments
 (0)