portfolio/api/docs/openAPI/openApiProjectEndpoints.go
2024-07-04 12:54:47 +02:00

53 lines
2.0 KiB
Go

package main
import (
"github.com/a-h/respond"
"github.com/a-h/rest"
"net/http"
"portfolio/api/types"
)
func RegisterProjectEndpoints() {
api.Post("/project").
HasDescription("Create project").
HasResponseModel(http.StatusOK, rest.ModelOf[string]()).
HasResponseModel(http.StatusInternalServerError, rest.ModelOf[respond.Error]()).
HasResponseModel(http.StatusUnprocessableEntity, rest.ModelOf[respond.Error]()).
HasResponseModel(http.StatusUnauthorized, rest.ModelOf[string]())
api.Patch("/project/{id}").
HasPathParameter("id", rest.PathParam{
Description: "id of the project",
Regexp: `\d+`,
}).
HasDescription("Update project by id").
HasRequestModel(rest.ModelOf[types.Project]()).
HasResponseModel(http.StatusOK, rest.ModelOf[string]()).
HasResponseModel(http.StatusBadRequest, rest.ModelOf[string]()).
HasResponseModel(http.StatusInternalServerError, rest.ModelOf[respond.Error]()).
HasResponseModel(http.StatusUnprocessableEntity, rest.ModelOf[respond.Error]()).
HasResponseModel(http.StatusUnauthorized, rest.ModelOf[string]())
api.Patch("/projects").
HasDescription("Update projects WIP").
HasResponseModel(http.StatusOK, rest.ModelOf[[]types.Project]()).
HasResponseModel(http.StatusInternalServerError, rest.ModelOf[respond.Error]()).
HasResponseModel(http.StatusUnprocessableEntity, rest.ModelOf[respond.Error]()).
HasResponseModel(http.StatusUnauthorized, rest.ModelOf[string]())
api.Get("/project/{id}").
HasPathParameter("id", rest.PathParam{
Description: "id of the project",
Regexp: `\d+`,
}).
HasDescription("Get project by id").
HasResponseModel(http.StatusOK, rest.ModelOf[types.Project]()).
HasResponseModel(http.StatusBadRequest, rest.ModelOf[string]()).
HasResponseModel(http.StatusUnprocessableEntity, rest.ModelOf[respond.Error]())
api.Get("/projects").
HasDescription("Get projects").
HasResponseModel(http.StatusOK, rest.ModelOf[[]types.Project]()).
HasResponseModel(http.StatusUnprocessableEntity, rest.ModelOf[respond.Error]())
}