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

Method AddTaskDependency

internal/api/core/tasks.go:882–933  ·  view source on GitHub ↗

AddTaskDependency adds one blocking dependency edge.

(c *gin.Context)

Source from the content-addressed store, hash-verified

880
881// AddTaskDependency adds one blocking dependency edge.
882func (h *BaseHandlers) AddTaskDependency(c *gin.Context) {
883 manager, ok := h.requireTaskManager(c)
884 if !ok {
885 return
886 }
887
888 taskID, err := requiredPathID(c.Param("id"), "task id")
889 if err != nil {
890 h.respondError(c, StatusForTaskError(err), err)
891 return
892 }
893
894 var req contract.AddTaskDependencyRequest
895 if err := c.ShouldBindJSON(&req); err != nil {
896 h.respondError(
897 c,
898 http.StatusBadRequest,
899 NewTaskValidationError(fmt.Errorf("%s: decode add dependency request: %w", h.transportName(), err)),
900 )
901 return
902 }
903
904 actor, err := h.taskActorContext(c, taskActionAddDependency)
905 if err != nil {
906 h.respondError(c, StatusForTaskError(err), err)
907 return
908 }
909
910 spec, err := addTaskDependencyFromRequest(taskID, req)
911 if err != nil {
912 h.respondError(c, StatusForTaskError(err), err)
913 return
914 }
915
916 if err := manager.AddDependency(c.Request.Context(), spec, actor); err != nil {
917 h.respondError(c, StatusForTaskError(err), err)
918 return
919 }
920
921 view, err := manager.GetTask(c.Request.Context(), taskID, actor)
922 if err != nil {
923 h.respondError(c, StatusForTaskError(err), err)
924 return
925 }
926
927 payload, err := h.taskDetailPayload(c.Request.Context(), view)
928 if err != nil {
929 h.respondError(c, StatusForTaskError(err), err)
930 return
931 }
932 c.JSON(http.StatusOK, contract.TaskDetailResponse{Task: payload})
933}
934
935// RemoveTaskDependency removes one blocking dependency edge.
936func (h *BaseHandlers) RemoveTaskDependency(c *gin.Context) {

Callers

nothing calls this directly

Calls 11

requireTaskManagerMethod · 0.95
respondErrorMethod · 0.95
transportNameMethod · 0.95
taskActorContextMethod · 0.95
taskDetailPayloadMethod · 0.95
requiredPathIDFunction · 0.85
StatusForTaskErrorFunction · 0.85
NewTaskValidationErrorFunction · 0.85
AddDependencyMethod · 0.65
GetTaskMethod · 0.65

Tested by

no test coverage detected