package main
import (
"context"
"fmt"
"log"
"go.temporal.io/api/enums/v1"
"go.temporal.io/sdk/client"
)
func main() {
cli, err := client.Dial(client.Options{
HostPort: "10.33.64.7:7233",
Namespace: "prod",
})
if err != nil {
log.Fatal(err)
}
defer cli.Close()
ctx := context.Background()
iter := cli.GetWorkflowHistory(
ctx,
"vidu20_character2video_720p_4s-2811685611418762",
"",
false,
enums.HISTORY_EVENT_FILTER_TYPE_ALL_EVENT,
)
if err != nil {
log.Fatal(err)
}
activityNames := make(map[int64]string)
for iter.HasNext() {
event, err := iter.Next()
if err != nil {
log.Fatal(err)
}
switch event.GetEventType() {
case enums.EVENT_TYPE_ACTIVITY_TASK_SCHEDULED:
attrs := event.GetActivityTaskScheduledEventAttributes()
activityNames[event.GetEventId()] = attrs.GetActivityType().GetName()
fmt.Printf("Activity Name: %s, Input: %v\n", attrs.GetActivityType().GetName(), attrs.GetInput())
case enums.EVENT_TYPE_ACTIVITY_TASK_COMPLETED:
attrs := event.GetActivityTaskCompletedEventAttributes()
name := activityNames[attrs.GetScheduledEventId()]
result := attrs.GetResult()
fmt.Printf("Activity Name: %s, Completed Result: %v\n", name, result)
}
}
}