Commit d26c8182 authored by earndt's avatar earndt

[AFP-75] Modifies Order JSON shape [@earndt]

parent a003e5dc
...@@ -22,9 +22,9 @@ public class OrderController { ...@@ -22,9 +22,9 @@ public class OrderController {
return orderService.getAllOrders(); return orderService.getAllOrders();
} }
@GetMapping("/orders/{userId}") @GetMapping("/orders/{customerId}")
public Flux<Order> getAllOrdersByUserId(@PathVariable("userId") String userId) { public Flux<Order> getAllOrdersByCustomerId(@PathVariable("customerId") String customerId) {
return orderService.getAllOrdersByUserId(userId); return orderService.getAllOrdersByCustomerId(customerId);
} }
@PostMapping("/orders") @PostMapping("/orders")
......
...@@ -5,7 +5,7 @@ import lombok.Data; ...@@ -5,7 +5,7 @@ import lombok.Data;
import java.util.Objects; import java.util.Objects;
@Data @Data
public class Address { public class CustomerAddress {
private String street; private String street;
private String city; private String city;
private String state; private String state;
...@@ -14,9 +14,9 @@ public class Address { ...@@ -14,9 +14,9 @@ public class Address {
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) return true; if (this == o) return true;
if (!(o instanceof Address)) return false; if (!(o instanceof CustomerAddress)) return false;
Address address = (Address) o; CustomerAddress that = (CustomerAddress) o;
return getStreet().equals(address.getStreet()) && getCity().equals(address.getCity()) && getState().equals(address.getState()) && getZip().equals(address.getZip()); return getStreet().equals(that.getStreet()) && getCity().equals(that.getCity()) && getState().equals(that.getState()) && getZip().equals(that.getZip());
} }
@Override @Override
...@@ -26,7 +26,7 @@ public class Address { ...@@ -26,7 +26,7 @@ public class Address {
@Override @Override
public String toString() { public String toString() {
return "Address{" + return "CustomerAddress{" +
"street='" + street + '\'' + "street='" + street + '\'' +
", city='" + city + '\'' + ", city='" + city + '\'' +
", state='" + state + '\'' + ", state='" + state + '\'' +
......
...@@ -7,31 +7,31 @@ import java.util.Objects; ...@@ -7,31 +7,31 @@ import java.util.Objects;
@Data @Data
public class Item { public class Item {
private String id; private String itemId;
private int stock; private int itemQuantity;
private double price; private double itemPrice;
private int sku; private int itemSku;
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) return true; if (this == o) return true;
if (!(o instanceof Item)) return false; if (!(o instanceof Item)) return false;
Item item = (Item) o; Item item = (Item) o;
return getStock() == item.getStock() && Double.compare(item.getPrice(), getPrice()) == 0 && getSku() == item.getSku() && getId().equals(item.getId()); return getItemQuantity() == item.getItemQuantity() && Double.compare(item.getItemPrice(), getItemPrice()) == 0 && getItemSku() == item.getItemSku() && getItemId().equals(item.getItemId());
} }
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash(getId(), getStock(), getPrice(), getSku()); return Objects.hash(getItemId(), getItemQuantity(), getItemPrice(), getItemSku());
} }
@Override @Override
public String toString() { public String toString() {
return "Item{" + return "Item{" +
"id='" + id + '\'' + "itemId='" + itemId + '\'' +
", stock=" + stock + ", itemQuantity=" + itemQuantity +
", price=" + price + ", itemPrice=" + itemPrice +
", sku=" + sku + ", itemSku=" + itemSku +
'}'; '}';
} }
} }
...@@ -6,7 +6,6 @@ import lombok.Data; ...@@ -6,7 +6,6 @@ import lombok.Data;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -19,35 +18,35 @@ public class Order { ...@@ -19,35 +18,35 @@ public class Order {
@Id @Id
private String id; private String id;
private String userId; private String customerId;
private String emailAddress; private String customerEmailAddress;
@Builder.Default @Builder.Default
private String trackingCode = "N/A"; private String orderTrackingCode = "N/A";
private enum Status { private enum OrderStatus {
UNFULFILLED, RECEIVED,
FULFILLED, FULFILLED,
CANCELLED CANCELLED
}; };
@Builder.Default @Builder.Default
private Status status = Status.UNFULFILLED; private OrderStatus orderStatus = OrderStatus.RECEIVED;
@Builder.Default @Builder.Default
private double createdAt = System.currentTimeMillis(); private double orderCreatedAt = System.currentTimeMillis();
@Builder.Default @Builder.Default
private double updatedAt = System.currentTimeMillis(); private double orderUpdatedAt = System.currentTimeMillis();
private List<Item> items; private List<Item> orderItems;
private Address address; private CustomerAddress customerAddress;
public Order(){ public Order(){
status = Status.UNFULFILLED; orderStatus = OrderStatus.RECEIVED;
createdAt = System.currentTimeMillis(); orderCreatedAt = System.currentTimeMillis();
updatedAt = System.currentTimeMillis(); orderUpdatedAt = System.currentTimeMillis();
trackingCode = "N/A"; orderTrackingCode = "N/A";
} }
@Override @Override
...@@ -55,25 +54,26 @@ public class Order { ...@@ -55,25 +54,26 @@ public class Order {
if (this == o) return true; if (this == o) return true;
if (!(o instanceof Order)) return false; if (!(o instanceof Order)) return false;
Order order = (Order) o; Order order = (Order) o;
return Double.compare(order.getCreatedAt(), getCreatedAt()) == 0 && Double.compare(order.getUpdatedAt(), getUpdatedAt()) == 0 && getId().equals(order.getId()) && getUserId().equals(order.getUserId()) && getEmailAddress().equals(order.getEmailAddress()) && Objects.equals(getTrackingCode(), order.getTrackingCode()) && getItems().equals(order.getItems()) && getAddress().equals(order.getAddress()); return Double.compare(order.getOrderCreatedAt(), getOrderCreatedAt()) == 0 && Double.compare(order.getOrderUpdatedAt(), getOrderUpdatedAt()) == 0 && getId().equals(order.getId()) && getCustomerId().equals(order.getCustomerId()) && getCustomerEmailAddress().equals(order.getCustomerEmailAddress()) && Objects.equals(getOrderTrackingCode(), order.getOrderTrackingCode()) && getOrderStatus() == order.getOrderStatus() && getOrderItems().equals(order.getOrderItems()) && getCustomerAddress().equals(order.getCustomerAddress());
} }
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash(getId(), getUserId(), getEmailAddress(), getTrackingCode(), getCreatedAt(), getUpdatedAt(), getItems(), getAddress()); return Objects.hash(getId(), getCustomerId(), getCustomerEmailAddress(), getOrderTrackingCode(), getOrderStatus(), getOrderCreatedAt(), getOrderUpdatedAt(), getOrderItems(), getCustomerAddress());
} }
@Override @Override
public String toString() { public String toString() {
return "Order{" + return "Order{" +
"id='" + id + '\'' + "id='" + id + '\'' +
", userId='" + userId + '\'' + ", customerId='" + customerId + '\'' +
", emailAddress='" + emailAddress + '\'' + ", customerEmailAddress='" + customerEmailAddress + '\'' +
", trackingCode='" + trackingCode + '\'' + ", orderTrackingCode='" + orderTrackingCode + '\'' +
", createdAt=" + createdAt + ", orderStatus=" + orderStatus +
", updatedAt=" + updatedAt + ", orderCreatedAt=" + orderCreatedAt +
", items=" + items + ", orderUpdatedAt=" + orderUpdatedAt +
", address=" + address + ", orderItems=" + orderItems +
", customerAddress=" + customerAddress +
'}'; '}';
} }
} }
...@@ -9,5 +9,5 @@ import java.util.List; ...@@ -9,5 +9,5 @@ import java.util.List;
@Repository @Repository
public interface OrderRepository extends ReactiveMongoRepository<Order, String> { public interface OrderRepository extends ReactiveMongoRepository<Order, String> {
Flux<Order> findByUserId(String userId); Flux<Order> findByCustomerId(String customerId);
} }
...@@ -21,18 +21,18 @@ public class OrderService { ...@@ -21,18 +21,18 @@ public class OrderService {
return orderRepository.findAll(); return orderRepository.findAll();
} }
public Flux<Order> getAllOrdersByUserId(String userId){ public Flux<Order> getAllOrdersByCustomerId(String customerId){
return orderRepository.findByUserId(userId); return orderRepository.findByCustomerId(customerId);
} }
public Mono<Order> updateOrderByOrderId(String orderId, Order newOrder){ public Mono<Order> updateOrderByOrderId(String orderId, Order newOrder){
return orderRepository.findById(orderId) return orderRepository.findById(orderId)
.flatMap(existingOrder -> { .flatMap(existingOrder -> {
existingOrder.setAddress(newOrder.getAddress()); existingOrder.setCustomerAddress(newOrder.getCustomerAddress());
existingOrder.setEmailAddress(newOrder.getEmailAddress()); existingOrder.setCustomerEmailAddress(newOrder.getCustomerEmailAddress());
existingOrder.setTrackingCode(newOrder.getTrackingCode()); existingOrder.setOrderTrackingCode(newOrder.getOrderTrackingCode());
existingOrder.setItems(newOrder.getItems()); existingOrder.setOrderItems(newOrder.getOrderItems());
existingOrder.setStatus(newOrder.getStatus()); existingOrder.setOrderStatus(newOrder.getOrderStatus());
return orderRepository.save(existingOrder); return orderRepository.save(existingOrder);
}); });
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment