implement statuscode in packets
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 2m2s

This commit is contained in:
matst80
2024-11-11 23:24:03 +01:00
parent 9c15251f67
commit 0b290a32bf
17 changed files with 295 additions and 226 deletions

View File

@@ -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
}