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

Method BlockTask

internal/api/core/tasks.go:272–316  ·  view source on GitHub ↗

BlockTask creates one runtime-declared block for a task.

(c *gin.Context)

Source from the content-addressed store, hash-verified

270
271// BlockTask creates one runtime-declared block for a task.
272func (h *BaseHandlers) BlockTask(c *gin.Context) {
273 manager, ok := h.requireTaskManager(c)
274 if !ok {
275 return
276 }
277
278 taskID, err := requiredPathID(c.Param("id"), "task id")
279 if err != nil {
280 h.respondError(c, StatusForTaskError(err), err)
281 return
282 }
283
284 var req contract.CreateTaskBlockRequest
285 if err := c.ShouldBindJSON(&req); err != nil {
286 h.respondError(
287 c,
288 http.StatusBadRequest,
289 NewTaskValidationError(fmt.Errorf("%s: decode block task request: %w", h.transportName(), err)),
290 )
291 return
292 }
293
294 actor, err := h.taskActorContext(c, taskActionBlock)
295 if err != nil {
296 h.respondError(c, StatusForTaskError(err), err)
297 return
298 }
299 claimToken, err := h.taskBlockClaimToken(c, manager, req)
300 if err != nil {
301 h.respondError(c, statusForTaskBlockError(err), err)
302 return
303 }
304 blockReq, err := createTaskBlockFromRequest(taskID, req, claimToken)
305 if err != nil {
306 h.respondError(c, statusForTaskBlockError(err), err)
307 return
308 }
309 block, err := manager.BlockTask(c.Request.Context(), blockReq, actor)
310 if err != nil {
311 h.respondError(c, statusForTaskBlockError(err), err)
312 return
313 }
314
315 c.JSON(http.StatusCreated, contract.TaskBlockResponse{Block: TaskBlockPayloadFromBlock(block)})
316}
317
318func (h *BaseHandlers) taskBlockClaimToken(
319 c *gin.Context,

Callers

nothing calls this directly

Calls 12

requireTaskManagerMethod · 0.95
respondErrorMethod · 0.95
transportNameMethod · 0.95
taskActorContextMethod · 0.95
taskBlockClaimTokenMethod · 0.95
requiredPathIDFunction · 0.85
StatusForTaskErrorFunction · 0.85
NewTaskValidationErrorFunction · 0.85
statusForTaskBlockErrorFunction · 0.85
BlockTaskMethod · 0.65

Tested by

no test coverage detected