Commit d26c8182 authored by earndt's avatar earndt

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

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