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

Method ClaimTaskRun

internal/api/core/tasks.go:1498–1539  ·  view source on GitHub ↗

ClaimTaskRun claims one queued run.

(c *gin.Context)

Source from the content-addressed store, hash-verified

1496
1497// ClaimTaskRun claims one queued run.
1498func (h *BaseHandlers) ClaimTaskRun(c *gin.Context) {
1499 manager, ok := h.requireTaskManager(c)
1500 if !ok {
1501 return
1502 }
1503
1504 runID, err := requiredPathID(c.Param("id"), "run id")
1505 if err != nil {
1506 h.respondError(c, StatusForTaskError(err), err)
1507 return
1508 }
1509
1510 var req contract.ClaimTaskRunRequest
1511 if err := decodeOptionalJSON(c, &req); err != nil {
1512 h.respondError(
1513 c,
1514 http.StatusBadRequest,
1515 NewTaskValidationError(fmt.Errorf("%s: decode claim run request: %w", h.transportName(), err)),
1516 )
1517 return
1518 }
1519
1520 actor, err := h.taskActorContext(c, taskActionClaimRun)
1521 if err != nil {
1522 h.respondError(c, StatusForTaskError(err), err)
1523 return
1524 }
1525
1526 claim, err := claimTaskRunFromRequest(req)
1527 if err != nil {
1528 h.respondError(c, StatusForTaskError(err), err)
1529 return
1530 }
1531
1532 run, err := manager.ClaimRun(c.Request.Context(), runID, claim, actor)
1533 if err != nil {
1534 h.respondError(c, StatusForTaskError(err), err)
1535 return
1536 }
1537
1538 c.JSON(http.StatusOK, contract.TaskRunResponse{Run: TaskRunPayloadFromRun(run)})
1539}
1540
1541// StartTaskRun starts one claimed run.
1542func (h *BaseHandlers) StartTaskRun(c *gin.Context) {

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
TaskRunPayloadFromRunFunction · 0.85
claimTaskRunFromRequestFunction · 0.70
ClaimRunMethod · 0.65

Tested by

no test coverage detected