ClaimTaskRun claims one queued run.
(c *gin.Context)
| 1496 | |
| 1497 | // ClaimTaskRun claims one queued run. |
| 1498 | func (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. |
| 1542 | func (h *BaseHandlers) StartTaskRun(c *gin.Context) { |
nothing calls this directly
no test coverage detected