func()

in go/greeter/greeter.go [47:77]


func (p *Person) Invoke(ctx statefun.Context, message statefun.Message) error {
	// update the visit count.
	var visits int32
	ctx.Storage().Get(p.Visits, &visits)

	visits += 1

	fmt.Printf("seen %d", visits)
	ctx.Storage().Set(p.Visits, visits)

	// enrich the request with the number of visits.
	var request GreetRequest
	if err := message.As(GreetRequestType, &request); err != nil {
		return fmt.Errorf("failed to deserialize greet reqeuest: %w", err)
	}
	request.Visits = visits

	// next, we will forward a message to a special greeter function,
	// that will compute a personalized greeting based on the number
	// of visits that this person has been seen.
	ctx.Send(statefun.MessageBuilder{
		Target: statefun.Address{
			FunctionType: GreeterTypeName,
			Id:           request.Name,
		},
		Value:     request,
		ValueType: GreetRequestType,
	})

	return nil
}