MCPcopy Create free account
hub / github.com/compozy/agh / RecoverTask

Method RecoverTask

internal/api/core/tasks.go:422–456  ·  view source on GitHub ↗

RecoverTask clears task-level needs_attention state.

(c *gin.Context)

Source from the content-addressed store, hash-verified

420
421// RecoverTask clears task-level needs_attention state.
422func (h *BaseHandlers) RecoverTask(c *gin.Context) {
423 manager, ok := h.requireTaskManager(c)
424 if !ok {
425 return
426 }
427
428 taskID, err := requiredPathID(c.Param("id"), "task id")
429 if err != nil {
430 h.respondError(c, StatusForTaskError(err), err)
431 return
432 }
433
434 var req contract.RecoverTaskRequest
435 if err := decodeOptionalJSON(c, &req); err != nil {
436 h.respondError(
437 c,
438 http.StatusBadRequest,
439 NewTaskValidationError(fmt.Errorf("%s: decode recover task request: %w", h.transportName(), err)),
440 )
441 return
442 }
443
444 actor, err := h.taskActorContext(c, taskActionRecover)
445 if err != nil {
446 h.respondError(c, StatusForTaskError(err), err)
447 return
448 }
449 record, err := manager.RecoverTask(c.Request.Context(), taskID, strings.TrimSpace(req.Note), actor)
450 if err != nil {
451 h.respondError(c, statusForTaskBlockError(err), err)
452 return
453 }
454
455 c.JSON(http.StatusOK, contract.TaskResponse{Task: TaskPayloadFromTask(record)})
456}
457
458func (h *BaseHandlers) taskDetailPayload(ctx context.Context, view *taskpkg.View) (contract.TaskDetailPayload, error) {
459 payload := TaskDetailPayloadFromView(view)

Callers

nothing calls this directly

Calls 11

requireTaskManagerMethod · 0.95
respondErrorMethod · 0.95
transportNameMethod · 0.95
taskActorContextMethod · 0.95
requiredPathIDFunction · 0.85
StatusForTaskErrorFunction · 0.85
decodeOptionalJSONFunction · 0.85
NewTaskValidationErrorFunction · 0.85
statusForTaskBlockErrorFunction · 0.85
TaskPayloadFromTaskFunction · 0.85
RecoverTaskMethod · 0.65

Tested by

no test coverage detected