package queryservice import ( "fmt" "net/http" "queryorchestration/internal/job" "github.com/labstack/echo/v4" "github.com/oapi-codegen/runtime/types" ) func (s *Controllers) CreateJob(ctx echo.Context) error { req := JobCreate{} if err := ctx.Bind(&req); err != nil { return echo.NewHTTPError(http.StatusBadRequest, err) } id, err := s.svc.Job.Create(ctx.Request().Context(), req.ClientId) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Unable to create job: %s", err)) } return ctx.JSON(http.StatusCreated, IdMessage{ Id: id, }) } func (s *Controllers) GetJob(ctx echo.Context, id types.UUID) error { job, err := s.svc.Job.Get(ctx.Request().Context(), id) if err != nil { return echo.NewHTTPError(http.StatusNotFound, fmt.Sprintf("Unable to find job: %s", err)) } return ctx.JSON(http.StatusOK, Job{ Id: job.ID, ClientId: job.ClientID, CanSync: job.CanSync, }) } func (s *Controllers) UpdateJob(ctx echo.Context, id types.UUID) error { req := JobUpdate{} if err := ctx.Bind(&req); err != nil { return echo.NewHTTPError(http.StatusBadRequest, err) } err := s.svc.Job.Update(ctx.Request().Context(), &job.Update{ ID: id, CanSync: req.CanSync, }) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Unable to update job: %s", err)) } return ctx.NoContent(http.StatusOK) }