implement statuscode in packets
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 2m2s
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 2m2s
This commit is contained in:
@@ -54,7 +54,8 @@ type CartGrain struct {
|
||||
|
||||
type Grain interface {
|
||||
GetId() CartId
|
||||
HandleMessage(message *Message, isReplay bool) ([]byte, error)
|
||||
HandleMessage(message *Message, isReplay bool) (*CallResult, error)
|
||||
GetCurrentState() (*CallResult, error)
|
||||
}
|
||||
|
||||
func (c *CartGrain) GetId() CartId {
|
||||
@@ -68,6 +69,14 @@ func (c *CartGrain) GetLastChange() int64 {
|
||||
return *c.storageMessages[len(c.storageMessages)-1].TimeStamp
|
||||
}
|
||||
|
||||
func (c *CartGrain) GetCurrentState() (*CallResult, error) {
|
||||
result, err := json.Marshal(c)
|
||||
return &CallResult{
|
||||
StatusCode: 200,
|
||||
Data: result,
|
||||
}, err
|
||||
}
|
||||
|
||||
func getItemData(sku string, qty int) (*messages.AddItem, error) {
|
||||
item, err := FetchItem(sku)
|
||||
if err != nil {
|
||||
@@ -99,7 +108,7 @@ func getItemData(sku string, qty int) (*messages.AddItem, error) {
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (c *CartGrain) AddItem(sku string, qty int) ([]byte, error) {
|
||||
func (c *CartGrain) AddItem(sku string, qty int) (*CallResult, error) {
|
||||
cartItem, err := getItemData(sku, qty)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -171,7 +180,7 @@ func (c *CartGrain) FindItemWithSku(sku string) (*CartItem, bool) {
|
||||
return nil, false
|
||||
}
|
||||
|
||||
func (c *CartGrain) HandleMessage(message *Message, isReplay bool) ([]byte, error) {
|
||||
func (c *CartGrain) HandleMessage(message *Message, isReplay bool) (*CallResult, error) {
|
||||
if message.TimeStamp == nil {
|
||||
now := time.Now().Unix()
|
||||
message.TimeStamp = &now
|
||||
@@ -294,5 +303,9 @@ func (c *CartGrain) HandleMessage(message *Message, isReplay bool) ([]byte, erro
|
||||
c.storageMessages = append(c.storageMessages, *message)
|
||||
c.mu.Unlock()
|
||||
}
|
||||
return json.Marshal(c)
|
||||
result, err := json.Marshal(c)
|
||||
return &CallResult{
|
||||
StatusCode: 200,
|
||||
Data: result,
|
||||
}, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user