package queryservice import ( "fmt" "net/http" "queryorchestration/internal/client" "github.com/labstack/echo/v4" "github.com/oapi-codegen/runtime/types" ) func (s *Controllers) CreateClient(ctx echo.Context) error { req := ClientCreate{} if err := ctx.Bind(&req); err != nil { return echo.NewHTTPError(http.StatusBadRequest, err) } id, err := s.svc.Client.Create(ctx.Request().Context(), req.Name) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Unable to create client: %s", err)) } return ctx.JSON(http.StatusCreated, IdMessage{ Id: id, }) } func (s *Controllers) GetClient(ctx echo.Context, id types.UUID) error { client, err := s.svc.Client.Get(ctx.Request().Context(), id) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Unable to get client: %s", err)) } return ctx.JSON(http.StatusOK, DocClient{ Id: client.ID, Name: client.Name, CanSync: client.CanSync, }) } func (s *Controllers) UpdateClient(ctx echo.Context, id types.UUID) error { req := ClientUpdate{} if err := ctx.Bind(&req); err != nil { return echo.NewHTTPError(http.StatusBadRequest, err) } err := s.svc.Client.Update(ctx.Request().Context(), &client.Update{ ID: id, Name: req.Name, CanSync: req.CanSync, }) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Unable to update query: %s", err)) } return ctx.NoContent(http.StatusOK) }