feat: get user titles described
This commit is contained in:
parent
8deba7afd9
commit
09d0d1eb4d
5 changed files with 461 additions and 124 deletions
447
api/api.gen.go
447
api/api.gen.go
|
|
@ -26,9 +26,17 @@ const (
|
||||||
|
|
||||||
// Defines values for TitleStatus.
|
// Defines values for TitleStatus.
|
||||||
const (
|
const (
|
||||||
Finished TitleStatus = "finished"
|
TitleStatusFinished TitleStatus = "finished"
|
||||||
Ongoing TitleStatus = "ongoing"
|
TitleStatusOngoing TitleStatus = "ongoing"
|
||||||
Planned TitleStatus = "planned"
|
TitleStatusPlanned TitleStatus = "planned"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Defines values for UserTitleStatus.
|
||||||
|
const (
|
||||||
|
UserTitleStatusDropped UserTitleStatus = "dropped"
|
||||||
|
UserTitleStatusFinished UserTitleStatus = "finished"
|
||||||
|
UserTitleStatusInProgress UserTitleStatus = "in-progress"
|
||||||
|
UserTitleStatusPlanned UserTitleStatus = "planned"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Image defines model for Image.
|
// Image defines model for Image.
|
||||||
|
|
@ -110,8 +118,27 @@ type User struct {
|
||||||
UserDesc *string `json:"user_desc,omitempty"`
|
UserDesc *string `json:"user_desc,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTitleParams defines parameters for GetTitle.
|
// UserTitle defines model for UserTitle.
|
||||||
type GetTitleParams struct {
|
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"`
|
||||||
|
TitleId int64 `json:"title_id"`
|
||||||
|
UserId int64 `json:"user_id"`
|
||||||
|
AdditionalProperties map[string]interface{} `json:"-"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// UserTitleStatus User's title status
|
||||||
|
type UserTitleStatus string
|
||||||
|
|
||||||
|
// Cursor defines model for cursor.
|
||||||
|
type Cursor = string
|
||||||
|
|
||||||
|
// GetTitlesParams defines parameters for GetTitles.
|
||||||
|
type GetTitlesParams struct {
|
||||||
Word *string `form:"word,omitempty" json:"word,omitempty"`
|
Word *string `form:"word,omitempty" json:"word,omitempty"`
|
||||||
Status *TitleStatus `form:"status,omitempty" json:"status,omitempty"`
|
Status *TitleStatus `form:"status,omitempty" json:"status,omitempty"`
|
||||||
Rating *float64 `form:"rating,omitempty" json:"rating,omitempty"`
|
Rating *float64 `form:"rating,omitempty" json:"rating,omitempty"`
|
||||||
|
|
@ -122,8 +149,8 @@ type GetTitleParams struct {
|
||||||
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTitleTitleIdParams defines parameters for GetTitleTitleId.
|
// GetTitlesTitleIdParams defines parameters for GetTitlesTitleId.
|
||||||
type GetTitleTitleIdParams struct {
|
type GetTitlesTitleIdParams struct {
|
||||||
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -132,6 +159,15 @@ type GetUsersUserIdParams struct {
|
||||||
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetUsersUserIdTitlesParams defines parameters for GetUsersUserIdTitles.
|
||||||
|
type GetUsersUserIdTitlesParams struct {
|
||||||
|
Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"`
|
||||||
|
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"`
|
||||||
|
}
|
||||||
|
|
||||||
// Getter for additional properties for Title. Returns the specified
|
// Getter for additional properties for Title. Returns the specified
|
||||||
// element and whether it was found
|
// element and whether it was found
|
||||||
func (a Title) Get(fieldName string) (value interface{}, found bool) {
|
func (a Title) Get(fieldName string) (value interface{}, found bool) {
|
||||||
|
|
@ -374,17 +410,157 @@ func (a Title) MarshalJSON() ([]byte, error) {
|
||||||
return json.Marshal(object)
|
return json.Marshal(object)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Getter for additional properties for UserTitle. Returns the specified
|
||||||
|
// element and whether it was found
|
||||||
|
func (a UserTitle) Get(fieldName string) (value interface{}, found bool) {
|
||||||
|
if a.AdditionalProperties != nil {
|
||||||
|
value, found = a.AdditionalProperties[fieldName]
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setter for additional properties for UserTitle
|
||||||
|
func (a *UserTitle) Set(fieldName string, value interface{}) {
|
||||||
|
if a.AdditionalProperties == nil {
|
||||||
|
a.AdditionalProperties = make(map[string]interface{})
|
||||||
|
}
|
||||||
|
a.AdditionalProperties[fieldName] = value
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override default JSON handling for UserTitle to handle AdditionalProperties
|
||||||
|
func (a *UserTitle) UnmarshalJSON(b []byte) error {
|
||||||
|
object := make(map[string]json.RawMessage)
|
||||||
|
err := json.Unmarshal(b, &object)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if raw, found := object["ctime"]; found {
|
||||||
|
err = json.Unmarshal(raw, &a.Ctime)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error reading 'ctime': %w", err)
|
||||||
|
}
|
||||||
|
delete(object, "ctime")
|
||||||
|
}
|
||||||
|
|
||||||
|
if raw, found := object["rate"]; found {
|
||||||
|
err = json.Unmarshal(raw, &a.Rate)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error reading 'rate': %w", err)
|
||||||
|
}
|
||||||
|
delete(object, "rate")
|
||||||
|
}
|
||||||
|
|
||||||
|
if raw, found := object["review_id"]; found {
|
||||||
|
err = json.Unmarshal(raw, &a.ReviewId)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error reading 'review_id': %w", err)
|
||||||
|
}
|
||||||
|
delete(object, "review_id")
|
||||||
|
}
|
||||||
|
|
||||||
|
if raw, found := object["status"]; found {
|
||||||
|
err = json.Unmarshal(raw, &a.Status)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error reading 'status': %w", err)
|
||||||
|
}
|
||||||
|
delete(object, "status")
|
||||||
|
}
|
||||||
|
|
||||||
|
if raw, found := object["title_id"]; found {
|
||||||
|
err = json.Unmarshal(raw, &a.TitleId)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error reading 'title_id': %w", err)
|
||||||
|
}
|
||||||
|
delete(object, "title_id")
|
||||||
|
}
|
||||||
|
|
||||||
|
if raw, found := object["user_id"]; found {
|
||||||
|
err = json.Unmarshal(raw, &a.UserId)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error reading 'user_id': %w", err)
|
||||||
|
}
|
||||||
|
delete(object, "user_id")
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(object) != 0 {
|
||||||
|
a.AdditionalProperties = make(map[string]interface{})
|
||||||
|
for fieldName, fieldBuf := range object {
|
||||||
|
var fieldVal interface{}
|
||||||
|
err := json.Unmarshal(fieldBuf, &fieldVal)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error unmarshaling field %s: %w", fieldName, err)
|
||||||
|
}
|
||||||
|
a.AdditionalProperties[fieldName] = fieldVal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override default JSON handling for UserTitle to handle AdditionalProperties
|
||||||
|
func (a UserTitle) MarshalJSON() ([]byte, error) {
|
||||||
|
var err error
|
||||||
|
object := make(map[string]json.RawMessage)
|
||||||
|
|
||||||
|
if a.Ctime != nil {
|
||||||
|
object["ctime"], err = json.Marshal(a.Ctime)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("error marshaling 'ctime': %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if a.Rate != nil {
|
||||||
|
object["rate"], err = json.Marshal(a.Rate)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("error marshaling 'rate': %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if a.ReviewId != nil {
|
||||||
|
object["review_id"], err = json.Marshal(a.ReviewId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("error marshaling 'review_id': %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
object["status"], err = json.Marshal(a.Status)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("error marshaling 'status': %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
object["title_id"], err = json.Marshal(a.TitleId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("error marshaling 'title_id': %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
object["user_id"], err = json.Marshal(a.UserId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("error marshaling 'user_id': %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
for fieldName, field := range a.AdditionalProperties {
|
||||||
|
object[fieldName], err = json.Marshal(field)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return json.Marshal(object)
|
||||||
|
}
|
||||||
|
|
||||||
// ServerInterface represents all server handlers.
|
// ServerInterface represents all server handlers.
|
||||||
type ServerInterface interface {
|
type ServerInterface interface {
|
||||||
// Get titles
|
// Get titles
|
||||||
// (GET /title)
|
// (GET /titles)
|
||||||
GetTitle(c *gin.Context, params GetTitleParams)
|
GetTitles(c *gin.Context, params GetTitlesParams)
|
||||||
// Get title description
|
// Get title description
|
||||||
// (GET /title/{title_id})
|
// (GET /titles/{title_id})
|
||||||
GetTitleTitleId(c *gin.Context, titleId int64, params GetTitleTitleIdParams)
|
GetTitlesTitleId(c *gin.Context, titleId int64, params GetTitlesTitleIdParams)
|
||||||
// Get user info
|
// Get user info
|
||||||
// (GET /users/{user_id})
|
// (GET /users/{user_id})
|
||||||
GetUsersUserId(c *gin.Context, userId string, params GetUsersUserIdParams)
|
GetUsersUserId(c *gin.Context, userId string, params GetUsersUserIdParams)
|
||||||
|
// Get user titles
|
||||||
|
// (GET /users/{user_id}/titles/)
|
||||||
|
GetUsersUserIdTitles(c *gin.Context, userId string, params GetUsersUserIdTitlesParams)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServerInterfaceWrapper converts contexts to parameters.
|
// ServerInterfaceWrapper converts contexts to parameters.
|
||||||
|
|
@ -396,13 +572,13 @@ type ServerInterfaceWrapper struct {
|
||||||
|
|
||||||
type MiddlewareFunc func(c *gin.Context)
|
type MiddlewareFunc func(c *gin.Context)
|
||||||
|
|
||||||
// GetTitle operation middleware
|
// GetTitles operation middleware
|
||||||
func (siw *ServerInterfaceWrapper) GetTitle(c *gin.Context) {
|
func (siw *ServerInterfaceWrapper) GetTitles(c *gin.Context) {
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
// Parameter object where we will unmarshal all parameters from the context
|
// Parameter object where we will unmarshal all parameters from the context
|
||||||
var params GetTitleParams
|
var params GetTitlesParams
|
||||||
|
|
||||||
// ------------- Optional query parameter "word" -------------
|
// ------------- Optional query parameter "word" -------------
|
||||||
|
|
||||||
|
|
@ -475,11 +651,11 @@ func (siw *ServerInterfaceWrapper) GetTitle(c *gin.Context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
siw.Handler.GetTitle(c, params)
|
siw.Handler.GetTitles(c, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTitleTitleId operation middleware
|
// GetTitlesTitleId operation middleware
|
||||||
func (siw *ServerInterfaceWrapper) GetTitleTitleId(c *gin.Context) {
|
func (siw *ServerInterfaceWrapper) GetTitlesTitleId(c *gin.Context) {
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
|
@ -493,7 +669,7 @@ func (siw *ServerInterfaceWrapper) GetTitleTitleId(c *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parameter object where we will unmarshal all parameters from the context
|
// Parameter object where we will unmarshal all parameters from the context
|
||||||
var params GetTitleTitleIdParams
|
var params GetTitlesTitleIdParams
|
||||||
|
|
||||||
// ------------- Optional query parameter "fields" -------------
|
// ------------- Optional query parameter "fields" -------------
|
||||||
|
|
||||||
|
|
@ -510,7 +686,7 @@ func (siw *ServerInterfaceWrapper) GetTitleTitleId(c *gin.Context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
siw.Handler.GetTitleTitleId(c, titleId, params)
|
siw.Handler.GetTitlesTitleId(c, titleId, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetUsersUserId operation middleware
|
// GetUsersUserId operation middleware
|
||||||
|
|
@ -548,6 +724,73 @@ func (siw *ServerInterfaceWrapper) GetUsersUserId(c *gin.Context) {
|
||||||
siw.Handler.GetUsersUserId(c, userId, params)
|
siw.Handler.GetUsersUserId(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 "cursor" -------------
|
||||||
|
|
||||||
|
err = runtime.BindQueryParameter("form", true, false, "cursor", c.Request.URL.Query(), ¶ms.Cursor)
|
||||||
|
if err != nil {
|
||||||
|
siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter cursor: %w", err), http.StatusBadRequest)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------- 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)
|
||||||
|
}
|
||||||
|
|
||||||
// GinServerOptions provides options for the Gin server.
|
// GinServerOptions provides options for the Gin server.
|
||||||
type GinServerOptions struct {
|
type GinServerOptions struct {
|
||||||
BaseURL string
|
BaseURL string
|
||||||
|
|
@ -575,98 +818,99 @@ func RegisterHandlersWithOptions(router gin.IRouter, si ServerInterface, options
|
||||||
ErrorHandler: errorHandler,
|
ErrorHandler: errorHandler,
|
||||||
}
|
}
|
||||||
|
|
||||||
router.GET(options.BaseURL+"/title", wrapper.GetTitle)
|
router.GET(options.BaseURL+"/titles", wrapper.GetTitles)
|
||||||
router.GET(options.BaseURL+"/title/:title_id", wrapper.GetTitleTitleId)
|
router.GET(options.BaseURL+"/titles/:title_id", wrapper.GetTitlesTitleId)
|
||||||
router.GET(options.BaseURL+"/users/:user_id", wrapper.GetUsersUserId)
|
router.GET(options.BaseURL+"/users/:user_id", wrapper.GetUsersUserId)
|
||||||
|
router.GET(options.BaseURL+"/users/:user_id/titles/", wrapper.GetUsersUserIdTitles)
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitleRequestObject struct {
|
type GetTitlesRequestObject struct {
|
||||||
Params GetTitleParams
|
Params GetTitlesParams
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitleResponseObject interface {
|
type GetTitlesResponseObject interface {
|
||||||
VisitGetTitleResponse(w http.ResponseWriter) error
|
VisitGetTitlesResponse(w http.ResponseWriter) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitle200JSONResponse []Title
|
type GetTitles200JSONResponse []Title
|
||||||
|
|
||||||
func (response GetTitle200JSONResponse) VisitGetTitleResponse(w http.ResponseWriter) error {
|
func (response GetTitles200JSONResponse) VisitGetTitlesResponse(w http.ResponseWriter) error {
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
w.WriteHeader(200)
|
w.WriteHeader(200)
|
||||||
|
|
||||||
return json.NewEncoder(w).Encode(response)
|
return json.NewEncoder(w).Encode(response)
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitle204Response struct {
|
type GetTitles204Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetTitle204Response) VisitGetTitleResponse(w http.ResponseWriter) error {
|
func (response GetTitles204Response) VisitGetTitlesResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(204)
|
w.WriteHeader(204)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitle400Response struct {
|
type GetTitles400Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetTitle400Response) VisitGetTitleResponse(w http.ResponseWriter) error {
|
func (response GetTitles400Response) VisitGetTitlesResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(400)
|
w.WriteHeader(400)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitle500Response struct {
|
type GetTitles500Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetTitle500Response) VisitGetTitleResponse(w http.ResponseWriter) error {
|
func (response GetTitles500Response) VisitGetTitlesResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(500)
|
w.WriteHeader(500)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitleTitleIdRequestObject struct {
|
type GetTitlesTitleIdRequestObject struct {
|
||||||
TitleId int64 `json:"title_id"`
|
TitleId int64 `json:"title_id"`
|
||||||
Params GetTitleTitleIdParams
|
Params GetTitlesTitleIdParams
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitleTitleIdResponseObject interface {
|
type GetTitlesTitleIdResponseObject interface {
|
||||||
VisitGetTitleTitleIdResponse(w http.ResponseWriter) error
|
VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitleTitleId200JSONResponse Title
|
type GetTitlesTitleId200JSONResponse Title
|
||||||
|
|
||||||
func (response GetTitleTitleId200JSONResponse) VisitGetTitleTitleIdResponse(w http.ResponseWriter) error {
|
func (response GetTitlesTitleId200JSONResponse) VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error {
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
w.WriteHeader(200)
|
w.WriteHeader(200)
|
||||||
|
|
||||||
return json.NewEncoder(w).Encode(response)
|
return json.NewEncoder(w).Encode(response)
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitleTitleId204Response struct {
|
type GetTitlesTitleId204Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetTitleTitleId204Response) VisitGetTitleTitleIdResponse(w http.ResponseWriter) error {
|
func (response GetTitlesTitleId204Response) VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(204)
|
w.WriteHeader(204)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitleTitleId400Response struct {
|
type GetTitlesTitleId400Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetTitleTitleId400Response) VisitGetTitleTitleIdResponse(w http.ResponseWriter) error {
|
func (response GetTitlesTitleId400Response) VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(400)
|
w.WriteHeader(400)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitleTitleId404Response struct {
|
type GetTitlesTitleId404Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetTitleTitleId404Response) VisitGetTitleTitleIdResponse(w http.ResponseWriter) error {
|
func (response GetTitlesTitleId404Response) VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(404)
|
w.WriteHeader(404)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitleTitleId500Response struct {
|
type GetTitlesTitleId500Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetTitleTitleId500Response) VisitGetTitleTitleIdResponse(w http.ResponseWriter) error {
|
func (response GetTitlesTitleId500Response) VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(500)
|
w.WriteHeader(500)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -713,17 +957,62 @@ func (response GetUsersUserId500Response) VisitGetUsersUserIdResponse(w http.Res
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 GetUsersUserIdTitles400Response struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (response GetUsersUserIdTitles400Response) VisitGetUsersUserIdTitlesResponse(w http.ResponseWriter) error {
|
||||||
|
w.WriteHeader(400)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetUsersUserIdTitles500Response struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (response GetUsersUserIdTitles500Response) VisitGetUsersUserIdTitlesResponse(w http.ResponseWriter) error {
|
||||||
|
w.WriteHeader(500)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// StrictServerInterface represents all server handlers.
|
// StrictServerInterface represents all server handlers.
|
||||||
type StrictServerInterface interface {
|
type StrictServerInterface interface {
|
||||||
// Get titles
|
// Get titles
|
||||||
// (GET /title)
|
// (GET /titles)
|
||||||
GetTitle(ctx context.Context, request GetTitleRequestObject) (GetTitleResponseObject, error)
|
GetTitles(ctx context.Context, request GetTitlesRequestObject) (GetTitlesResponseObject, error)
|
||||||
// Get title description
|
// Get title description
|
||||||
// (GET /title/{title_id})
|
// (GET /titles/{title_id})
|
||||||
GetTitleTitleId(ctx context.Context, request GetTitleTitleIdRequestObject) (GetTitleTitleIdResponseObject, error)
|
GetTitlesTitleId(ctx context.Context, request GetTitlesTitleIdRequestObject) (GetTitlesTitleIdResponseObject, error)
|
||||||
// Get user info
|
// Get user info
|
||||||
// (GET /users/{user_id})
|
// (GET /users/{user_id})
|
||||||
GetUsersUserId(ctx context.Context, request GetUsersUserIdRequestObject) (GetUsersUserIdResponseObject, error)
|
GetUsersUserId(ctx context.Context, request GetUsersUserIdRequestObject) (GetUsersUserIdResponseObject, error)
|
||||||
|
// Get user titles
|
||||||
|
// (GET /users/{user_id}/titles/)
|
||||||
|
GetUsersUserIdTitles(ctx context.Context, request GetUsersUserIdTitlesRequestObject) (GetUsersUserIdTitlesResponseObject, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type StrictHandlerFunc = strictgin.StrictGinHandlerFunc
|
type StrictHandlerFunc = strictgin.StrictGinHandlerFunc
|
||||||
|
|
@ -738,17 +1027,17 @@ type strictHandler struct {
|
||||||
middlewares []StrictMiddlewareFunc
|
middlewares []StrictMiddlewareFunc
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTitle operation middleware
|
// GetTitles operation middleware
|
||||||
func (sh *strictHandler) GetTitle(ctx *gin.Context, params GetTitleParams) {
|
func (sh *strictHandler) GetTitles(ctx *gin.Context, params GetTitlesParams) {
|
||||||
var request GetTitleRequestObject
|
var request GetTitlesRequestObject
|
||||||
|
|
||||||
request.Params = params
|
request.Params = params
|
||||||
|
|
||||||
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
|
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
|
||||||
return sh.ssi.GetTitle(ctx, request.(GetTitleRequestObject))
|
return sh.ssi.GetTitles(ctx, request.(GetTitlesRequestObject))
|
||||||
}
|
}
|
||||||
for _, middleware := range sh.middlewares {
|
for _, middleware := range sh.middlewares {
|
||||||
handler = middleware(handler, "GetTitle")
|
handler = middleware(handler, "GetTitles")
|
||||||
}
|
}
|
||||||
|
|
||||||
response, err := handler(ctx, request)
|
response, err := handler(ctx, request)
|
||||||
|
|
@ -756,8 +1045,8 @@ func (sh *strictHandler) GetTitle(ctx *gin.Context, params GetTitleParams) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
ctx.Status(http.StatusInternalServerError)
|
ctx.Status(http.StatusInternalServerError)
|
||||||
} else if validResponse, ok := response.(GetTitleResponseObject); ok {
|
} else if validResponse, ok := response.(GetTitlesResponseObject); ok {
|
||||||
if err := validResponse.VisitGetTitleResponse(ctx.Writer); err != nil {
|
if err := validResponse.VisitGetTitlesResponse(ctx.Writer); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
}
|
}
|
||||||
} else if response != nil {
|
} else if response != nil {
|
||||||
|
|
@ -765,18 +1054,18 @@ func (sh *strictHandler) GetTitle(ctx *gin.Context, params GetTitleParams) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTitleTitleId operation middleware
|
// GetTitlesTitleId operation middleware
|
||||||
func (sh *strictHandler) GetTitleTitleId(ctx *gin.Context, titleId int64, params GetTitleTitleIdParams) {
|
func (sh *strictHandler) GetTitlesTitleId(ctx *gin.Context, titleId int64, params GetTitlesTitleIdParams) {
|
||||||
var request GetTitleTitleIdRequestObject
|
var request GetTitlesTitleIdRequestObject
|
||||||
|
|
||||||
request.TitleId = titleId
|
request.TitleId = titleId
|
||||||
request.Params = params
|
request.Params = params
|
||||||
|
|
||||||
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
|
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
|
||||||
return sh.ssi.GetTitleTitleId(ctx, request.(GetTitleTitleIdRequestObject))
|
return sh.ssi.GetTitlesTitleId(ctx, request.(GetTitlesTitleIdRequestObject))
|
||||||
}
|
}
|
||||||
for _, middleware := range sh.middlewares {
|
for _, middleware := range sh.middlewares {
|
||||||
handler = middleware(handler, "GetTitleTitleId")
|
handler = middleware(handler, "GetTitlesTitleId")
|
||||||
}
|
}
|
||||||
|
|
||||||
response, err := handler(ctx, request)
|
response, err := handler(ctx, request)
|
||||||
|
|
@ -784,8 +1073,8 @@ func (sh *strictHandler) GetTitleTitleId(ctx *gin.Context, titleId int64, params
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
ctx.Status(http.StatusInternalServerError)
|
ctx.Status(http.StatusInternalServerError)
|
||||||
} else if validResponse, ok := response.(GetTitleTitleIdResponseObject); ok {
|
} else if validResponse, ok := response.(GetTitlesTitleIdResponseObject); ok {
|
||||||
if err := validResponse.VisitGetTitleTitleIdResponse(ctx.Writer); err != nil {
|
if err := validResponse.VisitGetTitlesTitleIdResponse(ctx.Writer); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
}
|
}
|
||||||
} else if response != nil {
|
} else if response != nil {
|
||||||
|
|
@ -820,3 +1109,31 @@ func (sh *strictHandler) GetUsersUserId(ctx *gin.Context, userId string, params
|
||||||
ctx.Error(fmt.Errorf("unexpected response type: %T", response))
|
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))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ servers:
|
||||||
- url: /api/v1
|
- url: /api/v1
|
||||||
|
|
||||||
paths:
|
paths:
|
||||||
/title:
|
/titles:
|
||||||
get:
|
get:
|
||||||
summary: Get titles
|
summary: Get titles
|
||||||
parameters:
|
parameters:
|
||||||
|
|
@ -66,7 +66,7 @@ paths:
|
||||||
'500':
|
'500':
|
||||||
description: Unknown server error
|
description: Unknown server error
|
||||||
|
|
||||||
/title/{title_id}:
|
/titles/{title_id}:
|
||||||
get:
|
get:
|
||||||
summary: Get title description
|
summary: Get title description
|
||||||
parameters:
|
parameters:
|
||||||
|
|
@ -126,7 +126,7 @@ paths:
|
||||||
# user_json:
|
# user_json:
|
||||||
# $ref: '#/components/schemas/User'
|
# $ref: '#/components/schemas/User'
|
||||||
|
|
||||||
# /title/{title_id}/reviews:
|
# /titles/{title_id}/reviews:
|
||||||
# get:
|
# get:
|
||||||
# summary: Get title reviews
|
# summary: Get title reviews
|
||||||
# parameters:
|
# parameters:
|
||||||
|
|
@ -278,45 +278,50 @@ paths:
|
||||||
# user_json:
|
# user_json:
|
||||||
# $ref: '#/components/schemas/User'
|
# $ref: '#/components/schemas/User'
|
||||||
|
|
||||||
# /users/{user_id}/titles:
|
/users/{user_id}/titles/:
|
||||||
# get:
|
get:
|
||||||
# summary: Get user titles
|
summary: Get user titles
|
||||||
# parameters:
|
parameters:
|
||||||
# - in: path
|
- $ref: '#/components/parameters/cursor'
|
||||||
# name: user_id
|
- in: path
|
||||||
# required: true
|
name: user_id
|
||||||
# schema:
|
required: true
|
||||||
# type: string
|
schema:
|
||||||
# - in: query
|
type: string
|
||||||
# name: query
|
- in: query
|
||||||
# schema:
|
name: query
|
||||||
# type: string
|
schema:
|
||||||
# - in: query
|
type: string
|
||||||
# name: limit
|
- in: query
|
||||||
# schema:
|
name: limit
|
||||||
# type: integer
|
schema:
|
||||||
# default: 10
|
type: integer
|
||||||
# - in: query
|
default: 10
|
||||||
# name: offset
|
- in: query
|
||||||
# schema:
|
name: offset
|
||||||
# type: integer
|
schema:
|
||||||
# default: 0
|
type: integer
|
||||||
# - in: query
|
default: 0
|
||||||
# name: fields
|
- in: query
|
||||||
# schema:
|
name: fields
|
||||||
# type: string
|
schema:
|
||||||
# default: all
|
type: string
|
||||||
# responses:
|
default: all
|
||||||
# '200':
|
responses:
|
||||||
# description: List of user titles
|
'200':
|
||||||
# content:
|
description: List of user titles
|
||||||
# application/json:
|
content:
|
||||||
# schema:
|
application/json:
|
||||||
# type: array
|
schema:
|
||||||
# items:
|
type: array
|
||||||
# $ref: '#/components/schemas/UserTitle'
|
items:
|
||||||
# '204':
|
$ref: '#/components/schemas/UserTitle'
|
||||||
# description: No titles found
|
'204':
|
||||||
|
description: No titles found
|
||||||
|
'400':
|
||||||
|
description: Request params are not correct
|
||||||
|
'500':
|
||||||
|
description: Unknown server error
|
||||||
|
|
||||||
# post:
|
# post:
|
||||||
# summary: Add user title
|
# summary: Add user title
|
||||||
|
|
@ -571,6 +576,14 @@ paths:
|
||||||
# type: string
|
# type: string
|
||||||
|
|
||||||
components:
|
components:
|
||||||
|
parameters:
|
||||||
|
cursor:
|
||||||
|
in: query
|
||||||
|
name: cursor
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
|
||||||
schemas:
|
schemas:
|
||||||
Image:
|
Image:
|
||||||
type: object
|
type: object
|
||||||
|
|
@ -769,7 +782,7 @@ components:
|
||||||
type: integer
|
type: integer
|
||||||
format: int64
|
format: int64
|
||||||
status:
|
status:
|
||||||
$ref: '#components/schemas/UserTitleStatus'
|
$ref: '#/components/schemas/UserTitleStatus'
|
||||||
rate:
|
rate:
|
||||||
type: integer
|
type: integer
|
||||||
format: int32
|
format: int32
|
||||||
|
|
|
||||||
|
|
@ -25,11 +25,11 @@ func TitleStatus2Sqlc(s *oapi.TitleStatus) (*sqlc.TitleStatusT, error) {
|
||||||
}
|
}
|
||||||
var t sqlc.TitleStatusT
|
var t sqlc.TitleStatusT
|
||||||
switch *s {
|
switch *s {
|
||||||
case oapi.Finished:
|
case oapi.TitleStatusFinished:
|
||||||
t = sqlc.TitleStatusTFinished
|
t = sqlc.TitleStatusTFinished
|
||||||
case oapi.Ongoing:
|
case oapi.TitleStatusOngoing:
|
||||||
t = sqlc.TitleStatusTOngoing
|
t = sqlc.TitleStatusTOngoing
|
||||||
case oapi.Planned:
|
case oapi.TitleStatusPlanned:
|
||||||
t = sqlc.TitleStatusTPlanned
|
t = sqlc.TitleStatusTPlanned
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unexpected tittle status: %s", *s)
|
return nil, fmt.Errorf("unexpected tittle status: %s", *s)
|
||||||
|
|
@ -195,40 +195,40 @@ func (s Server) mapTitle(ctx context.Context, title sqlc.Title) (oapi.Title, err
|
||||||
return oapi_title, nil
|
return oapi_title, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s Server) GetTitleTitleId(ctx context.Context, request oapi.GetTitleTitleIdRequestObject) (oapi.GetTitleTitleIdResponseObject, error) {
|
func (s Server) GetTitlesTitleId(ctx context.Context, request oapi.GetTitlesTitleIdRequestObject) (oapi.GetTitlesTitleIdResponseObject, error) {
|
||||||
var oapi_title oapi.Title
|
var oapi_title oapi.Title
|
||||||
|
|
||||||
sqlc_title, err := s.db.GetTitleByID(ctx, request.TitleId)
|
sqlc_title, err := s.db.GetTitleByID(ctx, request.TitleId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == pgx.ErrNoRows {
|
if err == pgx.ErrNoRows {
|
||||||
return oapi.GetTitleTitleId204Response{}, nil
|
return oapi.GetTitlesTitleId204Response{}, nil
|
||||||
}
|
}
|
||||||
log.Errorf("%v", err)
|
log.Errorf("%v", err)
|
||||||
return oapi.GetTitleTitleId500Response{}, nil
|
return oapi.GetTitlesTitleId500Response{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
oapi_title, err = s.mapTitle(ctx, sqlc_title)
|
oapi_title, err = s.mapTitle(ctx, sqlc_title)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("%v", err)
|
log.Errorf("%v", err)
|
||||||
return oapi.GetTitleTitleId500Response{}, nil
|
return oapi.GetTitlesTitleId500Response{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return oapi.GetTitleTitleId200JSONResponse(oapi_title), nil
|
return oapi.GetTitlesTitleId200JSONResponse(oapi_title), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s Server) GetTitle(ctx context.Context, request oapi.GetTitleRequestObject) (oapi.GetTitleResponseObject, error) {
|
func (s Server) GetTitles(ctx context.Context, request oapi.GetTitlesRequestObject) (oapi.GetTitlesResponseObject, error) {
|
||||||
opai_titles := make([]oapi.Title, 0)
|
opai_titles := make([]oapi.Title, 0)
|
||||||
|
|
||||||
word := Word2Sqlc(request.Params.Word)
|
word := Word2Sqlc(request.Params.Word)
|
||||||
status, err := TitleStatus2Sqlc(request.Params.Status)
|
status, err := TitleStatus2Sqlc(request.Params.Status)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("%v", err)
|
log.Errorf("%v", err)
|
||||||
return oapi.GetTitle400Response{}, err
|
return oapi.GetTitles400Response{}, err
|
||||||
}
|
}
|
||||||
season, err := ReleaseSeason2sqlc(request.Params.ReleaseSeason)
|
season, err := ReleaseSeason2sqlc(request.Params.ReleaseSeason)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("%v", err)
|
log.Errorf("%v", err)
|
||||||
return oapi.GetTitle400Response{}, err
|
return oapi.GetTitles400Response{}, err
|
||||||
}
|
}
|
||||||
// param = nil means it will not be used
|
// param = nil means it will not be used
|
||||||
titles, err := s.db.SearchTitles(ctx, sqlc.SearchTitlesParams{
|
titles, err := s.db.SearchTitles(ctx, sqlc.SearchTitlesParams{
|
||||||
|
|
@ -242,10 +242,10 @@ func (s Server) GetTitle(ctx context.Context, request oapi.GetTitleRequestObject
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("%v", err)
|
log.Errorf("%v", err)
|
||||||
return oapi.GetTitle500Response{}, nil
|
return oapi.GetTitles500Response{}, nil
|
||||||
}
|
}
|
||||||
if len(titles) == 0 {
|
if len(titles) == 0 {
|
||||||
return oapi.GetTitle204Response{}, nil
|
return oapi.GetTitles204Response{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, title := range titles {
|
for _, title := range titles {
|
||||||
|
|
@ -253,10 +253,10 @@ func (s Server) GetTitle(ctx context.Context, request oapi.GetTitleRequestObject
|
||||||
t, err := s.mapTitle(ctx, title)
|
t, err := s.mapTitle(ctx, title)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("%v", err)
|
log.Errorf("%v", err)
|
||||||
return oapi.GetTitle500Response{}, nil
|
return oapi.GetTitles500Response{}, nil
|
||||||
}
|
}
|
||||||
opai_titles = append(opai_titles, t)
|
opai_titles = append(opai_titles, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
return oapi.GetTitle200JSONResponse(opai_titles), nil
|
return oapi.GetTitles200JSONResponse(opai_titles), nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,3 +48,10 @@ func (s Server) GetUsersUserId(ctx context.Context, req oapi.GetUsersUserIdReque
|
||||||
}
|
}
|
||||||
return oapi.GetUsersUserId200JSONResponse(mapUser(user)), nil
|
return oapi.GetUsersUserId200JSONResponse(mapUser(user)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s Server) GetUsersUserIdTitles(ctx context.Context, request oapi.GetUsersUserIdTitlesRequestObject) (oapi.GetUsersUserIdTitlesResponseObject, error) {
|
||||||
|
|
||||||
|
// oapi_user_titles := make([]oapi.UserTitle, 0)
|
||||||
|
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ CREATE TABLE usertitles (
|
||||||
title_id bigint NOT NULL REFERENCES titles (id),
|
title_id bigint NOT NULL REFERENCES titles (id),
|
||||||
status usertitle_status_t NOT NULL,
|
status usertitle_status_t NOT NULL,
|
||||||
rate int CHECK (rate > 0 AND rate <= 10),
|
rate int CHECK (rate > 0 AND rate <= 10),
|
||||||
review_id bigint NOT NULL REFERENCES reviews (id),
|
review_id bigint REFERENCES reviews (id),
|
||||||
ctime timestamptz
|
ctime timestamptz
|
||||||
-- // TODO: series status
|
-- // TODO: series status
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue