func (s *Server) addTask(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { task, err := core.CreateTaskFromContent(r.Body, nil, s.mt.CreateTask) if err != nil { respond(500, rbody.FromError(err), w) return } taskB := rbody.AddSchedulerTaskFromTask(task) taskB.Href = taskURI(r.Host, task) respond(201, taskB, w) }
func (s *Server) addTask(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { tr, err := marshalTask(r.Body) if err != nil { respond(500, rbody.FromError(err), w) return } sch, err := makeSchedule(tr.Schedule) if err != nil { respond(500, rbody.FromError(err), w) return } var opts []core.TaskOption if tr.Deadline != "" { dl, err := time.ParseDuration(tr.Deadline) if err != nil { respond(500, rbody.FromError(err), w) return } opts = append(opts, core.TaskDeadlineDuration(dl)) } if tr.Name != "" { opts = append(opts, core.SetTaskName(tr.Name)) } opts = append(opts, core.OptionStopOnFailure(10)) task, errs := s.mt.CreateTask(sch, tr.Workflow, tr.Start, opts...) if errs != nil && len(errs.Errors()) != 0 { var errMsg string for _, e := range errs.Errors() { errMsg = errMsg + e.Error() + " -- " } respond(500, rbody.FromError(errors.New(errMsg[:len(errMsg)-4])), w) return } taskB := rbody.AddSchedulerTaskFromTask(task) taskB.Href = taskURI(r.Host, task) respond(201, taskB, w) }