// Package api provides primitives to interact with the openapi HTTP API. // // Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.5.0 DO NOT EDIT. package api import ( "context" "encoding/json" "fmt" "net/http" "github.com/gin-gonic/gin" "github.com/oapi-codegen/runtime" strictgin "github.com/oapi-codegen/runtime/strictmiddleware/gin" ) // Review defines model for Review. type Review map[string]interface{} // Tag defines model for Tag. type Tag map[string]interface{} // Title defines model for Title. type Title map[string]interface{} // User defines model for User. type User map[string]interface{} // UserTitle defines model for UserTitle. type UserTitle map[string]interface{} // GetMediaParams defines parameters for GetMedia. type GetMediaParams struct { ImageId string `form:"image_id" json:"image_id"` } // GetTagsParams defines parameters for GetTags. type GetTagsParams struct { Limit *int `form:"limit,omitempty" json:"limit,omitempty"` Offset *int `form:"offset,omitempty" json:"offset,omitempty"` Fields *string `form:"fields,omitempty" json:"fields,omitempty"` } // GetTitleParams defines parameters for GetTitle. type GetTitleParams struct { Query *string `form:"query,omitempty" json:"query,omitempty"` Limit *int `form:"limit,omitempty" json:"limit,omitempty"` Offset *int `form:"offset,omitempty" json:"offset,omitempty"` Fields *string `form:"fields,omitempty" json:"fields,omitempty"` } // GetTitleTitleIdParams defines parameters for GetTitleTitleId. type GetTitleTitleIdParams struct { Fields *string `form:"fields,omitempty" json:"fields,omitempty"` } // GetTitleTitleIdReviewsParams defines parameters for GetTitleTitleIdReviews. type GetTitleTitleIdReviewsParams struct { Limit *int `form:"limit,omitempty" json:"limit,omitempty"` Offset *int `form:"offset,omitempty" json:"offset,omitempty"` } // GetUsersParams defines parameters for GetUsers. type GetUsersParams struct { Query *string `form:"query,omitempty" json:"query,omitempty"` Fields *string `form:"fields,omitempty" json:"fields,omitempty"` } // GetUsersUserIdParams defines parameters for GetUsersUserId. type GetUsersUserIdParams struct { Fields *string `form:"fields,omitempty" json:"fields,omitempty"` } // GetUsersUserIdReviewsParams defines parameters for GetUsersUserIdReviews. type GetUsersUserIdReviewsParams struct { Limit *int `form:"limit,omitempty" json:"limit,omitempty"` Offset *int `form:"offset,omitempty" json:"offset,omitempty"` } // DeleteUsersUserIdTitlesParams defines parameters for DeleteUsersUserIdTitles. type DeleteUsersUserIdTitlesParams struct { TitleId *string `form:"title_id,omitempty" json:"title_id,omitempty"` } // GetUsersUserIdTitlesParams defines parameters for GetUsersUserIdTitles. type GetUsersUserIdTitlesParams struct { Query *string `form:"query,omitempty" json:"query,omitempty"` Limit *int `form:"limit,omitempty" json:"limit,omitempty"` Offset *int `form:"offset,omitempty" json:"offset,omitempty"` Fields *string `form:"fields,omitempty" json:"fields,omitempty"` } // PostUsersUserIdTitlesJSONBody defines parameters for PostUsersUserIdTitles. type PostUsersUserIdTitlesJSONBody struct { Status *string `json:"status,omitempty"` TitleId *string `json:"title_id,omitempty"` } // PostReviewsJSONRequestBody defines body for PostReviews for application/json ContentType. type PostReviewsJSONRequestBody = Review // PatchReviewsReviewIdJSONRequestBody defines body for PatchReviewsReviewId for application/json ContentType. type PatchReviewsReviewIdJSONRequestBody = Review // PatchTitleTitleIdJSONRequestBody defines body for PatchTitleTitleId for application/json ContentType. type PatchTitleTitleIdJSONRequestBody = Title // PostUsersJSONRequestBody defines body for PostUsers for application/json ContentType. type PostUsersJSONRequestBody = User // PatchUsersUserIdJSONRequestBody defines body for PatchUsersUserId for application/json ContentType. type PatchUsersUserIdJSONRequestBody = User // PatchUsersUserIdTitlesJSONRequestBody defines body for PatchUsersUserIdTitles for application/json ContentType. type PatchUsersUserIdTitlesJSONRequestBody = UserTitle // PostUsersUserIdTitlesJSONRequestBody defines body for PostUsersUserIdTitles for application/json ContentType. type PostUsersUserIdTitlesJSONRequestBody PostUsersUserIdTitlesJSONBody // ServerInterface represents all server handlers. type ServerInterface interface { // Get image path // (GET /media) GetMedia(c *gin.Context, params GetMediaParams) // Upload image // (POST /media) PostMedia(c *gin.Context) // Add review // (POST /reviews) PostReviews(c *gin.Context) // Delete review // (DELETE /reviews/{review_id}) DeleteReviewsReviewId(c *gin.Context, reviewId string) // Update review // (PATCH /reviews/{review_id}) PatchReviewsReviewId(c *gin.Context, reviewId string) // Get tags // (GET /tags) GetTags(c *gin.Context, params GetTagsParams) // Get titles // (GET /title) GetTitle(c *gin.Context, params GetTitleParams) // Get title description // (GET /title/{title_id}) GetTitleTitleId(c *gin.Context, titleId string, params GetTitleTitleIdParams) // Update title info // (PATCH /title/{title_id}) PatchTitleTitleId(c *gin.Context, titleId string) // Get title reviews // (GET /title/{title_id}/reviews) GetTitleTitleIdReviews(c *gin.Context, titleId string, params GetTitleTitleIdReviewsParams) // Search user // (GET /users) GetUsers(c *gin.Context, params GetUsersParams) // Add new user // (POST /users) PostUsers(c *gin.Context) // Delete user // (DELETE /users/{user_id}) DeleteUsersUserId(c *gin.Context, userId string) // Get user info // (GET /users/{user_id}) GetUsersUserId(c *gin.Context, userId string, params GetUsersUserIdParams) // Update user // (PATCH /users/{user_id}) PatchUsersUserId(c *gin.Context, userId string) // Get user reviews // (GET /users/{user_id}/reviews) GetUsersUserIdReviews(c *gin.Context, userId string, params GetUsersUserIdReviewsParams) // Delete user title // (DELETE /users/{user_id}/titles) DeleteUsersUserIdTitles(c *gin.Context, userId string, params DeleteUsersUserIdTitlesParams) // Get user titles // (GET /users/{user_id}/titles) GetUsersUserIdTitles(c *gin.Context, userId string, params GetUsersUserIdTitlesParams) // Update user title // (PATCH /users/{user_id}/titles) PatchUsersUserIdTitles(c *gin.Context, userId string) // Add user title // (POST /users/{user_id}/titles) PostUsersUserIdTitles(c *gin.Context, userId string) } // ServerInterfaceWrapper converts contexts to parameters. type ServerInterfaceWrapper struct { Handler ServerInterface HandlerMiddlewares []MiddlewareFunc ErrorHandler func(*gin.Context, error, int) } type MiddlewareFunc func(c *gin.Context) // GetMedia operation middleware func (siw *ServerInterfaceWrapper) GetMedia(c *gin.Context) { var err error // Parameter object where we will unmarshal all parameters from the context var params GetMediaParams // ------------- Required query parameter "image_id" ------------- if paramValue := c.Query("image_id"); paramValue != "" { } else { siw.ErrorHandler(c, fmt.Errorf("Query argument image_id is required, but not found"), http.StatusBadRequest) return } err = runtime.BindQueryParameter("form", true, true, "image_id", c.Request.URL.Query(), ¶ms.ImageId) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter image_id: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.GetMedia(c, params) } // PostMedia operation middleware func (siw *ServerInterfaceWrapper) PostMedia(c *gin.Context) { for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.PostMedia(c) } // PostReviews operation middleware func (siw *ServerInterfaceWrapper) PostReviews(c *gin.Context) { for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.PostReviews(c) } // DeleteReviewsReviewId operation middleware func (siw *ServerInterfaceWrapper) DeleteReviewsReviewId(c *gin.Context) { var err error // ------------- Path parameter "review_id" ------------- var reviewId string err = runtime.BindStyledParameterWithOptions("simple", "review_id", c.Param("review_id"), &reviewId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter review_id: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.DeleteReviewsReviewId(c, reviewId) } // PatchReviewsReviewId operation middleware func (siw *ServerInterfaceWrapper) PatchReviewsReviewId(c *gin.Context) { var err error // ------------- Path parameter "review_id" ------------- var reviewId string err = runtime.BindStyledParameterWithOptions("simple", "review_id", c.Param("review_id"), &reviewId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter review_id: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.PatchReviewsReviewId(c, reviewId) } // GetTags operation middleware func (siw *ServerInterfaceWrapper) GetTags(c *gin.Context) { var err error // Parameter object where we will unmarshal all parameters from the context var params GetTagsParams // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", c.Request.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter limit: %w", err), http.StatusBadRequest) return } // ------------- Optional query parameter "offset" ------------- err = runtime.BindQueryParameter("form", true, false, "offset", c.Request.URL.Query(), ¶ms.Offset) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter offset: %w", err), http.StatusBadRequest) return } // ------------- Optional query parameter "fields" ------------- err = runtime.BindQueryParameter("form", true, false, "fields", c.Request.URL.Query(), ¶ms.Fields) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter fields: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.GetTags(c, params) } // GetTitle operation middleware func (siw *ServerInterfaceWrapper) GetTitle(c *gin.Context) { var err error // Parameter object where we will unmarshal all parameters from the context var params GetTitleParams // ------------- Optional query parameter "query" ------------- err = runtime.BindQueryParameter("form", true, false, "query", c.Request.URL.Query(), ¶ms.Query) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter query: %w", err), http.StatusBadRequest) return } // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", c.Request.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter limit: %w", err), http.StatusBadRequest) return } // ------------- Optional query parameter "offset" ------------- err = runtime.BindQueryParameter("form", true, false, "offset", c.Request.URL.Query(), ¶ms.Offset) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter offset: %w", err), http.StatusBadRequest) return } // ------------- Optional query parameter "fields" ------------- err = runtime.BindQueryParameter("form", true, false, "fields", c.Request.URL.Query(), ¶ms.Fields) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter fields: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.GetTitle(c, params) } // GetTitleTitleId operation middleware func (siw *ServerInterfaceWrapper) GetTitleTitleId(c *gin.Context) { var err error // ------------- Path parameter "title_id" ------------- var titleId string err = runtime.BindStyledParameterWithOptions("simple", "title_id", c.Param("title_id"), &titleId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter title_id: %w", err), http.StatusBadRequest) return } // Parameter object where we will unmarshal all parameters from the context var params GetTitleTitleIdParams // ------------- Optional query parameter "fields" ------------- err = runtime.BindQueryParameter("form", true, false, "fields", c.Request.URL.Query(), ¶ms.Fields) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter fields: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.GetTitleTitleId(c, titleId, params) } // PatchTitleTitleId operation middleware func (siw *ServerInterfaceWrapper) PatchTitleTitleId(c *gin.Context) { var err error // ------------- Path parameter "title_id" ------------- var titleId string err = runtime.BindStyledParameterWithOptions("simple", "title_id", c.Param("title_id"), &titleId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter title_id: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.PatchTitleTitleId(c, titleId) } // GetTitleTitleIdReviews operation middleware func (siw *ServerInterfaceWrapper) GetTitleTitleIdReviews(c *gin.Context) { var err error // ------------- Path parameter "title_id" ------------- var titleId string err = runtime.BindStyledParameterWithOptions("simple", "title_id", c.Param("title_id"), &titleId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter title_id: %w", err), http.StatusBadRequest) return } // Parameter object where we will unmarshal all parameters from the context var params GetTitleTitleIdReviewsParams // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", c.Request.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter limit: %w", err), http.StatusBadRequest) return } // ------------- Optional query parameter "offset" ------------- err = runtime.BindQueryParameter("form", true, false, "offset", c.Request.URL.Query(), ¶ms.Offset) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter offset: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.GetTitleTitleIdReviews(c, titleId, params) } // GetUsers operation middleware func (siw *ServerInterfaceWrapper) GetUsers(c *gin.Context) { var err error // Parameter object where we will unmarshal all parameters from the context var params GetUsersParams // ------------- Optional query parameter "query" ------------- err = runtime.BindQueryParameter("form", true, false, "query", c.Request.URL.Query(), ¶ms.Query) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter query: %w", err), http.StatusBadRequest) return } // ------------- Optional query parameter "fields" ------------- err = runtime.BindQueryParameter("form", true, false, "fields", c.Request.URL.Query(), ¶ms.Fields) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter fields: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.GetUsers(c, params) } // PostUsers operation middleware func (siw *ServerInterfaceWrapper) PostUsers(c *gin.Context) { for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.PostUsers(c) } // DeleteUsersUserId operation middleware func (siw *ServerInterfaceWrapper) DeleteUsersUserId(c *gin.Context) { var err error // ------------- Path parameter "user_id" ------------- var userId string err = runtime.BindStyledParameterWithOptions("simple", "user_id", c.Param("user_id"), &userId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter user_id: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.DeleteUsersUserId(c, userId) } // GetUsersUserId operation middleware func (siw *ServerInterfaceWrapper) GetUsersUserId(c *gin.Context) { var err error // ------------- Path parameter "user_id" ------------- var userId string err = runtime.BindStyledParameterWithOptions("simple", "user_id", c.Param("user_id"), &userId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter user_id: %w", err), http.StatusBadRequest) return } // Parameter object where we will unmarshal all parameters from the context var params GetUsersUserIdParams // ------------- Optional query parameter "fields" ------------- err = runtime.BindQueryParameter("form", true, false, "fields", c.Request.URL.Query(), ¶ms.Fields) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter fields: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.GetUsersUserId(c, userId, params) } // PatchUsersUserId operation middleware func (siw *ServerInterfaceWrapper) PatchUsersUserId(c *gin.Context) { var err error // ------------- Path parameter "user_id" ------------- var userId string err = runtime.BindStyledParameterWithOptions("simple", "user_id", c.Param("user_id"), &userId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter user_id: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.PatchUsersUserId(c, userId) } // GetUsersUserIdReviews operation middleware func (siw *ServerInterfaceWrapper) GetUsersUserIdReviews(c *gin.Context) { var err error // ------------- Path parameter "user_id" ------------- var userId string err = runtime.BindStyledParameterWithOptions("simple", "user_id", c.Param("user_id"), &userId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter user_id: %w", err), http.StatusBadRequest) return } // Parameter object where we will unmarshal all parameters from the context var params GetUsersUserIdReviewsParams // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", c.Request.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter limit: %w", err), http.StatusBadRequest) return } // ------------- Optional query parameter "offset" ------------- err = runtime.BindQueryParameter("form", true, false, "offset", c.Request.URL.Query(), ¶ms.Offset) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter offset: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.GetUsersUserIdReviews(c, userId, params) } // DeleteUsersUserIdTitles operation middleware func (siw *ServerInterfaceWrapper) DeleteUsersUserIdTitles(c *gin.Context) { var err error // ------------- Path parameter "user_id" ------------- var userId string err = runtime.BindStyledParameterWithOptions("simple", "user_id", c.Param("user_id"), &userId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter user_id: %w", err), http.StatusBadRequest) return } // Parameter object where we will unmarshal all parameters from the context var params DeleteUsersUserIdTitlesParams // ------------- Optional query parameter "title_id" ------------- err = runtime.BindQueryParameter("form", true, false, "title_id", c.Request.URL.Query(), ¶ms.TitleId) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter title_id: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.DeleteUsersUserIdTitles(c, userId, params) } // GetUsersUserIdTitles operation middleware func (siw *ServerInterfaceWrapper) GetUsersUserIdTitles(c *gin.Context) { var err error // ------------- Path parameter "user_id" ------------- var userId string err = runtime.BindStyledParameterWithOptions("simple", "user_id", c.Param("user_id"), &userId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter user_id: %w", err), http.StatusBadRequest) return } // Parameter object where we will unmarshal all parameters from the context var params GetUsersUserIdTitlesParams // ------------- Optional query parameter "query" ------------- err = runtime.BindQueryParameter("form", true, false, "query", c.Request.URL.Query(), ¶ms.Query) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter query: %w", err), http.StatusBadRequest) return } // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", c.Request.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter limit: %w", err), http.StatusBadRequest) return } // ------------- Optional query parameter "offset" ------------- err = runtime.BindQueryParameter("form", true, false, "offset", c.Request.URL.Query(), ¶ms.Offset) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter offset: %w", err), http.StatusBadRequest) return } // ------------- Optional query parameter "fields" ------------- err = runtime.BindQueryParameter("form", true, false, "fields", c.Request.URL.Query(), ¶ms.Fields) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter fields: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.GetUsersUserIdTitles(c, userId, params) } // PatchUsersUserIdTitles operation middleware func (siw *ServerInterfaceWrapper) PatchUsersUserIdTitles(c *gin.Context) { var err error // ------------- Path parameter "user_id" ------------- var userId string err = runtime.BindStyledParameterWithOptions("simple", "user_id", c.Param("user_id"), &userId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter user_id: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.PatchUsersUserIdTitles(c, userId) } // PostUsersUserIdTitles operation middleware func (siw *ServerInterfaceWrapper) PostUsersUserIdTitles(c *gin.Context) { var err error // ------------- Path parameter "user_id" ------------- var userId string err = runtime.BindStyledParameterWithOptions("simple", "user_id", c.Param("user_id"), &userId, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter user_id: %w", err), http.StatusBadRequest) return } for _, middleware := range siw.HandlerMiddlewares { middleware(c) if c.IsAborted() { return } } siw.Handler.PostUsersUserIdTitles(c, userId) } // GinServerOptions provides options for the Gin server. type GinServerOptions struct { BaseURL string Middlewares []MiddlewareFunc ErrorHandler func(*gin.Context, error, int) } // RegisterHandlers creates http.Handler with routing matching OpenAPI spec. func RegisterHandlers(router gin.IRouter, si ServerInterface) { RegisterHandlersWithOptions(router, si, GinServerOptions{}) } // RegisterHandlersWithOptions creates http.Handler with additional options func RegisterHandlersWithOptions(router gin.IRouter, si ServerInterface, options GinServerOptions) { errorHandler := options.ErrorHandler if errorHandler == nil { errorHandler = func(c *gin.Context, err error, statusCode int) { c.JSON(statusCode, gin.H{"msg": err.Error()}) } } wrapper := ServerInterfaceWrapper{ Handler: si, HandlerMiddlewares: options.Middlewares, ErrorHandler: errorHandler, } router.GET(options.BaseURL+"/media", wrapper.GetMedia) router.POST(options.BaseURL+"/media", wrapper.PostMedia) router.POST(options.BaseURL+"/reviews", wrapper.PostReviews) router.DELETE(options.BaseURL+"/reviews/:review_id", wrapper.DeleteReviewsReviewId) router.PATCH(options.BaseURL+"/reviews/:review_id", wrapper.PatchReviewsReviewId) router.GET(options.BaseURL+"/tags", wrapper.GetTags) router.GET(options.BaseURL+"/title", wrapper.GetTitle) router.GET(options.BaseURL+"/title/:title_id", wrapper.GetTitleTitleId) router.PATCH(options.BaseURL+"/title/:title_id", wrapper.PatchTitleTitleId) router.GET(options.BaseURL+"/title/:title_id/reviews", wrapper.GetTitleTitleIdReviews) router.GET(options.BaseURL+"/users", wrapper.GetUsers) router.POST(options.BaseURL+"/users", wrapper.PostUsers) router.DELETE(options.BaseURL+"/users/:user_id", wrapper.DeleteUsersUserId) router.GET(options.BaseURL+"/users/:user_id", wrapper.GetUsersUserId) router.PATCH(options.BaseURL+"/users/:user_id", wrapper.PatchUsersUserId) router.GET(options.BaseURL+"/users/:user_id/reviews", wrapper.GetUsersUserIdReviews) router.DELETE(options.BaseURL+"/users/:user_id/titles", wrapper.DeleteUsersUserIdTitles) router.GET(options.BaseURL+"/users/:user_id/titles", wrapper.GetUsersUserIdTitles) router.PATCH(options.BaseURL+"/users/:user_id/titles", wrapper.PatchUsersUserIdTitles) router.POST(options.BaseURL+"/users/:user_id/titles", wrapper.PostUsersUserIdTitles) } type GetMediaRequestObject struct { Params GetMediaParams } type GetMediaResponseObject interface { VisitGetMediaResponse(w http.ResponseWriter) error } type GetMedia200JSONResponse struct { Error *string `json:"error,omitempty"` ImagePath *string `json:"image_path,omitempty"` Success *bool `json:"success,omitempty"` } func (response GetMedia200JSONResponse) VisitGetMediaResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type PostMediaRequestObject struct { } type PostMediaResponseObject interface { VisitPostMediaResponse(w http.ResponseWriter) error } type PostMedia200JSONResponse struct { Error *string `json:"error,omitempty"` ImageId *string `json:"image_id,omitempty"` Success *bool `json:"success,omitempty"` } func (response PostMedia200JSONResponse) VisitPostMediaResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type PostReviewsRequestObject struct { Body *PostReviewsJSONRequestBody } type PostReviewsResponseObject interface { VisitPostReviewsResponse(w http.ResponseWriter) error } type PostReviews200JSONResponse struct { Error *string `json:"error,omitempty"` Success *bool `json:"success,omitempty"` } func (response PostReviews200JSONResponse) VisitPostReviewsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type DeleteReviewsReviewIdRequestObject struct { ReviewId string `json:"review_id"` } type DeleteReviewsReviewIdResponseObject interface { VisitDeleteReviewsReviewIdResponse(w http.ResponseWriter) error } type DeleteReviewsReviewId200JSONResponse struct { Error *string `json:"error,omitempty"` Success *bool `json:"success,omitempty"` } func (response DeleteReviewsReviewId200JSONResponse) VisitDeleteReviewsReviewIdResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type PatchReviewsReviewIdRequestObject struct { ReviewId string `json:"review_id"` Body *PatchReviewsReviewIdJSONRequestBody } type PatchReviewsReviewIdResponseObject interface { VisitPatchReviewsReviewIdResponse(w http.ResponseWriter) error } type PatchReviewsReviewId200JSONResponse struct { Error *string `json:"error,omitempty"` Success *bool `json:"success,omitempty"` } func (response PatchReviewsReviewId200JSONResponse) VisitPatchReviewsReviewIdResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetTagsRequestObject struct { Params GetTagsParams } type GetTagsResponseObject interface { VisitGetTagsResponse(w http.ResponseWriter) error } type GetTags200JSONResponse []Tag func (response GetTags200JSONResponse) VisitGetTagsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetTitleRequestObject struct { Params GetTitleParams } type GetTitleResponseObject interface { VisitGetTitleResponse(w http.ResponseWriter) error } type GetTitle200JSONResponse []Title func (response GetTitle200JSONResponse) VisitGetTitleResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetTitle204Response struct { } func (response GetTitle204Response) VisitGetTitleResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type GetTitleTitleIdRequestObject struct { TitleId string `json:"title_id"` Params GetTitleTitleIdParams } type GetTitleTitleIdResponseObject interface { VisitGetTitleTitleIdResponse(w http.ResponseWriter) error } type GetTitleTitleId200JSONResponse Title func (response GetTitleTitleId200JSONResponse) VisitGetTitleTitleIdResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetTitleTitleId404Response struct { } func (response GetTitleTitleId404Response) VisitGetTitleTitleIdResponse(w http.ResponseWriter) error { w.WriteHeader(404) return nil } type PatchTitleTitleIdRequestObject struct { TitleId string `json:"title_id"` Body *PatchTitleTitleIdJSONRequestBody } type PatchTitleTitleIdResponseObject interface { VisitPatchTitleTitleIdResponse(w http.ResponseWriter) error } type PatchTitleTitleId200JSONResponse struct { Error *string `json:"error,omitempty"` Success *bool `json:"success,omitempty"` UserJson *User `json:"user_json,omitempty"` } func (response PatchTitleTitleId200JSONResponse) VisitPatchTitleTitleIdResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetTitleTitleIdReviewsRequestObject struct { TitleId string `json:"title_id"` Params GetTitleTitleIdReviewsParams } type GetTitleTitleIdReviewsResponseObject interface { VisitGetTitleTitleIdReviewsResponse(w http.ResponseWriter) error } type GetTitleTitleIdReviews200JSONResponse []Review func (response GetTitleTitleIdReviews200JSONResponse) VisitGetTitleTitleIdReviewsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetTitleTitleIdReviews204Response struct { } func (response GetTitleTitleIdReviews204Response) VisitGetTitleTitleIdReviewsResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type GetUsersRequestObject struct { Params GetUsersParams } type GetUsersResponseObject interface { VisitGetUsersResponse(w http.ResponseWriter) error } type GetUsers200JSONResponse []User func (response GetUsers200JSONResponse) VisitGetUsersResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type PostUsersRequestObject struct { Body *PostUsersJSONRequestBody } type PostUsersResponseObject interface { VisitPostUsersResponse(w http.ResponseWriter) error } type PostUsers200JSONResponse struct { Error *string `json:"error,omitempty"` Success *bool `json:"success,omitempty"` UserJson *User `json:"user_json,omitempty"` } func (response PostUsers200JSONResponse) VisitPostUsersResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type DeleteUsersUserIdRequestObject struct { UserId string `json:"user_id"` } type DeleteUsersUserIdResponseObject interface { VisitDeleteUsersUserIdResponse(w http.ResponseWriter) error } type DeleteUsersUserId200JSONResponse struct { Error *string `json:"error,omitempty"` Success *bool `json:"success,omitempty"` } func (response DeleteUsersUserId200JSONResponse) VisitDeleteUsersUserIdResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetUsersUserIdRequestObject struct { UserId string `json:"user_id"` Params GetUsersUserIdParams } type GetUsersUserIdResponseObject interface { VisitGetUsersUserIdResponse(w http.ResponseWriter) error } type GetUsersUserId200JSONResponse User func (response GetUsersUserId200JSONResponse) VisitGetUsersUserIdResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetUsersUserId404Response struct { } func (response GetUsersUserId404Response) VisitGetUsersUserIdResponse(w http.ResponseWriter) error { w.WriteHeader(404) return nil } type PatchUsersUserIdRequestObject struct { UserId string `json:"user_id"` Body *PatchUsersUserIdJSONRequestBody } type PatchUsersUserIdResponseObject interface { VisitPatchUsersUserIdResponse(w http.ResponseWriter) error } type PatchUsersUserId200JSONResponse struct { Error *string `json:"error,omitempty"` Success *bool `json:"success,omitempty"` } func (response PatchUsersUserId200JSONResponse) VisitPatchUsersUserIdResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetUsersUserIdReviewsRequestObject struct { UserId string `json:"user_id"` Params GetUsersUserIdReviewsParams } type GetUsersUserIdReviewsResponseObject interface { VisitGetUsersUserIdReviewsResponse(w http.ResponseWriter) error } type GetUsersUserIdReviews200JSONResponse []Review func (response GetUsersUserIdReviews200JSONResponse) VisitGetUsersUserIdReviewsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type DeleteUsersUserIdTitlesRequestObject struct { UserId string `json:"user_id"` Params DeleteUsersUserIdTitlesParams } type DeleteUsersUserIdTitlesResponseObject interface { VisitDeleteUsersUserIdTitlesResponse(w http.ResponseWriter) error } type DeleteUsersUserIdTitles200JSONResponse struct { Error *string `json:"error,omitempty"` Success *bool `json:"success,omitempty"` } func (response DeleteUsersUserIdTitles200JSONResponse) VisitDeleteUsersUserIdTitlesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetUsersUserIdTitlesRequestObject struct { UserId string `json:"user_id"` Params GetUsersUserIdTitlesParams } type GetUsersUserIdTitlesResponseObject interface { VisitGetUsersUserIdTitlesResponse(w http.ResponseWriter) error } type GetUsersUserIdTitles200JSONResponse []UserTitle func (response GetUsersUserIdTitles200JSONResponse) VisitGetUsersUserIdTitlesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetUsersUserIdTitles204Response struct { } func (response GetUsersUserIdTitles204Response) VisitGetUsersUserIdTitlesResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type PatchUsersUserIdTitlesRequestObject struct { UserId string `json:"user_id"` Body *PatchUsersUserIdTitlesJSONRequestBody } type PatchUsersUserIdTitlesResponseObject interface { VisitPatchUsersUserIdTitlesResponse(w http.ResponseWriter) error } type PatchUsersUserIdTitles200JSONResponse struct { Error *string `json:"error,omitempty"` Success *bool `json:"success,omitempty"` } func (response PatchUsersUserIdTitles200JSONResponse) VisitPatchUsersUserIdTitlesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type PostUsersUserIdTitlesRequestObject struct { UserId string `json:"user_id"` Body *PostUsersUserIdTitlesJSONRequestBody } type PostUsersUserIdTitlesResponseObject interface { VisitPostUsersUserIdTitlesResponse(w http.ResponseWriter) error } type PostUsersUserIdTitles200JSONResponse struct { Error *string `json:"error,omitempty"` Success *bool `json:"success,omitempty"` } func (response PostUsersUserIdTitles200JSONResponse) VisitPostUsersUserIdTitlesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } // StrictServerInterface represents all server handlers. type StrictServerInterface interface { // Get image path // (GET /media) GetMedia(ctx context.Context, request GetMediaRequestObject) (GetMediaResponseObject, error) // Upload image // (POST /media) PostMedia(ctx context.Context, request PostMediaRequestObject) (PostMediaResponseObject, error) // Add review // (POST /reviews) PostReviews(ctx context.Context, request PostReviewsRequestObject) (PostReviewsResponseObject, error) // Delete review // (DELETE /reviews/{review_id}) DeleteReviewsReviewId(ctx context.Context, request DeleteReviewsReviewIdRequestObject) (DeleteReviewsReviewIdResponseObject, error) // Update review // (PATCH /reviews/{review_id}) PatchReviewsReviewId(ctx context.Context, request PatchReviewsReviewIdRequestObject) (PatchReviewsReviewIdResponseObject, error) // Get tags // (GET /tags) GetTags(ctx context.Context, request GetTagsRequestObject) (GetTagsResponseObject, error) // Get titles // (GET /title) GetTitle(ctx context.Context, request GetTitleRequestObject) (GetTitleResponseObject, error) // Get title description // (GET /title/{title_id}) GetTitleTitleId(ctx context.Context, request GetTitleTitleIdRequestObject) (GetTitleTitleIdResponseObject, error) // Update title info // (PATCH /title/{title_id}) PatchTitleTitleId(ctx context.Context, request PatchTitleTitleIdRequestObject) (PatchTitleTitleIdResponseObject, error) // Get title reviews // (GET /title/{title_id}/reviews) GetTitleTitleIdReviews(ctx context.Context, request GetTitleTitleIdReviewsRequestObject) (GetTitleTitleIdReviewsResponseObject, error) // Search user // (GET /users) GetUsers(ctx context.Context, request GetUsersRequestObject) (GetUsersResponseObject, error) // Add new user // (POST /users) PostUsers(ctx context.Context, request PostUsersRequestObject) (PostUsersResponseObject, error) // Delete user // (DELETE /users/{user_id}) DeleteUsersUserId(ctx context.Context, request DeleteUsersUserIdRequestObject) (DeleteUsersUserIdResponseObject, error) // Get user info // (GET /users/{user_id}) GetUsersUserId(ctx context.Context, request GetUsersUserIdRequestObject) (GetUsersUserIdResponseObject, error) // Update user // (PATCH /users/{user_id}) PatchUsersUserId(ctx context.Context, request PatchUsersUserIdRequestObject) (PatchUsersUserIdResponseObject, error) // Get user reviews // (GET /users/{user_id}/reviews) GetUsersUserIdReviews(ctx context.Context, request GetUsersUserIdReviewsRequestObject) (GetUsersUserIdReviewsResponseObject, error) // Delete user title // (DELETE /users/{user_id}/titles) DeleteUsersUserIdTitles(ctx context.Context, request DeleteUsersUserIdTitlesRequestObject) (DeleteUsersUserIdTitlesResponseObject, error) // Get user titles // (GET /users/{user_id}/titles) GetUsersUserIdTitles(ctx context.Context, request GetUsersUserIdTitlesRequestObject) (GetUsersUserIdTitlesResponseObject, error) // Update user title // (PATCH /users/{user_id}/titles) PatchUsersUserIdTitles(ctx context.Context, request PatchUsersUserIdTitlesRequestObject) (PatchUsersUserIdTitlesResponseObject, error) // Add user title // (POST /users/{user_id}/titles) PostUsersUserIdTitles(ctx context.Context, request PostUsersUserIdTitlesRequestObject) (PostUsersUserIdTitlesResponseObject, error) } type StrictHandlerFunc = strictgin.StrictGinHandlerFunc type StrictMiddlewareFunc = strictgin.StrictGinMiddlewareFunc func NewStrictHandler(ssi StrictServerInterface, middlewares []StrictMiddlewareFunc) ServerInterface { return &strictHandler{ssi: ssi, middlewares: middlewares} } type strictHandler struct { ssi StrictServerInterface middlewares []StrictMiddlewareFunc } // GetMedia operation middleware func (sh *strictHandler) GetMedia(ctx *gin.Context, params GetMediaParams) { var request GetMediaRequestObject request.Params = params handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.GetMedia(ctx, request.(GetMediaRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetMedia") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(GetMediaResponseObject); ok { if err := validResponse.VisitGetMediaResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // PostMedia operation middleware func (sh *strictHandler) PostMedia(ctx *gin.Context) { var request PostMediaRequestObject handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.PostMedia(ctx, request.(PostMediaRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PostMedia") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(PostMediaResponseObject); ok { if err := validResponse.VisitPostMediaResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // PostReviews operation middleware func (sh *strictHandler) PostReviews(ctx *gin.Context) { var request PostReviewsRequestObject var body PostReviewsJSONRequestBody if err := ctx.ShouldBindJSON(&body); err != nil { ctx.Status(http.StatusBadRequest) ctx.Error(err) return } request.Body = &body handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.PostReviews(ctx, request.(PostReviewsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PostReviews") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(PostReviewsResponseObject); ok { if err := validResponse.VisitPostReviewsResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // DeleteReviewsReviewId operation middleware func (sh *strictHandler) DeleteReviewsReviewId(ctx *gin.Context, reviewId string) { var request DeleteReviewsReviewIdRequestObject request.ReviewId = reviewId handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.DeleteReviewsReviewId(ctx, request.(DeleteReviewsReviewIdRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "DeleteReviewsReviewId") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(DeleteReviewsReviewIdResponseObject); ok { if err := validResponse.VisitDeleteReviewsReviewIdResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // PatchReviewsReviewId operation middleware func (sh *strictHandler) PatchReviewsReviewId(ctx *gin.Context, reviewId string) { var request PatchReviewsReviewIdRequestObject request.ReviewId = reviewId var body PatchReviewsReviewIdJSONRequestBody if err := ctx.ShouldBindJSON(&body); err != nil { ctx.Status(http.StatusBadRequest) ctx.Error(err) return } request.Body = &body handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.PatchReviewsReviewId(ctx, request.(PatchReviewsReviewIdRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PatchReviewsReviewId") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(PatchReviewsReviewIdResponseObject); ok { if err := validResponse.VisitPatchReviewsReviewIdResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // GetTags operation middleware func (sh *strictHandler) GetTags(ctx *gin.Context, params GetTagsParams) { var request GetTagsRequestObject request.Params = params handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.GetTags(ctx, request.(GetTagsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetTags") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(GetTagsResponseObject); ok { if err := validResponse.VisitGetTagsResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // GetTitle operation middleware func (sh *strictHandler) GetTitle(ctx *gin.Context, params GetTitleParams) { var request GetTitleRequestObject request.Params = params handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.GetTitle(ctx, request.(GetTitleRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetTitle") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(GetTitleResponseObject); ok { if err := validResponse.VisitGetTitleResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // GetTitleTitleId operation middleware func (sh *strictHandler) GetTitleTitleId(ctx *gin.Context, titleId string, params GetTitleTitleIdParams) { var request GetTitleTitleIdRequestObject request.TitleId = titleId request.Params = params handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.GetTitleTitleId(ctx, request.(GetTitleTitleIdRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetTitleTitleId") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(GetTitleTitleIdResponseObject); ok { if err := validResponse.VisitGetTitleTitleIdResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // PatchTitleTitleId operation middleware func (sh *strictHandler) PatchTitleTitleId(ctx *gin.Context, titleId string) { var request PatchTitleTitleIdRequestObject request.TitleId = titleId var body PatchTitleTitleIdJSONRequestBody if err := ctx.ShouldBindJSON(&body); err != nil { ctx.Status(http.StatusBadRequest) ctx.Error(err) return } request.Body = &body handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.PatchTitleTitleId(ctx, request.(PatchTitleTitleIdRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PatchTitleTitleId") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(PatchTitleTitleIdResponseObject); ok { if err := validResponse.VisitPatchTitleTitleIdResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // GetTitleTitleIdReviews operation middleware func (sh *strictHandler) GetTitleTitleIdReviews(ctx *gin.Context, titleId string, params GetTitleTitleIdReviewsParams) { var request GetTitleTitleIdReviewsRequestObject request.TitleId = titleId request.Params = params handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.GetTitleTitleIdReviews(ctx, request.(GetTitleTitleIdReviewsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetTitleTitleIdReviews") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(GetTitleTitleIdReviewsResponseObject); ok { if err := validResponse.VisitGetTitleTitleIdReviewsResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // GetUsers operation middleware func (sh *strictHandler) GetUsers(ctx *gin.Context, params GetUsersParams) { var request GetUsersRequestObject request.Params = params handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.GetUsers(ctx, request.(GetUsersRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetUsers") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(GetUsersResponseObject); ok { if err := validResponse.VisitGetUsersResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // PostUsers operation middleware func (sh *strictHandler) PostUsers(ctx *gin.Context) { var request PostUsersRequestObject var body PostUsersJSONRequestBody if err := ctx.ShouldBindJSON(&body); err != nil { ctx.Status(http.StatusBadRequest) ctx.Error(err) return } request.Body = &body handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.PostUsers(ctx, request.(PostUsersRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PostUsers") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(PostUsersResponseObject); ok { if err := validResponse.VisitPostUsersResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // DeleteUsersUserId operation middleware func (sh *strictHandler) DeleteUsersUserId(ctx *gin.Context, userId string) { var request DeleteUsersUserIdRequestObject request.UserId = userId handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.DeleteUsersUserId(ctx, request.(DeleteUsersUserIdRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "DeleteUsersUserId") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(DeleteUsersUserIdResponseObject); ok { if err := validResponse.VisitDeleteUsersUserIdResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // GetUsersUserId operation middleware func (sh *strictHandler) GetUsersUserId(ctx *gin.Context, userId string, params GetUsersUserIdParams) { var request GetUsersUserIdRequestObject request.UserId = userId request.Params = params handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.GetUsersUserId(ctx, request.(GetUsersUserIdRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetUsersUserId") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(GetUsersUserIdResponseObject); ok { if err := validResponse.VisitGetUsersUserIdResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // PatchUsersUserId operation middleware func (sh *strictHandler) PatchUsersUserId(ctx *gin.Context, userId string) { var request PatchUsersUserIdRequestObject request.UserId = userId var body PatchUsersUserIdJSONRequestBody if err := ctx.ShouldBindJSON(&body); err != nil { ctx.Status(http.StatusBadRequest) ctx.Error(err) return } request.Body = &body handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.PatchUsersUserId(ctx, request.(PatchUsersUserIdRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PatchUsersUserId") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(PatchUsersUserIdResponseObject); ok { if err := validResponse.VisitPatchUsersUserIdResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // GetUsersUserIdReviews operation middleware func (sh *strictHandler) GetUsersUserIdReviews(ctx *gin.Context, userId string, params GetUsersUserIdReviewsParams) { var request GetUsersUserIdReviewsRequestObject request.UserId = userId request.Params = params handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.GetUsersUserIdReviews(ctx, request.(GetUsersUserIdReviewsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetUsersUserIdReviews") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(GetUsersUserIdReviewsResponseObject); ok { if err := validResponse.VisitGetUsersUserIdReviewsResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // DeleteUsersUserIdTitles operation middleware func (sh *strictHandler) DeleteUsersUserIdTitles(ctx *gin.Context, userId string, params DeleteUsersUserIdTitlesParams) { var request DeleteUsersUserIdTitlesRequestObject request.UserId = userId request.Params = params handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.DeleteUsersUserIdTitles(ctx, request.(DeleteUsersUserIdTitlesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "DeleteUsersUserIdTitles") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(DeleteUsersUserIdTitlesResponseObject); ok { if err := validResponse.VisitDeleteUsersUserIdTitlesResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // GetUsersUserIdTitles operation middleware func (sh *strictHandler) GetUsersUserIdTitles(ctx *gin.Context, userId string, params GetUsersUserIdTitlesParams) { var request GetUsersUserIdTitlesRequestObject request.UserId = userId request.Params = params handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.GetUsersUserIdTitles(ctx, request.(GetUsersUserIdTitlesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetUsersUserIdTitles") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(GetUsersUserIdTitlesResponseObject); ok { if err := validResponse.VisitGetUsersUserIdTitlesResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // PatchUsersUserIdTitles operation middleware func (sh *strictHandler) PatchUsersUserIdTitles(ctx *gin.Context, userId string) { var request PatchUsersUserIdTitlesRequestObject request.UserId = userId var body PatchUsersUserIdTitlesJSONRequestBody if err := ctx.ShouldBindJSON(&body); err != nil { ctx.Status(http.StatusBadRequest) ctx.Error(err) return } request.Body = &body handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.PatchUsersUserIdTitles(ctx, request.(PatchUsersUserIdTitlesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PatchUsersUserIdTitles") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(PatchUsersUserIdTitlesResponseObject); ok { if err := validResponse.VisitPatchUsersUserIdTitlesResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } } // PostUsersUserIdTitles operation middleware func (sh *strictHandler) PostUsersUserIdTitles(ctx *gin.Context, userId string) { var request PostUsersUserIdTitlesRequestObject request.UserId = userId var body PostUsersUserIdTitlesJSONRequestBody if err := ctx.ShouldBindJSON(&body); err != nil { ctx.Status(http.StatusBadRequest) ctx.Error(err) return } request.Body = &body handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { return sh.ssi.PostUsersUserIdTitles(ctx, request.(PostUsersUserIdTitlesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PostUsersUserIdTitles") } response, err := handler(ctx, request) if err != nil { ctx.Error(err) ctx.Status(http.StatusInternalServerError) } else if validResponse, ok := response.(PostUsersUserIdTitlesResponseObject); ok { if err := validResponse.VisitPostUsersUserIdTitlesResponse(ctx.Writer); err != nil { ctx.Error(err) } } else if response != nil { ctx.Error(fmt.Errorf("unexpected response type: %T", response)) } }