Files
hatchet/pkg/examples/quickstart/workflows/first_task.go
Gabe Ruttner 8e80faf2d6 Fe overhaul docs (#1640)
* api changes

* doc changes

* move docs

* generated

* generate

* pkg

* backmerge main

* revert to main

* revert main

* race?

* remove go tests
2025-04-30 14:10:09 -07:00

48 lines
1.0 KiB
Go

package workflows
import (
"fmt"
"strings"
"github.com/hatchet-dev/hatchet/pkg/client/create"
v1 "github.com/hatchet-dev/hatchet/pkg/v1"
"github.com/hatchet-dev/hatchet/pkg/v1/factory"
"github.com/hatchet-dev/hatchet/pkg/v1/workflow"
"github.com/hatchet-dev/hatchet/pkg/worker"
)
type SimpleInput struct {
Message string `json:"message"`
}
type LowerOutput struct {
TransformedMessage string `json:"transformed_message"`
}
type SimpleResult struct {
ToLower LowerOutput
}
func FirstTask(hatchet v1.HatchetClient) workflow.WorkflowDeclaration[SimpleInput, SimpleResult] {
simple := factory.NewWorkflow[SimpleInput, SimpleResult](
create.WorkflowCreateOpts[SimpleInput]{
Name: "first-task",
},
hatchet,
)
simple.Task(
create.WorkflowTask[SimpleInput, SimpleResult]{
Name: "first-task",
},
func(ctx worker.HatchetContext, input SimpleInput) (any, error) {
fmt.Println("first-task task called")
return &LowerOutput{
TransformedMessage: strings.ToLower(input.Message),
}, nil
},
)
return simple
}