func handler()

in order-update/main.go [41:68]


func handler(ctx context.Context, ord models.Order) (models.Order, error) {

	log.Printf("[%s] - received request to update order status", ord.OrderID)

	order, err := getOrder(ctx, ord.OrderID)
	if err != nil {
		log.Printf("[%s] - error! %s", ord.OrderID, err.Error())
		return ord, models.NewErrUpdateOrderStatus(err.Error())
	}

	// Set order to status to "pending"
	order.OrderStatus = "Pending"

	err = saveOrder(ctx, order)
	if err != nil {
		log.Printf("[%s] - error! %s", ord.OrderID, err.Error())
		return ord, models.NewErrUpdateOrderStatus(err.Error())
	}

	// testing scenario
	if ord.OrderID[0:2] == "11" {
		return models.Order{}, models.NewErrUpdateOrderStatus("Unable to update order status for " + ord.OrderID)
	}

	log.Printf("[%s] - order status updated to pending", ord.OrderID)

	return ord, nil
}