package progress import ( "fmt" "strings" ) type TaskErrorEvent struct { TaskKey string `json:"task_key"` Error string `json:"error"` ErrorTrace string `json:"error_trace"` } func NewTaskErrorEvent(taskKey, errorMessage, errorTrace string) *TaskErrorEvent { return &TaskErrorEvent{ TaskKey: taskKey, Error: errorMessage, ErrorTrace: errorTrace, } } func (event *TaskErrorEvent) String() string { result := strings.Builder{} result.WriteString(fmt.Sprintf("Task %s FAILED:\n", event.TaskKey)) result.WriteString(event.Error + "\n") result.WriteString(event.ErrorTrace + "\n") return result.String() } func (event *TaskErrorEvent) IsInplaceSupported() bool { return false } type JobRunUrlEvent struct { Type string `json:"type"` Url string `json:"url"` } func NewJobRunUrlEvent(url string) *JobRunUrlEvent { return &JobRunUrlEvent{ Type: "job_run_url", Url: url, } } func (event *JobRunUrlEvent) String() string { return fmt.Sprintf("Run URL: %s\n", event.Url) } func (event *JobRunUrlEvent) IsInplaceSupported() bool { return false }