diff --git a/src/main/java/br/com/grupo63/serviceorder/adapter/OrderAdapter.java b/src/main/java/br/com/grupo63/serviceorder/adapter/OrderAdapter.java index 90ea5d4..2e8c0d7 100644 --- a/src/main/java/br/com/grupo63/serviceorder/adapter/OrderAdapter.java +++ b/src/main/java/br/com/grupo63/serviceorder/adapter/OrderAdapter.java @@ -11,7 +11,7 @@ public class OrderAdapter { - public static void fillEntity(CreateOrderRequestDTO dto, Long clientId, Order order) { + public static void fillEntity(CreateOrderRequestDTO dto, String clientId, Order order) { OrderControllerDTO orderDTO = new OrderControllerDTO(); orderDTO.setClientId(clientId); diff --git a/src/main/java/br/com/grupo63/serviceorder/api/controller/order/OrderAPIController.java b/src/main/java/br/com/grupo63/serviceorder/api/controller/order/OrderAPIController.java index 3e0866a..f5e4de6 100644 --- a/src/main/java/br/com/grupo63/serviceorder/api/controller/order/OrderAPIController.java +++ b/src/main/java/br/com/grupo63/serviceorder/api/controller/order/OrderAPIController.java @@ -35,7 +35,7 @@ public class OrderAPIController extends AbstractAPIController { public ResponseEntity create(@Valid @RequestBody CreateOrderRequestDTO createOrderRequestDTO, HttpServletRequest request) throws ValidationException, NotFoundException { return ResponseEntity.ok(controller - .create(Long.parseLong((String) request.getAttribute("clientId")), + .create((String) request.getAttribute("clientId"), createOrderRequestDTO)); } diff --git a/src/main/java/br/com/grupo63/serviceorder/controller/OrderController.java b/src/main/java/br/com/grupo63/serviceorder/controller/OrderController.java index 9806732..144a59c 100644 --- a/src/main/java/br/com/grupo63/serviceorder/controller/OrderController.java +++ b/src/main/java/br/com/grupo63/serviceorder/controller/OrderController.java @@ -19,7 +19,7 @@ public class OrderController { private final OrderUseCase orderUseCase; - public OrderControllerDTO create(Long clientId, CreateOrderRequestDTO dto) throws ValidationException, NotFoundException { + public OrderControllerDTO create(String clientId, CreateOrderRequestDTO dto) throws ValidationException, NotFoundException { Order entity = new Order(); OrderAdapter.fillEntity(dto, clientId, entity); entity = orderUseCase.create(entity, clientId); diff --git a/src/main/java/br/com/grupo63/serviceorder/controller/dto/OrderControllerDTO.java b/src/main/java/br/com/grupo63/serviceorder/controller/dto/OrderControllerDTO.java index e9b77a1..e7ac65e 100644 --- a/src/main/java/br/com/grupo63/serviceorder/controller/dto/OrderControllerDTO.java +++ b/src/main/java/br/com/grupo63/serviceorder/controller/dto/OrderControllerDTO.java @@ -16,7 +16,7 @@ public class OrderControllerDTO extends AbstractControllerDTO { private Double totalPrice; - private Long clientId; + private String clientId; private List items = new ArrayList<>(); } diff --git a/src/main/java/br/com/grupo63/serviceorder/entity/order/Order.java b/src/main/java/br/com/grupo63/serviceorder/entity/order/Order.java index 230a15e..30bfd0d 100644 --- a/src/main/java/br/com/grupo63/serviceorder/entity/order/Order.java +++ b/src/main/java/br/com/grupo63/serviceorder/entity/order/Order.java @@ -16,10 +16,10 @@ public class Order extends Entity { private Double totalPrice; - private Long clientId; + private String clientId; private List items = new ArrayList<>(); - public Order(Long id, boolean deleted, Double totalPrice, Long clientId, List items) { + public Order(Long id, boolean deleted, Double totalPrice, String clientId, List items) { super(id, deleted); this.totalPrice = totalPrice; this.clientId = clientId; diff --git a/src/main/java/br/com/grupo63/serviceorder/gateway/identification/IIdentificationGateway.java b/src/main/java/br/com/grupo63/serviceorder/gateway/identification/IIdentificationGateway.java index 4e0268e..a7461e4 100644 --- a/src/main/java/br/com/grupo63/serviceorder/gateway/identification/IIdentificationGateway.java +++ b/src/main/java/br/com/grupo63/serviceorder/gateway/identification/IIdentificationGateway.java @@ -8,10 +8,10 @@ import java.util.Optional; -@FeignClient(name = "identification", url = "/identification/clients") +@FeignClient(name = "identification", url = "${urls.baseurl-identification}") public interface IIdentificationGateway { - @RequestMapping(method = RequestMethod.GET, value = "/{id}") - Optional getById(@PathVariable("id") Long orderId); + @RequestMapping(method = RequestMethod.GET, value = "/identification/clients/{id}") + Optional getById(@PathVariable("id") String id); } diff --git a/src/main/java/br/com/grupo63/serviceorder/gateway/order/entity/OrderPersistenceEntity.java b/src/main/java/br/com/grupo63/serviceorder/gateway/order/entity/OrderPersistenceEntity.java index 539c1cc..a7b45bf 100644 --- a/src/main/java/br/com/grupo63/serviceorder/gateway/order/entity/OrderPersistenceEntity.java +++ b/src/main/java/br/com/grupo63/serviceorder/gateway/order/entity/OrderPersistenceEntity.java @@ -26,7 +26,7 @@ public class OrderPersistenceEntity extends PersistenceEntity { @Basic @Column(name = "ord_client", nullable = false) - private Long clientId; + private String clientId; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "order") private List items = new ArrayList<>(); diff --git a/src/main/java/br/com/grupo63/serviceorder/usecase/order/IOrderUseCase.java b/src/main/java/br/com/grupo63/serviceorder/usecase/order/IOrderUseCase.java index c1128f2..b682696 100644 --- a/src/main/java/br/com/grupo63/serviceorder/usecase/order/IOrderUseCase.java +++ b/src/main/java/br/com/grupo63/serviceorder/usecase/order/IOrderUseCase.java @@ -8,7 +8,7 @@ public interface IOrderUseCase { - Order create(Order entity, Long clientId) throws ValidationException, NotFoundException; + Order create(Order entity, String clientId) throws ValidationException, NotFoundException; Order read(Long id) throws NotFoundException; diff --git a/src/main/java/br/com/grupo63/serviceorder/usecase/order/OrderUseCase.java b/src/main/java/br/com/grupo63/serviceorder/usecase/order/OrderUseCase.java index c0f8ccd..a78032d 100644 --- a/src/main/java/br/com/grupo63/serviceorder/usecase/order/OrderUseCase.java +++ b/src/main/java/br/com/grupo63/serviceorder/usecase/order/OrderUseCase.java @@ -36,7 +36,7 @@ private void fillCurrentPrices(Order order) throws NotFoundException { } @Override - public Order create(Order entity, Long clientId) throws NotFoundException { + public Order create(Order entity, String clientId) throws NotFoundException { identificationGateway.getById(clientId).orElseThrow(NotFoundException::new); fillCurrentPrices(entity); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 503d02e..78a4816 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -23,6 +23,9 @@ jwt: key: public: "${JWT_PUBLIC_KEY:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqStd8n4SGNM0eZhV/hzU+urHA5/IMZPoP9YQ9ZcLKWiX33nI6bSuZMCrLZcJExf63xS+uxDpGxM8Mnk2zOdl+lPwANXLzP1us5P1PyA3YPycW9J7C5YTQW0GiEL3M93ZX7vMJiVoBYblP3JPlYnoYlBORuc0JPk33KtfEZP+78qXpPHM8imYrJLe8ceiDLLFDU/nh5KC2dWAy3ci1ahoJ1Q9ELhp3IZLvOTX57H/T2VKOYOya5+ST41h+JjzI+qGTVnLcKaW+k25YLlVnkSspvdx98+yQDi7kbOTS6yRZHUPD6wPk/nUozpD0nZKccoH4W+zMwmQVtsAA6JCA9gfGwIDAQAB}" +urls: + baseurl-identification: 'base-url' + server: servlet: context-path: "/order" \ No newline at end of file diff --git a/src/main/resources/db/migrations/postgresql/V01__create-tables.sql b/src/main/resources/db/migrations/postgresql/V01__create-tables.sql index 393467d..0195abb 100644 --- a/src/main/resources/db/migrations/postgresql/V01__create-tables.sql +++ b/src/main/resources/db/migrations/postgresql/V01__create-tables.sql @@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS ord_order ( id BIGSERIAL PRIMARY KEY, deleted BOOLEAN NOT NULL, total_price DOUBLE PRECISION NOT NULL, - ord_client BIGINT NOT NULL, + ord_client VARCHAR(255) NOT NULL, creation_date TIMESTAMP(6) NOT NULL, last_update_date TIMESTAMP(6) NOT NULL ); diff --git a/src/test/java/br/com/grupo63/serviceorder/order/OrderIntegrationTest.java b/src/test/java/br/com/grupo63/serviceorder/order/OrderIntegrationTest.java index b8bd76b..12c527d 100644 --- a/src/test/java/br/com/grupo63/serviceorder/order/OrderIntegrationTest.java +++ b/src/test/java/br/com/grupo63/serviceorder/order/OrderIntegrationTest.java @@ -55,7 +55,7 @@ public class OrderIntegrationTest { private final Category defaultCategory = new Category(1L, false, "category"); private final Product defaultProduct = new Product(1L, false, "product", 10.0, defaultCategory); private final CreateOrderRequestDTO.Item defaultItem = new CreateOrderRequestDTO.Item(1L, 1L); - private final Order defaultOrder = new Order(1L, false, 10.0, 1L, List.of()); + private final Order defaultOrder = new Order(1L, false, 10.0, "hash", List.of()); private final OrderPersistenceEntity defaultOrderPersistenceEntity = new OrderPersistenceEntity(defaultOrder); @@ -96,9 +96,9 @@ void testList_EndToEnd() { @Test void testCreate_EndToEnd() { HttpServletRequest mockedRequest = new MockHttpServletRequest(); - mockedRequest.setAttribute("clientId", Long.toString(1L)); + mockedRequest.setAttribute("clientId", "hash"); - when(identificationGateway.getById(1L)).thenReturn(Optional.of(defaultClientDTO)); + when(identificationGateway.getById("hash")).thenReturn(Optional.of(defaultClientDTO)); when(productJpaRepository.findByIdAndDeletedFalse(1L)).thenReturn(Optional.of(defaultProductPersistenceEntity)); when(orderJpaRepository.saveAndFlush(any())).thenReturn(defaultOrderPersistenceEntity);