nyanimedb/api/api.gen.go

1667 lines
49 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Package oapi 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 oapi
import (
"context"
"encoding/json"
"fmt"
"net/http"
"time"
"github.com/gin-gonic/gin"
"github.com/oapi-codegen/runtime"
strictgin "github.com/oapi-codegen/runtime/strictmiddleware/gin"
openapi_types "github.com/oapi-codegen/runtime/types"
)
const (
JwtAuthCookiesScopes = "JwtAuthCookies.Scopes"
)
// Defines values for ReleaseSeason.
const (
Fall ReleaseSeason = "fall"
Spring ReleaseSeason = "spring"
Summer ReleaseSeason = "summer"
Winter ReleaseSeason = "winter"
)
// Defines values for StorageType.
const (
Local StorageType = "local"
S3 StorageType = "s3"
)
// Defines values for TitleSort.
const (
Id TitleSort = "id"
Rating TitleSort = "rating"
Views TitleSort = "views"
Year TitleSort = "year"
)
// Defines values for TitleStatus.
const (
TitleStatusFinished TitleStatus = "finished"
TitleStatusOngoing TitleStatus = "ongoing"
TitleStatusPlanned TitleStatus = "planned"
)
// Defines values for UserTitleStatus.
const (
UserTitleStatusDropped UserTitleStatus = "dropped"
UserTitleStatusFinished UserTitleStatus = "finished"
UserTitleStatusInProgress UserTitleStatus = "in-progress"
UserTitleStatusPlanned UserTitleStatus = "planned"
)
// CursorObj defines model for CursorObj.
type CursorObj struct {
Id int64 `json:"id"`
Param *string `json:"param,omitempty"`
}
// Image defines model for Image.
type Image struct {
Id *int64 `json:"id,omitempty"`
ImagePath *string `json:"image_path,omitempty"`
// StorageType Image storage type
StorageType *StorageType `json:"storage_type,omitempty"`
}
// ReleaseSeason Title release season
type ReleaseSeason string
// StorageType Image storage type
type StorageType string
// Studio defines model for Studio.
type Studio struct {
Description *string `json:"description,omitempty"`
Id int64 `json:"id"`
Name string `json:"name"`
Poster *Image `json:"poster,omitempty"`
}
// Tag A localized tag: keys are language codes (ISO 639-1), values are tag names
type Tag map[string]string
// Tags Array of localized tags
type Tags = []Tag
// Title defines model for Title.
type Title struct {
EpisodesAired *int32 `json:"episodes_aired,omitempty"`
EpisodesAll *int32 `json:"episodes_all,omitempty"`
EpisodesLen *map[string]float64 `json:"episodes_len,omitempty"`
// Id Unique title ID (primary key)
Id int64 `json:"id"`
Poster *Image `json:"poster,omitempty"`
Rating *float64 `json:"rating,omitempty"`
RatingCount *int32 `json:"rating_count,omitempty"`
// ReleaseSeason Title release season
ReleaseSeason *ReleaseSeason `json:"release_season,omitempty"`
ReleaseYear *int32 `json:"release_year,omitempty"`
Studio *Studio `json:"studio,omitempty"`
// Tags Array of localized tags
Tags Tags `json:"tags"`
// TitleNames Localized titles. Key = language (ISO 639-1), value = list of names
TitleNames map[string][]string `json:"title_names"`
// TitleStatus Title status
TitleStatus *TitleStatus `json:"title_status,omitempty"`
}
// TitleSort Title sort order
type TitleSort string
// TitleStatus Title status
type TitleStatus string
// User defines model for User.
type User struct {
// CreationDate Timestamp when the user was created
CreationDate *time.Time `json:"creation_date,omitempty"`
// DispName Display name
DispName *string `json:"disp_name,omitempty"`
// Id Unique user ID (primary key)
Id *int64 `json:"id,omitempty"`
Image *Image `json:"image,omitempty"`
// Mail User email
Mail *openapi_types.Email `json:"mail,omitempty"`
// Nickname Username (alphanumeric + _ or -)
Nickname string `json:"nickname"`
// UserDesc User description
UserDesc *string `json:"user_desc,omitempty"`
}
// UserTitle defines model for UserTitle.
type UserTitle struct {
Ctime *time.Time `json:"ctime,omitempty"`
Rate *int32 `json:"rate,omitempty"`
ReviewId *int64 `json:"review_id,omitempty"`
// Status User's title status
Status UserTitleStatus `json:"status"`
Title *Title `json:"title,omitempty"`
UserId int64 `json:"user_id"`
}
// UserTitleMini defines model for UserTitleMini.
type UserTitleMini struct {
Ctime *time.Time `json:"ctime,omitempty"`
Rate *int32 `json:"rate,omitempty"`
ReviewId *int64 `json:"review_id,omitempty"`
// Status User's title status
Status UserTitleStatus `json:"status"`
TitleId int64 `json:"title_id"`
UserId int64 `json:"user_id"`
}
// UserTitleStatus User's title status
type UserTitleStatus string
// AccessToken defines model for accessToken.
type AccessToken = string
// CsrfToken defines model for csrfToken.
type CsrfToken = string
// Cursor defines model for cursor.
type Cursor = string
// GetTitlesParams defines parameters for GetTitles.
type GetTitlesParams struct {
Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"`
Sort *TitleSort `form:"sort,omitempty" json:"sort,omitempty"`
SortForward *bool `form:"sort_forward,omitempty" json:"sort_forward,omitempty"`
ExtSearch *bool `form:"ext_search,omitempty" json:"ext_search,omitempty"`
Word *string `form:"word,omitempty" json:"word,omitempty"`
// Status List of title statuses to filter
Status *[]TitleStatus `form:"status,omitempty" json:"status,omitempty"`
Rating *float64 `form:"rating,omitempty" json:"rating,omitempty"`
ReleaseYear *int32 `form:"release_year,omitempty" json:"release_year,omitempty"`
ReleaseSeason *ReleaseSeason `form:"release_season,omitempty" json:"release_season,omitempty"`
Limit *int32 `form:"limit,omitempty" json:"limit,omitempty"`
Offset *int32 `form:"offset,omitempty" json:"offset,omitempty"`
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
}
// GetTitleParams defines parameters for GetTitle.
type GetTitleParams struct {
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
}
// GetUsersIdParams defines parameters for GetUsersId.
type GetUsersIdParams struct {
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
}
// UpdateUserJSONBody defines parameters for UpdateUser.
type UpdateUserJSONBody struct {
// AvatarId ID of the user avatar (references `images.id`); set to `null` to remove avatar
AvatarId *int64 `json:"avatar_id"`
// DispName Display name
DispName *string `json:"disp_name,omitempty"`
// Mail User email (must be unique and valid)
Mail *openapi_types.Email `json:"mail,omitempty"`
// Nickname Username (alphanumeric + `_` or `-`, 316 chars)
Nickname *string `json:"nickname,omitempty"`
// UserDesc User description / bio
UserDesc *string `json:"user_desc,omitempty"`
}
// UpdateUserParams defines parameters for UpdateUser.
type UpdateUserParams struct {
// AccessToken JWT access token.
AccessToken AccessToken `form:"access_token" json:"access_token"`
// XSRFTOKEN Anti-CSRF token (Double Submit Cookie pattern).
// Stored in non-HttpOnly cookie, readable by JavaScript.
// Must be echoed in `X-XSRF-TOKEN` header for state-changing requests (POST/PUT/PATCH/DELETE).
XSRFTOKEN CsrfToken `form:"XSRF-TOKEN" json:"XSRF-TOKEN"`
}
// GetUserTitlesParams defines parameters for GetUserTitles.
type GetUserTitlesParams struct {
Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"`
Sort *TitleSort `form:"sort,omitempty" json:"sort,omitempty"`
SortForward *bool `form:"sort_forward,omitempty" json:"sort_forward,omitempty"`
Word *string `form:"word,omitempty" json:"word,omitempty"`
// Status List of title statuses to filter
Status *[]TitleStatus `form:"status,omitempty" json:"status,omitempty"`
WatchStatus *[]UserTitleStatus `form:"watch_status,omitempty" json:"watch_status,omitempty"`
Rating *float64 `form:"rating,omitempty" json:"rating,omitempty"`
MyRate *int32 `form:"my_rate,omitempty" json:"my_rate,omitempty"`
ReleaseYear *int32 `form:"release_year,omitempty" json:"release_year,omitempty"`
ReleaseSeason *ReleaseSeason `form:"release_season,omitempty" json:"release_season,omitempty"`
Limit *int32 `form:"limit,omitempty" json:"limit,omitempty"`
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
}
// AddUserTitleJSONBody defines parameters for AddUserTitle.
type AddUserTitleJSONBody struct {
Rate *int32 `json:"rate,omitempty"`
// Status User's title status
Status UserTitleStatus `json:"status"`
TitleId int64 `json:"title_id"`
}
// UpdateUserTitleJSONBody defines parameters for UpdateUserTitle.
type UpdateUserTitleJSONBody struct {
Rate *int32 `json:"rate,omitempty"`
// Status User's title status
Status *UserTitleStatus `json:"status,omitempty"`
}
// UpdateUserJSONRequestBody defines body for UpdateUser for application/json ContentType.
type UpdateUserJSONRequestBody UpdateUserJSONBody
// AddUserTitleJSONRequestBody defines body for AddUserTitle for application/json ContentType.
type AddUserTitleJSONRequestBody AddUserTitleJSONBody
// UpdateUserTitleJSONRequestBody defines body for UpdateUserTitle for application/json ContentType.
type UpdateUserTitleJSONRequestBody UpdateUserTitleJSONBody
// ServerInterface represents all server handlers.
type ServerInterface interface {
// Get titles
// (GET /titles)
GetTitles(c *gin.Context, params GetTitlesParams)
// Get title description
// (GET /titles/{title_id})
GetTitle(c *gin.Context, titleId int64, params GetTitleParams)
// Get user info
// (GET /users/{user_id})
GetUsersId(c *gin.Context, userId string, params GetUsersIdParams)
// Partially update a user account
// (PATCH /users/{user_id})
UpdateUser(c *gin.Context, userId int64, params UpdateUserParams)
// Get user titles
// (GET /users/{user_id}/titles)
GetUserTitles(c *gin.Context, userId string, params GetUserTitlesParams)
// Add a title to a user
// (POST /users/{user_id}/titles)
AddUserTitle(c *gin.Context, userId int64)
// Delete a usertitle
// (DELETE /users/{user_id}/titles/{title_id})
DeleteUserTitle(c *gin.Context, userId int64, titleId int64)
// Get user title
// (GET /users/{user_id}/titles/{title_id})
GetUserTitle(c *gin.Context, userId int64, titleId int64)
// Update a usertitle
// (PATCH /users/{user_id}/titles/{title_id})
UpdateUserTitle(c *gin.Context, userId int64, titleId int64)
}
// ServerInterfaceWrapper converts contexts to parameters.
type ServerInterfaceWrapper struct {
Handler ServerInterface
HandlerMiddlewares []MiddlewareFunc
ErrorHandler func(*gin.Context, error, int)
}
type MiddlewareFunc func(c *gin.Context)
// GetTitles operation middleware
func (siw *ServerInterfaceWrapper) GetTitles(c *gin.Context) {
var err error
// Parameter object where we will unmarshal all parameters from the context
var params GetTitlesParams
// ------------- Optional query parameter "cursor" -------------
err = runtime.BindQueryParameter("form", true, false, "cursor", c.Request.URL.Query(), &params.Cursor)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter cursor: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "sort" -------------
err = runtime.BindQueryParameter("form", true, false, "sort", c.Request.URL.Query(), &params.Sort)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter sort: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "sort_forward" -------------
err = runtime.BindQueryParameter("form", true, false, "sort_forward", c.Request.URL.Query(), &params.SortForward)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter sort_forward: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "ext_search" -------------
err = runtime.BindQueryParameter("form", true, false, "ext_search", c.Request.URL.Query(), &params.ExtSearch)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter ext_search: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "word" -------------
err = runtime.BindQueryParameter("form", true, false, "word", c.Request.URL.Query(), &params.Word)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter word: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "status" -------------
err = runtime.BindQueryParameter("form", false, false, "status", c.Request.URL.Query(), &params.Status)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter status: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "rating" -------------
err = runtime.BindQueryParameter("form", true, false, "rating", c.Request.URL.Query(), &params.Rating)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter rating: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "release_year" -------------
err = runtime.BindQueryParameter("form", true, false, "release_year", c.Request.URL.Query(), &params.ReleaseYear)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter release_year: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "release_season" -------------
err = runtime.BindQueryParameter("form", true, false, "release_season", c.Request.URL.Query(), &params.ReleaseSeason)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter release_season: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "limit" -------------
err = runtime.BindQueryParameter("form", true, false, "limit", c.Request.URL.Query(), &params.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(), &params.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(), &params.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.GetTitles(c, params)
}
// GetTitle operation middleware
func (siw *ServerInterfaceWrapper) GetTitle(c *gin.Context) {
var err error
// ------------- Path parameter "title_id" -------------
var titleId int64
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
}
c.Set(JwtAuthCookiesScopes, []string{})
// Parameter object where we will unmarshal all parameters from the context
var params GetTitleParams
// ------------- Optional query parameter "fields" -------------
err = runtime.BindQueryParameter("form", true, false, "fields", c.Request.URL.Query(), &params.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, titleId, params)
}
// GetUsersId operation middleware
func (siw *ServerInterfaceWrapper) GetUsersId(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 GetUsersIdParams
// ------------- Optional query parameter "fields" -------------
err = runtime.BindQueryParameter("form", true, false, "fields", c.Request.URL.Query(), &params.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.GetUsersId(c, userId, params)
}
// UpdateUser operation middleware
func (siw *ServerInterfaceWrapper) UpdateUser(c *gin.Context) {
var err error
// ------------- Path parameter "user_id" -------------
var userId int64
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
}
c.Set(JwtAuthCookiesScopes, []string{})
// Parameter object where we will unmarshal all parameters from the context
var params UpdateUserParams
{
var cookie string
if cookie, err = c.Cookie("access_token"); err == nil {
var value AccessToken
err = runtime.BindStyledParameterWithOptions("simple", "access_token", cookie, &value, runtime.BindStyledParameterOptions{Explode: true, Required: true})
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter access_token: %w", err), http.StatusBadRequest)
return
}
params.AccessToken = value
} else {
siw.ErrorHandler(c, fmt.Errorf("Query argument access_token is required, but not found"), http.StatusBadRequest)
return
}
}
{
var cookie string
if cookie, err = c.Cookie("XSRF-TOKEN"); err == nil {
var value CsrfToken
err = runtime.BindStyledParameterWithOptions("simple", "XSRF-TOKEN", cookie, &value, runtime.BindStyledParameterOptions{Explode: true, Required: true})
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter XSRF-TOKEN: %w", err), http.StatusBadRequest)
return
}
params.XSRFTOKEN = value
} else {
siw.ErrorHandler(c, fmt.Errorf("Query argument XSRF-TOKEN is required, but not found"), http.StatusBadRequest)
return
}
}
for _, middleware := range siw.HandlerMiddlewares {
middleware(c)
if c.IsAborted() {
return
}
}
siw.Handler.UpdateUser(c, userId, params)
}
// GetUserTitles operation middleware
func (siw *ServerInterfaceWrapper) GetUserTitles(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 GetUserTitlesParams
// ------------- Optional query parameter "cursor" -------------
err = runtime.BindQueryParameter("form", true, false, "cursor", c.Request.URL.Query(), &params.Cursor)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter cursor: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "sort" -------------
err = runtime.BindQueryParameter("form", true, false, "sort", c.Request.URL.Query(), &params.Sort)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter sort: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "sort_forward" -------------
err = runtime.BindQueryParameter("form", true, false, "sort_forward", c.Request.URL.Query(), &params.SortForward)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter sort_forward: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "word" -------------
err = runtime.BindQueryParameter("form", true, false, "word", c.Request.URL.Query(), &params.Word)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter word: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "status" -------------
err = runtime.BindQueryParameter("form", false, false, "status", c.Request.URL.Query(), &params.Status)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter status: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "watch_status" -------------
err = runtime.BindQueryParameter("form", false, false, "watch_status", c.Request.URL.Query(), &params.WatchStatus)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter watch_status: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "rating" -------------
err = runtime.BindQueryParameter("form", true, false, "rating", c.Request.URL.Query(), &params.Rating)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter rating: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "my_rate" -------------
err = runtime.BindQueryParameter("form", true, false, "my_rate", c.Request.URL.Query(), &params.MyRate)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter my_rate: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "release_year" -------------
err = runtime.BindQueryParameter("form", true, false, "release_year", c.Request.URL.Query(), &params.ReleaseYear)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter release_year: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "release_season" -------------
err = runtime.BindQueryParameter("form", true, false, "release_season", c.Request.URL.Query(), &params.ReleaseSeason)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter release_season: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "limit" -------------
err = runtime.BindQueryParameter("form", true, false, "limit", c.Request.URL.Query(), &params.Limit)
if err != nil {
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter limit: %w", err), http.StatusBadRequest)
return
}
// ------------- Optional query parameter "fields" -------------
err = runtime.BindQueryParameter("form", true, false, "fields", c.Request.URL.Query(), &params.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.GetUserTitles(c, userId, params)
}
// AddUserTitle operation middleware
func (siw *ServerInterfaceWrapper) AddUserTitle(c *gin.Context) {
var err error
// ------------- Path parameter "user_id" -------------
var userId int64
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.AddUserTitle(c, userId)
}
// DeleteUserTitle operation middleware
func (siw *ServerInterfaceWrapper) DeleteUserTitle(c *gin.Context) {
var err error
// ------------- Path parameter "user_id" -------------
var userId int64
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
}
// ------------- Path parameter "title_id" -------------
var titleId int64
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.DeleteUserTitle(c, userId, titleId)
}
// GetUserTitle operation middleware
func (siw *ServerInterfaceWrapper) GetUserTitle(c *gin.Context) {
var err error
// ------------- Path parameter "user_id" -------------
var userId int64
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
}
// ------------- Path parameter "title_id" -------------
var titleId int64
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.GetUserTitle(c, userId, titleId)
}
// UpdateUserTitle operation middleware
func (siw *ServerInterfaceWrapper) UpdateUserTitle(c *gin.Context) {
var err error
// ------------- Path parameter "user_id" -------------
var userId int64
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
}
// ------------- Path parameter "title_id" -------------
var titleId int64
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.UpdateUserTitle(c, userId, titleId)
}
// 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+"/titles", wrapper.GetTitles)
router.GET(options.BaseURL+"/titles/:title_id", wrapper.GetTitle)
router.GET(options.BaseURL+"/users/:user_id", wrapper.GetUsersId)
router.PATCH(options.BaseURL+"/users/:user_id", wrapper.UpdateUser)
router.GET(options.BaseURL+"/users/:user_id/titles", wrapper.GetUserTitles)
router.POST(options.BaseURL+"/users/:user_id/titles", wrapper.AddUserTitle)
router.DELETE(options.BaseURL+"/users/:user_id/titles/:title_id", wrapper.DeleteUserTitle)
router.GET(options.BaseURL+"/users/:user_id/titles/:title_id", wrapper.GetUserTitle)
router.PATCH(options.BaseURL+"/users/:user_id/titles/:title_id", wrapper.UpdateUserTitle)
}
type GetTitlesRequestObject struct {
Params GetTitlesParams
}
type GetTitlesResponseObject interface {
VisitGetTitlesResponse(w http.ResponseWriter) error
}
type GetTitles200JSONResponse struct {
Cursor CursorObj `json:"cursor"`
// Data List of titles
Data []Title `json:"data"`
}
func (response GetTitles200JSONResponse) VisitGetTitlesResponse(w http.ResponseWriter) error {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(200)
return json.NewEncoder(w).Encode(response)
}
type GetTitles204Response struct {
}
func (response GetTitles204Response) VisitGetTitlesResponse(w http.ResponseWriter) error {
w.WriteHeader(204)
return nil
}
type GetTitles400Response struct {
}
func (response GetTitles400Response) VisitGetTitlesResponse(w http.ResponseWriter) error {
w.WriteHeader(400)
return nil
}
type GetTitles500Response struct {
}
func (response GetTitles500Response) VisitGetTitlesResponse(w http.ResponseWriter) error {
w.WriteHeader(500)
return nil
}
type GetTitleRequestObject struct {
TitleId int64 `json:"title_id"`
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 GetTitle400Response struct {
}
func (response GetTitle400Response) VisitGetTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(400)
return nil
}
type GetTitle404Response struct {
}
func (response GetTitle404Response) VisitGetTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(404)
return nil
}
type GetTitle500Response struct {
}
func (response GetTitle500Response) VisitGetTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(500)
return nil
}
type GetUsersIdRequestObject struct {
UserId string `json:"user_id"`
Params GetUsersIdParams
}
type GetUsersIdResponseObject interface {
VisitGetUsersIdResponse(w http.ResponseWriter) error
}
type GetUsersId200JSONResponse User
func (response GetUsersId200JSONResponse) VisitGetUsersIdResponse(w http.ResponseWriter) error {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(200)
return json.NewEncoder(w).Encode(response)
}
type GetUsersId400Response struct {
}
func (response GetUsersId400Response) VisitGetUsersIdResponse(w http.ResponseWriter) error {
w.WriteHeader(400)
return nil
}
type GetUsersId404Response struct {
}
func (response GetUsersId404Response) VisitGetUsersIdResponse(w http.ResponseWriter) error {
w.WriteHeader(404)
return nil
}
type GetUsersId500Response struct {
}
func (response GetUsersId500Response) VisitGetUsersIdResponse(w http.ResponseWriter) error {
w.WriteHeader(500)
return nil
}
type UpdateUserRequestObject struct {
UserId int64 `json:"user_id"`
Params UpdateUserParams
Body *UpdateUserJSONRequestBody
}
type UpdateUserResponseObject interface {
VisitUpdateUserResponse(w http.ResponseWriter) error
}
type UpdateUser200JSONResponse User
func (response UpdateUser200JSONResponse) VisitUpdateUserResponse(w http.ResponseWriter) error {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(200)
return json.NewEncoder(w).Encode(response)
}
type UpdateUser400Response struct {
}
func (response UpdateUser400Response) VisitUpdateUserResponse(w http.ResponseWriter) error {
w.WriteHeader(400)
return nil
}
type UpdateUser401Response struct {
}
func (response UpdateUser401Response) VisitUpdateUserResponse(w http.ResponseWriter) error {
w.WriteHeader(401)
return nil
}
type UpdateUser403Response struct {
}
func (response UpdateUser403Response) VisitUpdateUserResponse(w http.ResponseWriter) error {
w.WriteHeader(403)
return nil
}
type UpdateUser404Response struct {
}
func (response UpdateUser404Response) VisitUpdateUserResponse(w http.ResponseWriter) error {
w.WriteHeader(404)
return nil
}
type UpdateUser409Response struct {
}
func (response UpdateUser409Response) VisitUpdateUserResponse(w http.ResponseWriter) error {
w.WriteHeader(409)
return nil
}
type UpdateUser422Response struct {
}
func (response UpdateUser422Response) VisitUpdateUserResponse(w http.ResponseWriter) error {
w.WriteHeader(422)
return nil
}
type UpdateUser500Response struct {
}
func (response UpdateUser500Response) VisitUpdateUserResponse(w http.ResponseWriter) error {
w.WriteHeader(500)
return nil
}
type GetUserTitlesRequestObject struct {
UserId string `json:"user_id"`
Params GetUserTitlesParams
}
type GetUserTitlesResponseObject interface {
VisitGetUserTitlesResponse(w http.ResponseWriter) error
}
type GetUserTitles200JSONResponse struct {
Cursor CursorObj `json:"cursor"`
Data []UserTitle `json:"data"`
}
func (response GetUserTitles200JSONResponse) VisitGetUserTitlesResponse(w http.ResponseWriter) error {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(200)
return json.NewEncoder(w).Encode(response)
}
type GetUserTitles204Response struct {
}
func (response GetUserTitles204Response) VisitGetUserTitlesResponse(w http.ResponseWriter) error {
w.WriteHeader(204)
return nil
}
type GetUserTitles400Response struct {
}
func (response GetUserTitles400Response) VisitGetUserTitlesResponse(w http.ResponseWriter) error {
w.WriteHeader(400)
return nil
}
type GetUserTitles404Response struct {
}
func (response GetUserTitles404Response) VisitGetUserTitlesResponse(w http.ResponseWriter) error {
w.WriteHeader(404)
return nil
}
type GetUserTitles500Response struct {
}
func (response GetUserTitles500Response) VisitGetUserTitlesResponse(w http.ResponseWriter) error {
w.WriteHeader(500)
return nil
}
type AddUserTitleRequestObject struct {
UserId int64 `json:"user_id"`
Body *AddUserTitleJSONRequestBody
}
type AddUserTitleResponseObject interface {
VisitAddUserTitleResponse(w http.ResponseWriter) error
}
type AddUserTitle200JSONResponse UserTitleMini
func (response AddUserTitle200JSONResponse) VisitAddUserTitleResponse(w http.ResponseWriter) error {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(200)
return json.NewEncoder(w).Encode(response)
}
type AddUserTitle400Response struct {
}
func (response AddUserTitle400Response) VisitAddUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(400)
return nil
}
type AddUserTitle401Response struct {
}
func (response AddUserTitle401Response) VisitAddUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(401)
return nil
}
type AddUserTitle403Response struct {
}
func (response AddUserTitle403Response) VisitAddUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(403)
return nil
}
type AddUserTitle404Response struct {
}
func (response AddUserTitle404Response) VisitAddUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(404)
return nil
}
type AddUserTitle409Response struct {
}
func (response AddUserTitle409Response) VisitAddUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(409)
return nil
}
type AddUserTitle500Response struct {
}
func (response AddUserTitle500Response) VisitAddUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(500)
return nil
}
type DeleteUserTitleRequestObject struct {
UserId int64 `json:"user_id"`
TitleId int64 `json:"title_id"`
}
type DeleteUserTitleResponseObject interface {
VisitDeleteUserTitleResponse(w http.ResponseWriter) error
}
type DeleteUserTitle200Response struct {
}
func (response DeleteUserTitle200Response) VisitDeleteUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(200)
return nil
}
type DeleteUserTitle401Response struct {
}
func (response DeleteUserTitle401Response) VisitDeleteUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(401)
return nil
}
type DeleteUserTitle403Response struct {
}
func (response DeleteUserTitle403Response) VisitDeleteUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(403)
return nil
}
type DeleteUserTitle404Response struct {
}
func (response DeleteUserTitle404Response) VisitDeleteUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(404)
return nil
}
type DeleteUserTitle500Response struct {
}
func (response DeleteUserTitle500Response) VisitDeleteUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(500)
return nil
}
type GetUserTitleRequestObject struct {
UserId int64 `json:"user_id"`
TitleId int64 `json:"title_id"`
}
type GetUserTitleResponseObject interface {
VisitGetUserTitleResponse(w http.ResponseWriter) error
}
type GetUserTitle200JSONResponse UserTitleMini
func (response GetUserTitle200JSONResponse) VisitGetUserTitleResponse(w http.ResponseWriter) error {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(200)
return json.NewEncoder(w).Encode(response)
}
type GetUserTitle204Response struct {
}
func (response GetUserTitle204Response) VisitGetUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(204)
return nil
}
type GetUserTitle400Response struct {
}
func (response GetUserTitle400Response) VisitGetUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(400)
return nil
}
type GetUserTitle404Response struct {
}
func (response GetUserTitle404Response) VisitGetUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(404)
return nil
}
type GetUserTitle500Response struct {
}
func (response GetUserTitle500Response) VisitGetUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(500)
return nil
}
type UpdateUserTitleRequestObject struct {
UserId int64 `json:"user_id"`
TitleId int64 `json:"title_id"`
Body *UpdateUserTitleJSONRequestBody
}
type UpdateUserTitleResponseObject interface {
VisitUpdateUserTitleResponse(w http.ResponseWriter) error
}
type UpdateUserTitle200JSONResponse UserTitleMini
func (response UpdateUserTitle200JSONResponse) VisitUpdateUserTitleResponse(w http.ResponseWriter) error {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(200)
return json.NewEncoder(w).Encode(response)
}
type UpdateUserTitle400Response struct {
}
func (response UpdateUserTitle400Response) VisitUpdateUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(400)
return nil
}
type UpdateUserTitle401Response struct {
}
func (response UpdateUserTitle401Response) VisitUpdateUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(401)
return nil
}
type UpdateUserTitle403Response struct {
}
func (response UpdateUserTitle403Response) VisitUpdateUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(403)
return nil
}
type UpdateUserTitle404Response struct {
}
func (response UpdateUserTitle404Response) VisitUpdateUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(404)
return nil
}
type UpdateUserTitle500Response struct {
}
func (response UpdateUserTitle500Response) VisitUpdateUserTitleResponse(w http.ResponseWriter) error {
w.WriteHeader(500)
return nil
}
// StrictServerInterface represents all server handlers.
type StrictServerInterface interface {
// Get titles
// (GET /titles)
GetTitles(ctx context.Context, request GetTitlesRequestObject) (GetTitlesResponseObject, error)
// Get title description
// (GET /titles/{title_id})
GetTitle(ctx context.Context, request GetTitleRequestObject) (GetTitleResponseObject, error)
// Get user info
// (GET /users/{user_id})
GetUsersId(ctx context.Context, request GetUsersIdRequestObject) (GetUsersIdResponseObject, error)
// Partially update a user account
// (PATCH /users/{user_id})
UpdateUser(ctx context.Context, request UpdateUserRequestObject) (UpdateUserResponseObject, error)
// Get user titles
// (GET /users/{user_id}/titles)
GetUserTitles(ctx context.Context, request GetUserTitlesRequestObject) (GetUserTitlesResponseObject, error)
// Add a title to a user
// (POST /users/{user_id}/titles)
AddUserTitle(ctx context.Context, request AddUserTitleRequestObject) (AddUserTitleResponseObject, error)
// Delete a usertitle
// (DELETE /users/{user_id}/titles/{title_id})
DeleteUserTitle(ctx context.Context, request DeleteUserTitleRequestObject) (DeleteUserTitleResponseObject, error)
// Get user title
// (GET /users/{user_id}/titles/{title_id})
GetUserTitle(ctx context.Context, request GetUserTitleRequestObject) (GetUserTitleResponseObject, error)
// Update a usertitle
// (PATCH /users/{user_id}/titles/{title_id})
UpdateUserTitle(ctx context.Context, request UpdateUserTitleRequestObject) (UpdateUserTitleResponseObject, 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
}
// GetTitles operation middleware
func (sh *strictHandler) GetTitles(ctx *gin.Context, params GetTitlesParams) {
var request GetTitlesRequestObject
request.Params = params
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
return sh.ssi.GetTitles(ctx, request.(GetTitlesRequestObject))
}
for _, middleware := range sh.middlewares {
handler = middleware(handler, "GetTitles")
}
response, err := handler(ctx, request)
if err != nil {
ctx.Error(err)
ctx.Status(http.StatusInternalServerError)
} else if validResponse, ok := response.(GetTitlesResponseObject); ok {
if err := validResponse.VisitGetTitlesResponse(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, titleId int64, params GetTitleParams) {
var request GetTitleRequestObject
request.TitleId = titleId
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))
}
}
// GetUsersId operation middleware
func (sh *strictHandler) GetUsersId(ctx *gin.Context, userId string, params GetUsersIdParams) {
var request GetUsersIdRequestObject
request.UserId = userId
request.Params = params
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
return sh.ssi.GetUsersId(ctx, request.(GetUsersIdRequestObject))
}
for _, middleware := range sh.middlewares {
handler = middleware(handler, "GetUsersId")
}
response, err := handler(ctx, request)
if err != nil {
ctx.Error(err)
ctx.Status(http.StatusInternalServerError)
} else if validResponse, ok := response.(GetUsersIdResponseObject); ok {
if err := validResponse.VisitGetUsersIdResponse(ctx.Writer); err != nil {
ctx.Error(err)
}
} else if response != nil {
ctx.Error(fmt.Errorf("unexpected response type: %T", response))
}
}
// UpdateUser operation middleware
func (sh *strictHandler) UpdateUser(ctx *gin.Context, userId int64, params UpdateUserParams) {
var request UpdateUserRequestObject
request.UserId = userId
request.Params = params
var body UpdateUserJSONRequestBody
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.UpdateUser(ctx, request.(UpdateUserRequestObject))
}
for _, middleware := range sh.middlewares {
handler = middleware(handler, "UpdateUser")
}
response, err := handler(ctx, request)
if err != nil {
ctx.Error(err)
ctx.Status(http.StatusInternalServerError)
} else if validResponse, ok := response.(UpdateUserResponseObject); ok {
if err := validResponse.VisitUpdateUserResponse(ctx.Writer); err != nil {
ctx.Error(err)
}
} else if response != nil {
ctx.Error(fmt.Errorf("unexpected response type: %T", response))
}
}
// GetUserTitles operation middleware
func (sh *strictHandler) GetUserTitles(ctx *gin.Context, userId string, params GetUserTitlesParams) {
var request GetUserTitlesRequestObject
request.UserId = userId
request.Params = params
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
return sh.ssi.GetUserTitles(ctx, request.(GetUserTitlesRequestObject))
}
for _, middleware := range sh.middlewares {
handler = middleware(handler, "GetUserTitles")
}
response, err := handler(ctx, request)
if err != nil {
ctx.Error(err)
ctx.Status(http.StatusInternalServerError)
} else if validResponse, ok := response.(GetUserTitlesResponseObject); ok {
if err := validResponse.VisitGetUserTitlesResponse(ctx.Writer); err != nil {
ctx.Error(err)
}
} else if response != nil {
ctx.Error(fmt.Errorf("unexpected response type: %T", response))
}
}
// AddUserTitle operation middleware
func (sh *strictHandler) AddUserTitle(ctx *gin.Context, userId int64) {
var request AddUserTitleRequestObject
request.UserId = userId
var body AddUserTitleJSONRequestBody
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.AddUserTitle(ctx, request.(AddUserTitleRequestObject))
}
for _, middleware := range sh.middlewares {
handler = middleware(handler, "AddUserTitle")
}
response, err := handler(ctx, request)
if err != nil {
ctx.Error(err)
ctx.Status(http.StatusInternalServerError)
} else if validResponse, ok := response.(AddUserTitleResponseObject); ok {
if err := validResponse.VisitAddUserTitleResponse(ctx.Writer); err != nil {
ctx.Error(err)
}
} else if response != nil {
ctx.Error(fmt.Errorf("unexpected response type: %T", response))
}
}
// DeleteUserTitle operation middleware
func (sh *strictHandler) DeleteUserTitle(ctx *gin.Context, userId int64, titleId int64) {
var request DeleteUserTitleRequestObject
request.UserId = userId
request.TitleId = titleId
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
return sh.ssi.DeleteUserTitle(ctx, request.(DeleteUserTitleRequestObject))
}
for _, middleware := range sh.middlewares {
handler = middleware(handler, "DeleteUserTitle")
}
response, err := handler(ctx, request)
if err != nil {
ctx.Error(err)
ctx.Status(http.StatusInternalServerError)
} else if validResponse, ok := response.(DeleteUserTitleResponseObject); ok {
if err := validResponse.VisitDeleteUserTitleResponse(ctx.Writer); err != nil {
ctx.Error(err)
}
} else if response != nil {
ctx.Error(fmt.Errorf("unexpected response type: %T", response))
}
}
// GetUserTitle operation middleware
func (sh *strictHandler) GetUserTitle(ctx *gin.Context, userId int64, titleId int64) {
var request GetUserTitleRequestObject
request.UserId = userId
request.TitleId = titleId
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
return sh.ssi.GetUserTitle(ctx, request.(GetUserTitleRequestObject))
}
for _, middleware := range sh.middlewares {
handler = middleware(handler, "GetUserTitle")
}
response, err := handler(ctx, request)
if err != nil {
ctx.Error(err)
ctx.Status(http.StatusInternalServerError)
} else if validResponse, ok := response.(GetUserTitleResponseObject); ok {
if err := validResponse.VisitGetUserTitleResponse(ctx.Writer); err != nil {
ctx.Error(err)
}
} else if response != nil {
ctx.Error(fmt.Errorf("unexpected response type: %T", response))
}
}
// UpdateUserTitle operation middleware
func (sh *strictHandler) UpdateUserTitle(ctx *gin.Context, userId int64, titleId int64) {
var request UpdateUserTitleRequestObject
request.UserId = userId
request.TitleId = titleId
var body UpdateUserTitleJSONRequestBody
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.UpdateUserTitle(ctx, request.(UpdateUserTitleRequestObject))
}
for _, middleware := range sh.middlewares {
handler = middleware(handler, "UpdateUserTitle")
}
response, err := handler(ctx, request)
if err != nil {
ctx.Error(err)
ctx.Status(http.StatusInternalServerError)
} else if validResponse, ok := response.(UpdateUserTitleResponseObject); ok {
if err := validResponse.VisitUpdateUserTitleResponse(ctx.Writer); err != nil {
ctx.Error(err)
}
} else if response != nil {
ctx.Error(fmt.Errorf("unexpected response type: %T", response))
}
}