mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-08-21 20:18:42 +02:00
168 lines
4.1 KiB
Go
168 lines
4.1 KiB
Go
|
// Package v1 provides primitives to interact with the openapi HTTP API.
|
||
|
//
|
||
|
// Code generated by github.com/deepmap/oapi-codegen version v1.12.4 DO NOT EDIT.
|
||
|
package v1
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"net/http"
|
||
|
|
||
|
"github.com/go-chi/chi/v5"
|
||
|
)
|
||
|
|
||
|
// Version defines model for Version.
|
||
|
type Version struct {
|
||
|
Version *string `json:"version,omitempty"`
|
||
|
}
|
||
|
|
||
|
// ServerInterface represents all server handlers.
|
||
|
type ServerInterface interface {
|
||
|
// API version
|
||
|
// (GET /version)
|
||
|
GetVersion(w http.ResponseWriter, r *http.Request)
|
||
|
}
|
||
|
|
||
|
// ServerInterfaceWrapper converts contexts to parameters.
|
||
|
type ServerInterfaceWrapper struct {
|
||
|
Handler ServerInterface
|
||
|
HandlerMiddlewares []MiddlewareFunc
|
||
|
ErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error)
|
||
|
}
|
||
|
|
||
|
type MiddlewareFunc func(http.Handler) http.Handler
|
||
|
|
||
|
// GetVersion operation middleware
|
||
|
func (siw *ServerInterfaceWrapper) GetVersion(w http.ResponseWriter, r *http.Request) {
|
||
|
ctx := r.Context()
|
||
|
|
||
|
var handler http.Handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||
|
siw.Handler.GetVersion(w, r)
|
||
|
})
|
||
|
|
||
|
for _, middleware := range siw.HandlerMiddlewares {
|
||
|
handler = middleware(handler)
|
||
|
}
|
||
|
|
||
|
handler.ServeHTTP(w, r.WithContext(ctx))
|
||
|
}
|
||
|
|
||
|
type UnescapedCookieParamError struct {
|
||
|
ParamName string
|
||
|
Err error
|
||
|
}
|
||
|
|
||
|
func (e *UnescapedCookieParamError) Error() string {
|
||
|
return fmt.Sprintf("error unescaping cookie parameter '%s'", e.ParamName)
|
||
|
}
|
||
|
|
||
|
func (e *UnescapedCookieParamError) Unwrap() error {
|
||
|
return e.Err
|
||
|
}
|
||
|
|
||
|
type UnmarshallingParamError struct {
|
||
|
ParamName string
|
||
|
Err error
|
||
|
}
|
||
|
|
||
|
func (e *UnmarshallingParamError) Error() string {
|
||
|
return fmt.Sprintf("Error unmarshalling parameter %s as JSON: %s", e.ParamName, e.Err.Error())
|
||
|
}
|
||
|
|
||
|
func (e *UnmarshallingParamError) Unwrap() error {
|
||
|
return e.Err
|
||
|
}
|
||
|
|
||
|
type RequiredParamError struct {
|
||
|
ParamName string
|
||
|
}
|
||
|
|
||
|
func (e *RequiredParamError) Error() string {
|
||
|
return fmt.Sprintf("Query argument %s is required, but not found", e.ParamName)
|
||
|
}
|
||
|
|
||
|
type RequiredHeaderError struct {
|
||
|
ParamName string
|
||
|
Err error
|
||
|
}
|
||
|
|
||
|
func (e *RequiredHeaderError) Error() string {
|
||
|
return fmt.Sprintf("Header parameter %s is required, but not found", e.ParamName)
|
||
|
}
|
||
|
|
||
|
func (e *RequiredHeaderError) Unwrap() error {
|
||
|
return e.Err
|
||
|
}
|
||
|
|
||
|
type InvalidParamFormatError struct {
|
||
|
ParamName string
|
||
|
Err error
|
||
|
}
|
||
|
|
||
|
func (e *InvalidParamFormatError) Error() string {
|
||
|
return fmt.Sprintf("Invalid format for parameter %s: %s", e.ParamName, e.Err.Error())
|
||
|
}
|
||
|
|
||
|
func (e *InvalidParamFormatError) Unwrap() error {
|
||
|
return e.Err
|
||
|
}
|
||
|
|
||
|
type TooManyValuesForParamError struct {
|
||
|
ParamName string
|
||
|
Count int
|
||
|
}
|
||
|
|
||
|
func (e *TooManyValuesForParamError) Error() string {
|
||
|
return fmt.Sprintf("Expected one value for %s, got %d", e.ParamName, e.Count)
|
||
|
}
|
||
|
|
||
|
// Handler creates http.Handler with routing matching OpenAPI spec.
|
||
|
func Handler(si ServerInterface) http.Handler {
|
||
|
return HandlerWithOptions(si, ChiServerOptions{})
|
||
|
}
|
||
|
|
||
|
type ChiServerOptions struct {
|
||
|
BaseURL string
|
||
|
BaseRouter chi.Router
|
||
|
Middlewares []MiddlewareFunc
|
||
|
ErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error)
|
||
|
}
|
||
|
|
||
|
// HandlerFromMux creates http.Handler with routing matching OpenAPI spec based on the provided mux.
|
||
|
func HandlerFromMux(si ServerInterface, r chi.Router) http.Handler {
|
||
|
return HandlerWithOptions(si, ChiServerOptions{
|
||
|
BaseRouter: r,
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func HandlerFromMuxWithBaseURL(si ServerInterface, r chi.Router, baseURL string) http.Handler {
|
||
|
return HandlerWithOptions(si, ChiServerOptions{
|
||
|
BaseURL: baseURL,
|
||
|
BaseRouter: r,
|
||
|
})
|
||
|
}
|
||
|
|
||
|
// HandlerWithOptions creates http.Handler with additional options
|
||
|
func HandlerWithOptions(si ServerInterface, options ChiServerOptions) http.Handler {
|
||
|
r := options.BaseRouter
|
||
|
|
||
|
if r == nil {
|
||
|
r = chi.NewRouter()
|
||
|
}
|
||
|
if options.ErrorHandlerFunc == nil {
|
||
|
options.ErrorHandlerFunc = func(w http.ResponseWriter, r *http.Request, err error) {
|
||
|
http.Error(w, err.Error(), http.StatusBadRequest)
|
||
|
}
|
||
|
}
|
||
|
wrapper := ServerInterfaceWrapper{
|
||
|
Handler: si,
|
||
|
HandlerMiddlewares: options.Middlewares,
|
||
|
ErrorHandlerFunc: options.ErrorHandlerFunc,
|
||
|
}
|
||
|
|
||
|
r.Group(func(r chi.Router) {
|
||
|
r.Get(options.BaseURL+"/version", wrapper.GetVersion)
|
||
|
})
|
||
|
|
||
|
return r
|
||
|
}
|