docs(backend): add swag to jobs
ci-agent / build (push) Failing after 2m56s

This commit is contained in:
2026-04-04 16:50:25 +03:00
parent 9ede6257f8
commit 0660117c07
+29 -18
View File
@@ -2,6 +2,7 @@ package handlers
import (
"fmt"
"net/http"
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/backend/internal/grpcsrv/commander"
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/backend/internal/models"
@@ -18,21 +19,39 @@ func NewJobsHandlers(cmder *commander.Commander, svc *service.ScriptService) Job
return JobsHandlers{cmder: cmder, svc: svc}
}
func (self *JobsHandlers) AddJob(c *gin.Context) {
err := func() error {
type In struct {
Command string `json:"command"`
type AddJobIn struct {
Command string `json:"command" binding:"required"`
InterpreterID int64 `json:"interpreter_id"`
Stdin *string `json:"stdin"`
AID string `json:"agent_id"`
}
var in In
AgentID string `json:"agent_id" binding:"required"`
}
type AddJobOut struct {
ID int64 `json:"id"`
Command []string `json:"command"`
Stdin *string `json:"stdin"`
Stdout string `json:"stdout"`
Stderr string `json:"stderr"`
Status int32 `json:"status"`
}
// AddJob creates and executes a job on a target agent.
// @Summary Create and run a job on an agent
// @Description Sends a command to the specified agent, waits for execution, and returns the result
// @Tags jobs
// @Accept json
// @Produce json
// @Param body body AddJobIn true "Job request"
// @Success 201 {object} AddJobOut
// @Router /jobs [post]
func (self *JobsHandlers) AddJob(c *gin.Context) {
err := func() error {
var in AddJobIn
if err := c.Bind(&in); err != nil {
return err
}
agent, ok := self.cmder.GetAgent(in.AID)
agent, ok := self.cmder.GetAgent(in.AgentID)
if !ok {
c.Status(404)
c.Status(http.StatusNotFound)
return fmt.Errorf("agent not found")
}
@@ -58,15 +77,7 @@ func (self *JobsHandlers) AddJob(c *gin.Context) {
if err != nil {
return err
}
type Out struct {
ID int64 `json:"id"`
Command []string `json:"command"`
Stdin *string `json:"stdin"`
Stdout string `json:"stdout"`
Stderr string `json:"stderr"`
Status int32 `json:"status"`
}
c.JSON(201, Out{
c.JSON(http.StatusCreated, AddJobOut{
ID: job.ID,
Command: job.Command,
Stdin: job.Stdin,