[hw-3] loms service
18
docs/homework-3/img/cart-cart-checkout.plantuml
Normal file
@@ -0,0 +1,18 @@
|
||||
@startuml
|
||||
|
||||
actor User as u
|
||||
collections Cart as c
|
||||
database CartStorage as cs
|
||||
collections Order as o
|
||||
|
||||
u -> c : POST /checkout/<user_id>
|
||||
activate c
|
||||
c -> cs : cart.GetItemsByUserID
|
||||
c -> o : gRPC Loms.OrderCreate\n\t- user\n\t- []item
|
||||
c -> cs : cart.DeleteItemsByUserID
|
||||
|
||||
c -> u : Response: 200 OK
|
||||
|
||||
deactivate c
|
||||
|
||||
@enduml
|
||||
BIN
docs/homework-3/img/cart-cart-checkout.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
32
docs/homework-3/img/cart-cart-item-add.plantuml
Normal file
@@ -0,0 +1,32 @@
|
||||
@startuml
|
||||
|
||||
actor User as u
|
||||
collections Cart as c
|
||||
database CartStorage as cs
|
||||
collections ProductService as p
|
||||
collections Order as o
|
||||
|
||||
u -> c : POST /user/<user_id>/cart/<sku_id>\n\t- count
|
||||
activate c
|
||||
loop for each item in request
|
||||
c -> p : /get_product\n\t- sku\n\t- token
|
||||
activate p
|
||||
p -> c : \nResponse:\n\t- name\n\t- price
|
||||
deactivate p
|
||||
c -> c : validate product exists
|
||||
|
||||
c -> o : gRPC Loms.StocksInfo\n\t- sku
|
||||
activate o
|
||||
o -> c : Response:\n\t- count
|
||||
deactivate o
|
||||
c -> c : validate stocks
|
||||
alt stocks enough
|
||||
c -> cs : cart.AddItem()
|
||||
c -> u : 200 OK
|
||||
else
|
||||
c -> u : 412 Failed Precondition (insufficient stocks)
|
||||
end
|
||||
end
|
||||
deactivate c
|
||||
|
||||
@enduml
|
||||
BIN
docs/homework-3/img/cart-cart-item-add.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
18
docs/homework-3/img/loms-order-cancel.plantuml
Normal file
@@ -0,0 +1,18 @@
|
||||
@startuml
|
||||
|
||||
actor User as u
|
||||
collections LOMS as l
|
||||
database OrdersStorage as os
|
||||
database StocksStorage as ss
|
||||
|
||||
u -> l : gRPC Loms.OrderCancel\n\t- orderID
|
||||
activate l
|
||||
|
||||
l -> os : order.GetByOrderID()
|
||||
l -> ss : stocks.ReserveCancel()
|
||||
l -> os : order.SetStatus(cancelled)
|
||||
deactivate l
|
||||
|
||||
l -> u : Response: OK (code_id=0)
|
||||
|
||||
@enduml
|
||||
BIN
docs/homework-3/img/loms-order-cancel.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
22
docs/homework-3/img/loms-order-create.plantuml
Normal file
@@ -0,0 +1,22 @@
|
||||
@startuml
|
||||
|
||||
actor User as u
|
||||
collections LOMS as l
|
||||
database OrdersStorage as os
|
||||
database StocksStorage as ss
|
||||
|
||||
u -> l : gRPC Loms.OrderCreate\n\t- user\n\t- items: []item{\n\t\t- sku\n\t\t- count\n\t }
|
||||
activate l
|
||||
l -> os : order.Create()\n\tstatus=new
|
||||
l -> ss : stocks.Reserve()
|
||||
|
||||
alt Reserve success
|
||||
l -> os : order.SetStatus(awaiting payment)
|
||||
l -> u : Response: OK (code_id=0)\n\t- orderID
|
||||
else
|
||||
l -> os : order.SetStatus(failed)
|
||||
l -> u : Failed Precondition (code_id 9)
|
||||
end
|
||||
deactivate l
|
||||
|
||||
@enduml
|
||||
BIN
docs/homework-3/img/loms-order-create.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
19
docs/homework-3/img/loms-order-info.plantuml
Normal file
@@ -0,0 +1,19 @@
|
||||
@startuml
|
||||
|
||||
actor User as u
|
||||
collections LOMS as l
|
||||
database OrdersStorage as os
|
||||
|
||||
u -> l : gRPC Loms.OrderInfo\n\t- orderID int64
|
||||
activate l
|
||||
|
||||
l -> os : order.GetByID()
|
||||
alt order exists
|
||||
l -> u : Response: OK (code_id=0)\n\t- status\n\t- user\n\t- []items{}
|
||||
else
|
||||
l -> u : Response: Not Found (code_id=5)
|
||||
end
|
||||
|
||||
deactivate l
|
||||
|
||||
@enduml
|
||||
BIN
docs/homework-3/img/loms-order-info.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
17
docs/homework-3/img/loms-order-pay.plantuml
Normal file
@@ -0,0 +1,17 @@
|
||||
@startuml
|
||||
|
||||
actor User as u
|
||||
collections LOMS as l
|
||||
database OrdersStorage as os
|
||||
database StocksStorage as ss
|
||||
|
||||
u -> l : gRPC Loms.OrderPay\n\t- orderID
|
||||
activate l
|
||||
l -> ss : stocks.ReserveRemove()
|
||||
l -> os : order.SetStatus(payed)
|
||||
|
||||
l -> u : Response: OK (code_id=0)
|
||||
|
||||
deactivate l
|
||||
|
||||
@enduml
|
||||
BIN
docs/homework-3/img/loms-order-pay.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
15
docs/homework-3/img/loms-stok-info.plantuml
Normal file
@@ -0,0 +1,15 @@
|
||||
@startuml
|
||||
|
||||
actor User as u
|
||||
collections LOMS as l
|
||||
database StocksStorage as ss
|
||||
|
||||
u -> l : gRPC Loms.StocksInfo\n\t- sku
|
||||
activate l
|
||||
|
||||
l -> ss : stocks.GetBySKU()
|
||||
|
||||
l -> u : Response: OK (code_id=0)\n- count
|
||||
deactivate l
|
||||
|
||||
@enduml
|
||||
BIN
docs/homework-3/img/loms-stok-info.png
Normal file
|
After Width: | Height: | Size: 16 KiB |