handlers

package
v1.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 22, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseHandler

type BaseHandler struct {
	// contains filtered or unexported fields
}

func NewBaseHandler

func NewBaseHandler(mode string, log *logrus.Logger, projectService services.ProjectService) *BaseHandler

func (*BaseHandler) ErrorResponse added in v1.0.6

func (h *BaseHandler) ErrorResponse(c echo.Context, statusCode int, message string, err error) error

ErrorResponse takes a response status code and arbitrary data and writes a json response to the client. It depends on the mode whether the error is included in the response.

func (*BaseHandler) GetProject added in v1.0.6

func (h *BaseHandler) GetProject(c echo.Context) error

GetProject godoc @Summary get project by ProjectId @Tags projects @Accept json @Produce application/json @Param projectId path string true "ProjectId" @Security BearerAuth @Success 200 {object} Response{data=models.Project} @Failure 400 {object} ErrorResponse @Failure 401 {object} ErrorResponse @Failure 403 {object} ErrorResponse @Failure 404 {object} ErrorResponse @Failure 422 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /v1/projects/{projectId} [get]

func (*BaseHandler) GetProjectList added in v1.0.6

func (h *BaseHandler) GetProjectList(c echo.Context) (err error)

GetProjectList godoc @Summary get all projects. Result depends on user role @Tags projects @Accept json @Produce application/json @Security BearerAuth @Param userUuid query string false "UserUuid" @Success 200 {object} Response{data=[]models.Project} @Failure 401 {object} ErrorResponse @Failure 404 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /v1/projects [get]

func (*BaseHandler) ProjectCreate

func (h *BaseHandler) ProjectCreate(c echo.Context) error

ProjectCreate godoc @Summary create project @Tags projects @Accept json @Produce application/json @Param comment body CreateProjectRequest true "raw request body" @Security BearerAuth @Success 201 {object} Response{data=models.Project} @Failure 400 {object} ErrorResponse @Failure 401 {object} ErrorResponse @Failure 403 {object} ErrorResponse @Failure 422 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /v1/projects [post]

func (*BaseHandler) ProjectDelete

func (h *BaseHandler) ProjectDelete(c echo.Context) error

ProjectDelete godoc @Summary delete project by ProjectId @Tags projects @Accept json @Produce application/json @Param projectId path string true "ProjectId" @Security BearerAuth @Success 200 {object} Response @Failure 400 {object} ErrorResponse @Failure 401 {object} ErrorResponse @Failure 403 {object} ErrorResponse @Failure 404 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /v1/projects/{projectId} [delete]

func (*BaseHandler) ProjectUpdate

func (h *BaseHandler) ProjectUpdate(c echo.Context) error

ProjectUpdate godoc @Summary update project by ProjectId @Tags projects @Accept json @Produce application/json @Param projectId path string true "ProjectId" @Param comment body UpdateProjectRequest true "raw request body" @Security BearerAuth @Success 200 {object} Response{data=models.Project} @Failure 400 {object} ErrorResponse @Failure 401 {object} ErrorResponse @Failure 403 {object} ErrorResponse @Failure 404 {object} ErrorResponse @Failure 409 {object} ErrorResponse @Failure 422 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /v1/projects/{projectId} [patch]

func (*BaseHandler) SuccessResponse added in v1.0.6

func (h *BaseHandler) SuccessResponse(c echo.Context, statusCode int, message string, data any) error

SuccessResponse takes a response status code and arbitrary data and writes a json response to the client

func (*BaseHandler) ValidateToken added in v1.0.6

func (h *BaseHandler) ValidateToken(c echo.Context) error

ValidateToken godoc @Summary validate token @Tags token @Accept json @Produce application/json @Security X-Api-Key @Success 204 {object} Response @Failure 401 {object} ErrorResponse @Router /v1/token/validate [get]

type CreateProjectRequest added in v1.0.6

type CreateProjectRequest struct {
	UserUuid string `json:"userUuid" validate:"required,number" example:"66"`
	Name     string `json:"name" validate:"required,min=3,max=128" example:"bla-bla-bla.com"`
}

type ErrorResponse

type ErrorResponse struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
	Error   any    `json:"error,omitempty"`
}

ErrorResponse is the type used for sending JSON around

type Response

type Response struct {
	Message string `json:"message"`
	Data    any    `json:"data,omitempty"`
}

Response is the type used for sending JSON around

type UpdateProjectRequest added in v1.0.6

type UpdateProjectRequest struct {
	Name string `json:"name" validate:"required,min=3,max=128" example:"bla-bla-bla.com"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL