update qty
This commit is contained in:
38
api-tests/cart.http
Normal file
38
api-tests/cart.http
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
### Add item to cart
|
||||||
|
POST https://cart.tornberg.me/api/12345
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"sku": "763281",
|
||||||
|
"quantity": 1
|
||||||
|
}
|
||||||
|
|
||||||
|
### Update quanity of item in cart
|
||||||
|
PUT https://cart.tornberg.me/api/12345/1
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"quantity": 1
|
||||||
|
}
|
||||||
|
|
||||||
|
### Add item to cart
|
||||||
|
POST http://localhost:8080/cart/12345/item
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"itemId": "67890",
|
||||||
|
"quantity": 2
|
||||||
|
}
|
||||||
|
|
||||||
|
### Remove item from cart
|
||||||
|
DELETE http://localhost:8080/cart/12345/item/67890
|
||||||
|
|
||||||
|
### Checkout cart
|
||||||
|
POST http://localhost:8080/cart/12345/checkout
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"paymentMethod": "credit_card",
|
||||||
|
"shippingAddress": "123 Main St, Anytown, USA"
|
||||||
|
}
|
||||||
@@ -164,14 +164,15 @@ func (s *PoolServer) HandleRemoveDelivery(w http.ResponseWriter, r *http.Request
|
|||||||
|
|
||||||
func (s *PoolServer) HandleQuantityChange(w http.ResponseWriter, r *http.Request) error {
|
func (s *PoolServer) HandleQuantityChange(w http.ResponseWriter, r *http.Request) error {
|
||||||
id := r.PathValue("id")
|
id := r.PathValue("id")
|
||||||
itemIdString := r.PathValue("itemId")
|
|
||||||
itemId, err := strconv.Atoi(itemIdString)
|
changeQuantity := messages.ChangeQuantity{}
|
||||||
|
err := json.NewDecoder(r.Body).Decode(&changeQuantity)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
reply, err := s.pool.Process(ToCartId(id), Message{
|
reply, err := s.pool.Process(ToCartId(id), Message{
|
||||||
Type: ChangeQuantityType,
|
Type: ChangeQuantityType,
|
||||||
Content: &messages.ChangeQuantity{Id: int64(itemId)},
|
Content: changeQuantity,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -182,14 +183,14 @@ func (s *PoolServer) HandleQuantityChange(w http.ResponseWriter, r *http.Request
|
|||||||
func (s *PoolServer) HandleAddRequest(w http.ResponseWriter, r *http.Request) error {
|
func (s *PoolServer) HandleAddRequest(w http.ResponseWriter, r *http.Request) error {
|
||||||
id := r.PathValue("id")
|
id := r.PathValue("id")
|
||||||
|
|
||||||
pickupPoint := messages.AddRequest{}
|
addRequest := messages.AddRequest{}
|
||||||
err := json.NewDecoder(r.Body).Decode(&pickupPoint)
|
err := json.NewDecoder(r.Body).Decode(&addRequest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
reply, err := s.pool.Process(ToCartId(id), Message{
|
reply, err := s.pool.Process(ToCartId(id), Message{
|
||||||
Type: AddRequestType,
|
Type: AddRequestType,
|
||||||
Content: &pickupPoint,
|
Content: &addRequest,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -203,7 +204,7 @@ func (s *PoolServer) Serve() *http.ServeMux {
|
|||||||
mux.HandleFunc("GET /{id}/add/{sku}", ErrorHandler(s.HandleAddSku))
|
mux.HandleFunc("GET /{id}/add/{sku}", ErrorHandler(s.HandleAddSku))
|
||||||
mux.HandleFunc("POST /{id}", ErrorHandler(s.HandleAddRequest))
|
mux.HandleFunc("POST /{id}", ErrorHandler(s.HandleAddRequest))
|
||||||
mux.HandleFunc("DELETE /{id}/{itemId}", ErrorHandler(s.HandleDeleteItem))
|
mux.HandleFunc("DELETE /{id}/{itemId}", ErrorHandler(s.HandleDeleteItem))
|
||||||
mux.HandleFunc("PUT /{id}/{itemId}", ErrorHandler(s.HandleQuantityChange))
|
mux.HandleFunc("PUT /{id}", ErrorHandler(s.HandleQuantityChange))
|
||||||
mux.HandleFunc("POST /{id}/delivery", ErrorHandler(s.HandleSetDelivery))
|
mux.HandleFunc("POST /{id}/delivery", ErrorHandler(s.HandleSetDelivery))
|
||||||
mux.HandleFunc("DELETE /{id}/delivery/{deliveryId}", ErrorHandler(s.HandleRemoveDelivery))
|
mux.HandleFunc("DELETE /{id}/delivery/{deliveryId}", ErrorHandler(s.HandleRemoveDelivery))
|
||||||
mux.HandleFunc("PUT /{id}/delivery/{deliveryId}/pickupPoint", ErrorHandler(s.HandleSetPickupPoint))
|
mux.HandleFunc("PUT /{id}/delivery/{deliveryId}/pickupPoint", ErrorHandler(s.HandleSetPickupPoint))
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ func TestConnection(t *testing.T) {
|
|||||||
Id: id,
|
Id: id,
|
||||||
storageMessages: []Message{},
|
storageMessages: []Message{},
|
||||||
Items: []*CartItem{},
|
Items: []*CartItem{},
|
||||||
Deliveries: make([]CartDelivery, 0),
|
Deliveries: make([]*CartDelivery, 0),
|
||||||
TotalPrice: 0,
|
TotalPrice: 0,
|
||||||
}, nil
|
}, nil
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user