Skip to content

Commit

Permalink
set go to 1.21 and address review comments
Browse files Browse the repository at this point in the history
Signed-off-by: mikeee <[email protected]>
  • Loading branch information
mikeee committed Feb 13, 2024
1 parent 8a67800 commit 1226ebc
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 11 deletions.
4 changes: 3 additions & 1 deletion workflows/go/sdk/order-processor/go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
module dapr_example

go 1.21.6
go 1.21

toolchain go1.21.6

require github.com/dapr/go-sdk v1.6.1-0.20240209153236-ac26e622c4a6

Expand Down
4 changes: 3 additions & 1 deletion workflows/go/sdk/order-processor/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,13 +110,15 @@ func main() {
promptForApproval(id)
}
}
// Sleep to not DoS the dapr dev instance
// Sleep before the next iteration
time.Sleep(time.Second)
}

fmt.Println("Purchase of item is complete")
}

// promptForApproval is an example case. There is no user input required here due to this being for testing purposes only.
// It would be perfectly valid to add a wait here or display a prompt to continue the process.
func promptForApproval(id string) {
wfClient, err := workflow.NewClient()
if err != nil {
Expand Down
29 changes: 20 additions & 9 deletions workflows/go/sdk/order-processor/workflow.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ func OrderProcessingWorkflow(ctx *workflow.WorkflowContext) (any, error) {
if err := ctx.GetInput(&orderPayload); err != nil {
return nil, err
}
if err := ctx.CallActivity(NotifyActivity, workflow.ActivityInput(Notification{Message: fmt.Sprintf("Received order %s for %d %s - $%d", orderID, orderPayload.Quantity, orderPayload.ItemName, orderPayload.TotalCost)})).Await(nil); err != nil {
err := ctx.CallActivity(NotifyActivity, workflow.ActivityInput(Notification{
Message: fmt.Sprintf("Received order %s for %d %s - $%d", orderID, orderPayload.Quantity, orderPayload.ItemName, orderPayload.TotalCost),
})).Await(nil)
if err != nil {
return OrderResult{Processed: false}, err
}

Expand All @@ -32,9 +35,9 @@ func OrderProcessingWorkflow(ctx *workflow.WorkflowContext) (any, error) {
}

if !verifyInventoryResult.Success {
if err := ctx.CallActivity(NotifyActivity, workflow.ActivityInput(Notification{Message: fmt.Sprintf("Insufficient inventory for %s", orderPayload.ItemName)})).Await(nil); err != nil {
return OrderResult{Processed: false}, err
}
notification := Notification{Message: fmt.Sprintf("Insufficient inventory for %s", orderPayload.ItemName)}
err := ctx.CallActivity(NotifyActivity, workflow.ActivityInput(notification)).Await(nil)
return OrderResult{Processed: false}, err
}

if orderPayload.TotalCost > 50000 {
Expand All @@ -54,21 +57,29 @@ func OrderProcessingWorkflow(ctx *workflow.WorkflowContext) (any, error) {
if err := ctx.CallActivity(NotifyActivity, workflow.ActivityInput(Notification{Message: fmt.Sprintf("Payment for order %s has been rejected!", orderID)})).Await(nil); err != nil {
log.Printf("failed to notify of an unsuccessful order :%v\n", err)
}
return OrderResult{Processed: false}, nil
return OrderResult{Processed: false}, err
}
}
if err := ctx.CallActivity(ProcessPaymentActivity, workflow.ActivityInput(PaymentRequest{
err = ctx.CallActivity(ProcessPaymentActivity, workflow.ActivityInput(PaymentRequest{
RequestID: orderID,
ItemBeingPurchased: orderPayload.ItemName,
Amount: orderPayload.TotalCost,
Quantity: orderPayload.Quantity,
})).Await(nil); err != nil {
})).Await(nil)
if err != nil {
if err := ctx.CallActivity(NotifyActivity, workflow.ActivityInput(Notification{Message: fmt.Sprintf("Order %s failed!", orderID)})).Await(nil); err != nil {
log.Printf("failed to notify of a failed order: %v", err)
}
return OrderResult{Processed: false}, err
}
if err := ctx.CallActivity(UpdateInventoryActivity, workflow.ActivityInput(PaymentRequest{RequestID: orderID, ItemBeingPurchased: orderPayload.ItemName, Amount: orderPayload.TotalCost, Quantity: orderPayload.Quantity})).Await(nil); err != nil {

err = ctx.CallActivity(UpdateInventoryActivity, workflow.ActivityInput(PaymentRequest{
RequestID: orderID,
ItemBeingPurchased: orderPayload.ItemName,
Amount: orderPayload.TotalCost,
Quantity: orderPayload.Quantity,
})).Await(nil)
if err != nil {
if err := ctx.CallActivity(NotifyActivity, workflow.ActivityInput(Notification{Message: fmt.Sprintf("Order %s failed!", orderID)})).Await(nil); err != nil {
log.Printf("failed to notify of a failed order: %v", err)
}
Expand All @@ -78,7 +89,7 @@ func OrderProcessingWorkflow(ctx *workflow.WorkflowContext) (any, error) {
if err := ctx.CallActivity(NotifyActivity, workflow.ActivityInput(Notification{Message: fmt.Sprintf("Order %s has completed!", orderID)})).Await(nil); err != nil {
log.Printf("failed to notify of a successful order: %v", err)
}
return OrderResult{Processed: true}, nil
return OrderResult{Processed: true}, err
}

// NotifyActivity outputs a notification message
Expand Down

0 comments on commit 1226ebc

Please sign in to comment.