/
wax_boy
/
semaphore_custom
Обзор
Документация
Войти
/
wax_boy
/
semaphore_custom
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
api/projects/workflows.go
60 строк
2 KB
Denis Gukov
Workflows
14 июн 2026, 12:45
Не верифицирован
14 июн 2026, 12:45
f29bb3f
Код
Авторство
О чём код?
package projects import ( "net/http" "github.com/semaphoreui/semaphore/api/helpers" "github.com/semaphoreui/semaphore/db" ) // WorkflowController loads workflow-related entities into the request context // for the workflow route middleware chain. type WorkflowController struct { workflowRepo db.WorkflowManager } func NewWorkflowController(workflowRepo db.WorkflowManager) *WorkflowController { return &WorkflowController{ workflowRepo: workflowRepo, } } func (c *WorkflowController) WorkflowsMiddleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { project := helpers.GetFromContext(r, "project").(db.Project) workflowID, err := helpers.GetIntParam("workflow_id", w, r) if err != nil { return } workflow, err := c.workflowRepo.GetWorkflowTemplate(project.ID, workflowID) if err != nil { helpers.WriteError(w, err) return } r = helpers.SetContextValue(r, "workflow", workflow) next.ServeHTTP(w, r) }) } func (c *WorkflowController) WorkflowRunsMiddleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { project := helpers.GetFromContext(r, "project").(db.Project) workflow := helpers.GetFromContext(r, "workflow").(db.WorkflowTemplate) runID, err := helpers.GetIntParam("run_id", w, r) if err != nil { return } run, err := c.workflowRepo.GetWorkflowRun(project.ID, workflow.ID, runID) if err != nil { helpers.WriteError(w, err) return } r = helpers.SetContextValue(r, "workflow_run", run) next.ServeHTTP(w, r) }) }