feat: delete usertitle implemented
This commit is contained in:
parent
246fdc86b5
commit
451df61127
7 changed files with 160 additions and 492 deletions
|
|
@ -419,7 +419,12 @@ paths:
|
||||||
schema:
|
schema:
|
||||||
type: integer
|
type: integer
|
||||||
format: int64
|
format: int64
|
||||||
example: 123
|
- name: title_id
|
||||||
|
in: query
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
format: int64
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Title successfully deleted
|
description: Title successfully deleted
|
||||||
|
|
@ -581,7 +586,6 @@ components:
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
type: number
|
type: number
|
||||||
format: double
|
format: double
|
||||||
additionalProperties: true
|
|
||||||
required:
|
required:
|
||||||
- id
|
- id
|
||||||
- title_names
|
- title_names
|
||||||
|
|
|
||||||
392
api/api.gen.go
392
api/api.gen.go
|
|
@ -112,8 +112,7 @@ type Title struct {
|
||||||
TitleNames map[string][]string `json:"title_names"`
|
TitleNames map[string][]string `json:"title_names"`
|
||||||
|
|
||||||
// TitleStatus Title status
|
// TitleStatus Title status
|
||||||
TitleStatus *TitleStatus `json:"title_status,omitempty"`
|
TitleStatus *TitleStatus `json:"title_status,omitempty"`
|
||||||
AdditionalProperties map[string]interface{} `json:"-"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TitleSort Title sort order
|
// TitleSort Title sort order
|
||||||
|
|
@ -191,13 +190,13 @@ type GetTitlesParams struct {
|
||||||
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTitlesTitleIdParams defines parameters for GetTitlesTitleId.
|
// GetTitleParams defines parameters for GetTitle.
|
||||||
type GetTitlesTitleIdParams struct {
|
type GetTitleParams struct {
|
||||||
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetUsersUserIdParams defines parameters for GetUsersUserId.
|
// GetUsersIdParams defines parameters for GetUsersId.
|
||||||
type GetUsersUserIdParams struct {
|
type GetUsersIdParams struct {
|
||||||
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -219,6 +218,11 @@ type UpdateUserJSONBody struct {
|
||||||
UserDesc *string `json:"user_desc,omitempty"`
|
UserDesc *string `json:"user_desc,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeleteUserTitleParams defines parameters for DeleteUserTitle.
|
||||||
|
type DeleteUserTitleParams struct {
|
||||||
|
TitleId int64 `form:"title_id" json:"title_id"`
|
||||||
|
}
|
||||||
|
|
||||||
// GetUsersUserIdTitlesParams defines parameters for GetUsersUserIdTitles.
|
// GetUsersUserIdTitlesParams defines parameters for GetUsersUserIdTitles.
|
||||||
type GetUsersUserIdTitlesParams struct {
|
type GetUsersUserIdTitlesParams struct {
|
||||||
Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"`
|
Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"`
|
||||||
|
|
@ -264,248 +268,6 @@ type UpdateUserTitleJSONRequestBody UpdateUserTitleJSONBody
|
||||||
// AddUserTitleJSONRequestBody defines body for AddUserTitle for application/json ContentType.
|
// AddUserTitleJSONRequestBody defines body for AddUserTitle for application/json ContentType.
|
||||||
type AddUserTitleJSONRequestBody AddUserTitleJSONBody
|
type AddUserTitleJSONRequestBody AddUserTitleJSONBody
|
||||||
|
|
||||||
// Getter for additional properties for Title. Returns the specified
|
|
||||||
// element and whether it was found
|
|
||||||
func (a Title) Get(fieldName string) (value interface{}, found bool) {
|
|
||||||
if a.AdditionalProperties != nil {
|
|
||||||
value, found = a.AdditionalProperties[fieldName]
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setter for additional properties for Title
|
|
||||||
func (a *Title) Set(fieldName string, value interface{}) {
|
|
||||||
if a.AdditionalProperties == nil {
|
|
||||||
a.AdditionalProperties = make(map[string]interface{})
|
|
||||||
}
|
|
||||||
a.AdditionalProperties[fieldName] = value
|
|
||||||
}
|
|
||||||
|
|
||||||
// Override default JSON handling for Title to handle AdditionalProperties
|
|
||||||
func (a *Title) UnmarshalJSON(b []byte) error {
|
|
||||||
object := make(map[string]json.RawMessage)
|
|
||||||
err := json.Unmarshal(b, &object)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["episodes_aired"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.EpisodesAired)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'episodes_aired': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "episodes_aired")
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["episodes_all"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.EpisodesAll)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'episodes_all': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "episodes_all")
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["episodes_len"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.EpisodesLen)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'episodes_len': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "episodes_len")
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["id"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.Id)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'id': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "id")
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["poster"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.Poster)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'poster': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "poster")
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["rating"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.Rating)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'rating': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "rating")
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["rating_count"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.RatingCount)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'rating_count': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "rating_count")
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["release_season"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.ReleaseSeason)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'release_season': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "release_season")
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["release_year"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.ReleaseYear)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'release_year': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "release_year")
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["studio"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.Studio)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'studio': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "studio")
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["tags"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.Tags)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'tags': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "tags")
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["title_names"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.TitleNames)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'title_names': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "title_names")
|
|
||||||
}
|
|
||||||
|
|
||||||
if raw, found := object["title_status"]; found {
|
|
||||||
err = json.Unmarshal(raw, &a.TitleStatus)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error reading 'title_status': %w", err)
|
|
||||||
}
|
|
||||||
delete(object, "title_status")
|
|
||||||
}
|
|
||||||
|
|
||||||
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 Title to handle AdditionalProperties
|
|
||||||
func (a Title) MarshalJSON() ([]byte, error) {
|
|
||||||
var err error
|
|
||||||
object := make(map[string]json.RawMessage)
|
|
||||||
|
|
||||||
if a.EpisodesAired != nil {
|
|
||||||
object["episodes_aired"], err = json.Marshal(a.EpisodesAired)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'episodes_aired': %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if a.EpisodesAll != nil {
|
|
||||||
object["episodes_all"], err = json.Marshal(a.EpisodesAll)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'episodes_all': %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if a.EpisodesLen != nil {
|
|
||||||
object["episodes_len"], err = json.Marshal(a.EpisodesLen)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'episodes_len': %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
object["id"], err = json.Marshal(a.Id)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'id': %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if a.Poster != nil {
|
|
||||||
object["poster"], err = json.Marshal(a.Poster)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'poster': %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if a.Rating != nil {
|
|
||||||
object["rating"], err = json.Marshal(a.Rating)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'rating': %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if a.RatingCount != nil {
|
|
||||||
object["rating_count"], err = json.Marshal(a.RatingCount)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'rating_count': %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if a.ReleaseSeason != nil {
|
|
||||||
object["release_season"], err = json.Marshal(a.ReleaseSeason)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'release_season': %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if a.ReleaseYear != nil {
|
|
||||||
object["release_year"], err = json.Marshal(a.ReleaseYear)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'release_year': %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if a.Studio != nil {
|
|
||||||
object["studio"], err = json.Marshal(a.Studio)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'studio': %w", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
object["tags"], err = json.Marshal(a.Tags)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'tags': %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
object["title_names"], err = json.Marshal(a.TitleNames)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'title_names': %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if a.TitleStatus != nil {
|
|
||||||
object["title_status"], err = json.Marshal(a.TitleStatus)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error marshaling 'title_status': %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
|
||||||
|
|
@ -513,16 +275,16 @@ type ServerInterface interface {
|
||||||
GetTitles(c *gin.Context, params GetTitlesParams)
|
GetTitles(c *gin.Context, params GetTitlesParams)
|
||||||
// Get title description
|
// Get title description
|
||||||
// (GET /titles/{title_id})
|
// (GET /titles/{title_id})
|
||||||
GetTitlesTitleId(c *gin.Context, titleId int64, params GetTitlesTitleIdParams)
|
GetTitle(c *gin.Context, titleId int64, params GetTitleParams)
|
||||||
// Get user info
|
// Get user info
|
||||||
// (GET /users/{user_id})
|
// (GET /users/{user_id})
|
||||||
GetUsersUserId(c *gin.Context, userId string, params GetUsersUserIdParams)
|
GetUsersId(c *gin.Context, userId string, params GetUsersIdParams)
|
||||||
// Partially update a user account
|
// Partially update a user account
|
||||||
// (PATCH /users/{user_id})
|
// (PATCH /users/{user_id})
|
||||||
UpdateUser(c *gin.Context, userId int64)
|
UpdateUser(c *gin.Context, userId int64)
|
||||||
// Delete a usertitle
|
// Delete a usertitle
|
||||||
// (DELETE /users/{user_id}/titles)
|
// (DELETE /users/{user_id}/titles)
|
||||||
DeleteUserTitle(c *gin.Context, userId int64)
|
DeleteUserTitle(c *gin.Context, userId int64, params DeleteUserTitleParams)
|
||||||
// Get user titles
|
// Get user titles
|
||||||
// (GET /users/{user_id}/titles)
|
// (GET /users/{user_id}/titles)
|
||||||
GetUsersUserIdTitles(c *gin.Context, userId string, params GetUsersUserIdTitlesParams)
|
GetUsersUserIdTitles(c *gin.Context, userId string, params GetUsersUserIdTitlesParams)
|
||||||
|
|
@ -649,8 +411,8 @@ func (siw *ServerInterfaceWrapper) GetTitles(c *gin.Context) {
|
||||||
siw.Handler.GetTitles(c, params)
|
siw.Handler.GetTitles(c, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTitlesTitleId operation middleware
|
// GetTitle operation middleware
|
||||||
func (siw *ServerInterfaceWrapper) GetTitlesTitleId(c *gin.Context) {
|
func (siw *ServerInterfaceWrapper) GetTitle(c *gin.Context) {
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
|
@ -664,7 +426,7 @@ func (siw *ServerInterfaceWrapper) GetTitlesTitleId(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 GetTitlesTitleIdParams
|
var params GetTitleParams
|
||||||
|
|
||||||
// ------------- Optional query parameter "fields" -------------
|
// ------------- Optional query parameter "fields" -------------
|
||||||
|
|
||||||
|
|
@ -681,11 +443,11 @@ func (siw *ServerInterfaceWrapper) GetTitlesTitleId(c *gin.Context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
siw.Handler.GetTitlesTitleId(c, titleId, params)
|
siw.Handler.GetTitle(c, titleId, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetUsersUserId operation middleware
|
// GetUsersId operation middleware
|
||||||
func (siw *ServerInterfaceWrapper) GetUsersUserId(c *gin.Context) {
|
func (siw *ServerInterfaceWrapper) GetUsersId(c *gin.Context) {
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
|
@ -699,7 +461,7 @@ func (siw *ServerInterfaceWrapper) GetUsersUserId(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 GetUsersUserIdParams
|
var params GetUsersIdParams
|
||||||
|
|
||||||
// ------------- Optional query parameter "fields" -------------
|
// ------------- Optional query parameter "fields" -------------
|
||||||
|
|
||||||
|
|
@ -716,7 +478,7 @@ func (siw *ServerInterfaceWrapper) GetUsersUserId(c *gin.Context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
siw.Handler.GetUsersUserId(c, userId, params)
|
siw.Handler.GetUsersId(c, userId, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateUser operation middleware
|
// UpdateUser operation middleware
|
||||||
|
|
@ -757,6 +519,24 @@ func (siw *ServerInterfaceWrapper) DeleteUserTitle(c *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Parameter object where we will unmarshal all parameters from the context
|
||||||
|
var params DeleteUserTitleParams
|
||||||
|
|
||||||
|
// ------------- Required query parameter "title_id" -------------
|
||||||
|
|
||||||
|
if paramValue := c.Query("title_id"); paramValue != "" {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
siw.ErrorHandler(c, fmt.Errorf("Query argument title_id is required, but not found"), http.StatusBadRequest)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
err = runtime.BindQueryParameter("form", true, true, "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 {
|
for _, middleware := range siw.HandlerMiddlewares {
|
||||||
middleware(c)
|
middleware(c)
|
||||||
if c.IsAborted() {
|
if c.IsAborted() {
|
||||||
|
|
@ -764,7 +544,7 @@ func (siw *ServerInterfaceWrapper) DeleteUserTitle(c *gin.Context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
siw.Handler.DeleteUserTitle(c, userId)
|
siw.Handler.DeleteUserTitle(c, userId, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetUsersUserIdTitles operation middleware
|
// GetUsersUserIdTitles operation middleware
|
||||||
|
|
@ -966,8 +746,8 @@ func RegisterHandlersWithOptions(router gin.IRouter, si ServerInterface, options
|
||||||
}
|
}
|
||||||
|
|
||||||
router.GET(options.BaseURL+"/titles", wrapper.GetTitles)
|
router.GET(options.BaseURL+"/titles", wrapper.GetTitles)
|
||||||
router.GET(options.BaseURL+"/titles/:title_id", wrapper.GetTitlesTitleId)
|
router.GET(options.BaseURL+"/titles/:title_id", wrapper.GetTitle)
|
||||||
router.GET(options.BaseURL+"/users/:user_id", wrapper.GetUsersUserId)
|
router.GET(options.BaseURL+"/users/:user_id", wrapper.GetUsersId)
|
||||||
router.PATCH(options.BaseURL+"/users/:user_id", wrapper.UpdateUser)
|
router.PATCH(options.BaseURL+"/users/:user_id", wrapper.UpdateUser)
|
||||||
router.DELETE(options.BaseURL+"/users/:user_id/titles", wrapper.DeleteUserTitle)
|
router.DELETE(options.BaseURL+"/users/:user_id/titles", wrapper.DeleteUserTitle)
|
||||||
router.GET(options.BaseURL+"/users/:user_id/titles", wrapper.GetUsersUserIdTitles)
|
router.GET(options.BaseURL+"/users/:user_id/titles", wrapper.GetUsersUserIdTitles)
|
||||||
|
|
@ -1021,94 +801,94 @@ func (response GetTitles500Response) VisitGetTitlesResponse(w http.ResponseWrite
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitlesTitleIdRequestObject struct {
|
type GetTitleRequestObject struct {
|
||||||
TitleId int64 `json:"title_id"`
|
TitleId int64 `json:"title_id"`
|
||||||
Params GetTitlesTitleIdParams
|
Params GetTitleParams
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitlesTitleIdResponseObject interface {
|
type GetTitleResponseObject interface {
|
||||||
VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error
|
VisitGetTitleResponse(w http.ResponseWriter) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitlesTitleId200JSONResponse Title
|
type GetTitle200JSONResponse Title
|
||||||
|
|
||||||
func (response GetTitlesTitleId200JSONResponse) VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error {
|
func (response GetTitle200JSONResponse) VisitGetTitleResponse(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 GetTitlesTitleId204Response struct {
|
type GetTitle204Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetTitlesTitleId204Response) VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error {
|
func (response GetTitle204Response) VisitGetTitleResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(204)
|
w.WriteHeader(204)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitlesTitleId400Response struct {
|
type GetTitle400Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetTitlesTitleId400Response) VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error {
|
func (response GetTitle400Response) VisitGetTitleResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(400)
|
w.WriteHeader(400)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitlesTitleId404Response struct {
|
type GetTitle404Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetTitlesTitleId404Response) VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error {
|
func (response GetTitle404Response) VisitGetTitleResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(404)
|
w.WriteHeader(404)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetTitlesTitleId500Response struct {
|
type GetTitle500Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetTitlesTitleId500Response) VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error {
|
func (response GetTitle500Response) VisitGetTitleResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(500)
|
w.WriteHeader(500)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetUsersUserIdRequestObject struct {
|
type GetUsersIdRequestObject struct {
|
||||||
UserId string `json:"user_id"`
|
UserId string `json:"user_id"`
|
||||||
Params GetUsersUserIdParams
|
Params GetUsersIdParams
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetUsersUserIdResponseObject interface {
|
type GetUsersIdResponseObject interface {
|
||||||
VisitGetUsersUserIdResponse(w http.ResponseWriter) error
|
VisitGetUsersIdResponse(w http.ResponseWriter) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetUsersUserId200JSONResponse User
|
type GetUsersId200JSONResponse User
|
||||||
|
|
||||||
func (response GetUsersUserId200JSONResponse) VisitGetUsersUserIdResponse(w http.ResponseWriter) error {
|
func (response GetUsersId200JSONResponse) VisitGetUsersIdResponse(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 GetUsersUserId400Response struct {
|
type GetUsersId400Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetUsersUserId400Response) VisitGetUsersUserIdResponse(w http.ResponseWriter) error {
|
func (response GetUsersId400Response) VisitGetUsersIdResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(400)
|
w.WriteHeader(400)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetUsersUserId404Response struct {
|
type GetUsersId404Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetUsersUserId404Response) VisitGetUsersUserIdResponse(w http.ResponseWriter) error {
|
func (response GetUsersId404Response) VisitGetUsersIdResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(404)
|
w.WriteHeader(404)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetUsersUserId500Response struct {
|
type GetUsersId500Response struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (response GetUsersUserId500Response) VisitGetUsersUserIdResponse(w http.ResponseWriter) error {
|
func (response GetUsersId500Response) VisitGetUsersIdResponse(w http.ResponseWriter) error {
|
||||||
w.WriteHeader(500)
|
w.WriteHeader(500)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -1189,6 +969,7 @@ func (response UpdateUser500Response) VisitUpdateUserResponse(w http.ResponseWri
|
||||||
|
|
||||||
type DeleteUserTitleRequestObject struct {
|
type DeleteUserTitleRequestObject struct {
|
||||||
UserId int64 `json:"user_id"`
|
UserId int64 `json:"user_id"`
|
||||||
|
Params DeleteUserTitleParams
|
||||||
}
|
}
|
||||||
|
|
||||||
type DeleteUserTitleResponseObject interface {
|
type DeleteUserTitleResponseObject interface {
|
||||||
|
|
@ -1419,10 +1200,10 @@ type StrictServerInterface interface {
|
||||||
GetTitles(ctx context.Context, request GetTitlesRequestObject) (GetTitlesResponseObject, error)
|
GetTitles(ctx context.Context, request GetTitlesRequestObject) (GetTitlesResponseObject, error)
|
||||||
// Get title description
|
// Get title description
|
||||||
// (GET /titles/{title_id})
|
// (GET /titles/{title_id})
|
||||||
GetTitlesTitleId(ctx context.Context, request GetTitlesTitleIdRequestObject) (GetTitlesTitleIdResponseObject, error)
|
GetTitle(ctx context.Context, request GetTitleRequestObject) (GetTitleResponseObject, error)
|
||||||
// Get user info
|
// Get user info
|
||||||
// (GET /users/{user_id})
|
// (GET /users/{user_id})
|
||||||
GetUsersUserId(ctx context.Context, request GetUsersUserIdRequestObject) (GetUsersUserIdResponseObject, error)
|
GetUsersId(ctx context.Context, request GetUsersIdRequestObject) (GetUsersIdResponseObject, error)
|
||||||
// Partially update a user account
|
// Partially update a user account
|
||||||
// (PATCH /users/{user_id})
|
// (PATCH /users/{user_id})
|
||||||
UpdateUser(ctx context.Context, request UpdateUserRequestObject) (UpdateUserResponseObject, error)
|
UpdateUser(ctx context.Context, request UpdateUserRequestObject) (UpdateUserResponseObject, error)
|
||||||
|
|
@ -1479,18 +1260,18 @@ func (sh *strictHandler) GetTitles(ctx *gin.Context, params GetTitlesParams) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTitlesTitleId operation middleware
|
// GetTitle operation middleware
|
||||||
func (sh *strictHandler) GetTitlesTitleId(ctx *gin.Context, titleId int64, params GetTitlesTitleIdParams) {
|
func (sh *strictHandler) GetTitle(ctx *gin.Context, titleId int64, params GetTitleParams) {
|
||||||
var request GetTitlesTitleIdRequestObject
|
var request GetTitleRequestObject
|
||||||
|
|
||||||
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.GetTitlesTitleId(ctx, request.(GetTitlesTitleIdRequestObject))
|
return sh.ssi.GetTitle(ctx, request.(GetTitleRequestObject))
|
||||||
}
|
}
|
||||||
for _, middleware := range sh.middlewares {
|
for _, middleware := range sh.middlewares {
|
||||||
handler = middleware(handler, "GetTitlesTitleId")
|
handler = middleware(handler, "GetTitle")
|
||||||
}
|
}
|
||||||
|
|
||||||
response, err := handler(ctx, request)
|
response, err := handler(ctx, request)
|
||||||
|
|
@ -1498,8 +1279,8 @@ func (sh *strictHandler) GetTitlesTitleId(ctx *gin.Context, titleId int64, param
|
||||||
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.(GetTitlesTitleIdResponseObject); ok {
|
} else if validResponse, ok := response.(GetTitleResponseObject); ok {
|
||||||
if err := validResponse.VisitGetTitlesTitleIdResponse(ctx.Writer); err != nil {
|
if err := validResponse.VisitGetTitleResponse(ctx.Writer); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
}
|
}
|
||||||
} else if response != nil {
|
} else if response != nil {
|
||||||
|
|
@ -1507,18 +1288,18 @@ func (sh *strictHandler) GetTitlesTitleId(ctx *gin.Context, titleId int64, param
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetUsersUserId operation middleware
|
// GetUsersId operation middleware
|
||||||
func (sh *strictHandler) GetUsersUserId(ctx *gin.Context, userId string, params GetUsersUserIdParams) {
|
func (sh *strictHandler) GetUsersId(ctx *gin.Context, userId string, params GetUsersIdParams) {
|
||||||
var request GetUsersUserIdRequestObject
|
var request GetUsersIdRequestObject
|
||||||
|
|
||||||
request.UserId = userId
|
request.UserId = userId
|
||||||
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.GetUsersUserId(ctx, request.(GetUsersUserIdRequestObject))
|
return sh.ssi.GetUsersId(ctx, request.(GetUsersIdRequestObject))
|
||||||
}
|
}
|
||||||
for _, middleware := range sh.middlewares {
|
for _, middleware := range sh.middlewares {
|
||||||
handler = middleware(handler, "GetUsersUserId")
|
handler = middleware(handler, "GetUsersId")
|
||||||
}
|
}
|
||||||
|
|
||||||
response, err := handler(ctx, request)
|
response, err := handler(ctx, request)
|
||||||
|
|
@ -1526,8 +1307,8 @@ func (sh *strictHandler) GetUsersUserId(ctx *gin.Context, userId string, 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.(GetUsersUserIdResponseObject); ok {
|
} else if validResponse, ok := response.(GetUsersIdResponseObject); ok {
|
||||||
if err := validResponse.VisitGetUsersUserIdResponse(ctx.Writer); err != nil {
|
if err := validResponse.VisitGetUsersIdResponse(ctx.Writer); err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
}
|
}
|
||||||
} else if response != nil {
|
} else if response != nil {
|
||||||
|
|
@ -1571,10 +1352,11 @@ func (sh *strictHandler) UpdateUser(ctx *gin.Context, userId int64) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeleteUserTitle operation middleware
|
// DeleteUserTitle operation middleware
|
||||||
func (sh *strictHandler) DeleteUserTitle(ctx *gin.Context, userId int64) {
|
func (sh *strictHandler) DeleteUserTitle(ctx *gin.Context, userId int64, params DeleteUserTitleParams) {
|
||||||
var request DeleteUserTitleRequestObject
|
var request DeleteUserTitleRequestObject
|
||||||
|
|
||||||
request.UserId = userId
|
request.UserId = userId
|
||||||
|
request.Params = params
|
||||||
|
|
||||||
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
|
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
|
||||||
return sh.ssi.DeleteUserTitle(ctx, request.(DeleteUserTitleRequestObject))
|
return sh.ssi.DeleteUserTitle(ctx, request.(DeleteUserTitleRequestObject))
|
||||||
|
|
|
||||||
|
|
@ -202,7 +202,13 @@ delete:
|
||||||
type: integer
|
type: integer
|
||||||
format: int64
|
format: int64
|
||||||
description: ID of the user to assign the title to
|
description: ID of the user to assign the title to
|
||||||
example: 123
|
- in: query
|
||||||
|
name: title_id
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
format: int64
|
||||||
|
|
||||||
|
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
|
|
|
||||||
|
|
@ -132,25 +132,25 @@ func (s Server) GetTagsByTitleId(ctx context.Context, id int64) (oapi.Tags, erro
|
||||||
// return &oapi_studio, nil
|
// return &oapi_studio, nil
|
||||||
// }
|
// }
|
||||||
|
|
||||||
func (s Server) GetTitlesTitleId(ctx context.Context, request oapi.GetTitlesTitleIdRequestObject) (oapi.GetTitlesTitleIdResponseObject, error) {
|
func (s Server) GetTitle(ctx context.Context, request oapi.GetTitleRequestObject) (oapi.GetTitleResponseObject, 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.GetTitlesTitleId204Response{}, nil
|
return oapi.GetTitle204Response{}, nil
|
||||||
}
|
}
|
||||||
log.Errorf("%v", err)
|
log.Errorf("%v", err)
|
||||||
return oapi.GetTitlesTitleId500Response{}, nil
|
return oapi.GetTitle500Response{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
oapi_title, err = s.mapTitle(sqlc_title)
|
oapi_title, err = s.mapTitle(sqlc_title)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("%v", err)
|
log.Errorf("%v", err)
|
||||||
return oapi.GetTitlesTitleId500Response{}, nil
|
return oapi.GetTitle500Response{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return oapi.GetTitlesTitleId200JSONResponse(oapi_title), nil
|
return oapi.GetTitle200JSONResponse(oapi_title), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s Server) GetTitles(ctx context.Context, request oapi.GetTitlesRequestObject) (oapi.GetTitlesResponseObject, error) {
|
func (s Server) GetTitles(ctx context.Context, request oapi.GetTitlesRequestObject) (oapi.GetTitlesResponseObject, error) {
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,10 @@ import (
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
pgErrDuplicateKey = "23505"
|
||||||
|
)
|
||||||
|
|
||||||
func mapUser(u sqlc.GetUserByIDRow) (oapi.User, error) {
|
func mapUser(u sqlc.GetUserByIDRow) (oapi.User, error) {
|
||||||
i := oapi.Image{
|
i := oapi.Image{
|
||||||
Id: u.AvatarID,
|
Id: u.AvatarID,
|
||||||
|
|
@ -37,24 +41,24 @@ func mapUser(u sqlc.GetUserByIDRow) (oapi.User, error) {
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s Server) GetUsersUserId(ctx context.Context, req oapi.GetUsersUserIdRequestObject) (oapi.GetUsersUserIdResponseObject, error) {
|
func (s Server) GetUsersId(ctx context.Context, req oapi.GetUsersIdRequestObject) (oapi.GetUsersIdResponseObject, error) {
|
||||||
userID, err := parseInt64(req.UserId)
|
userID, err := parseInt64(req.UserId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return oapi.GetUsersUserId404Response{}, nil
|
return oapi.GetUsersId404Response{}, nil
|
||||||
}
|
}
|
||||||
_user, err := s.db.GetUserByID(context.TODO(), userID)
|
_user, err := s.db.GetUserByID(context.TODO(), userID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == pgx.ErrNoRows {
|
if err == pgx.ErrNoRows {
|
||||||
return oapi.GetUsersUserId404Response{}, nil
|
return oapi.GetUsersId404Response{}, nil
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
user, err := mapUser(_user)
|
user, err := mapUser(_user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("%v", err)
|
log.Errorf("%v", err)
|
||||||
return oapi.GetUsersUserId500Response{}, err
|
return oapi.GetUsersId500Response{}, err
|
||||||
}
|
}
|
||||||
return oapi.GetUsersUserId200JSONResponse(user), nil
|
return oapi.GetUsersId200JSONResponse(user), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func sqlDate2oapi(p_date pgtype.Timestamptz) *time.Time {
|
func sqlDate2oapi(p_date pgtype.Timestamptz) *time.Time {
|
||||||
|
|
@ -369,7 +373,7 @@ func (s Server) AddUserTitle(ctx context.Context, request oapi.AddUserTitleReque
|
||||||
if errors.As(err, &pgErr) {
|
if errors.As(err, &pgErr) {
|
||||||
// fmt.Println(pgErr.Message) // => syntax error at end of input
|
// fmt.Println(pgErr.Message) // => syntax error at end of input
|
||||||
// fmt.Println(pgErr.Code) // => 42601
|
// fmt.Println(pgErr.Code) // => 42601
|
||||||
if pgErr.Code == "23505" { //duplicate key value
|
if pgErr.Code == pgErrDuplicateKey { //duplicate key value
|
||||||
return oapi.AddUserTitle409Response{}, nil
|
return oapi.AddUserTitle409Response{}, nil
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -405,7 +409,19 @@ func (s Server) AddUserTitle(ctx context.Context, request oapi.AddUserTitleReque
|
||||||
|
|
||||||
// DeleteUserTitle implements oapi.StrictServerInterface.
|
// DeleteUserTitle implements oapi.StrictServerInterface.
|
||||||
func (s Server) DeleteUserTitle(ctx context.Context, request oapi.DeleteUserTitleRequestObject) (oapi.DeleteUserTitleResponseObject, error) {
|
func (s Server) DeleteUserTitle(ctx context.Context, request oapi.DeleteUserTitleRequestObject) (oapi.DeleteUserTitleResponseObject, error) {
|
||||||
panic("unimplemented")
|
params := sqlc.DeleteUserTitleParams{
|
||||||
|
UserID: request.UserId,
|
||||||
|
TitleID: request.Params.TitleId,
|
||||||
|
}
|
||||||
|
_, err := s.db.DeleteUserTitle(ctx, params)
|
||||||
|
if err != nil {
|
||||||
|
if err == pgx.ErrNoRows {
|
||||||
|
return oapi.DeleteUserTitle404Response{}, nil
|
||||||
|
}
|
||||||
|
log.Errorf("%v", err)
|
||||||
|
return oapi.DeleteUserTitle500Response{}, nil
|
||||||
|
}
|
||||||
|
return oapi.DeleteUserTitle200Response{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateUserTitle implements oapi.StrictServerInterface.
|
// UpdateUserTitle implements oapi.StrictServerInterface.
|
||||||
|
|
|
||||||
|
|
@ -57,17 +57,6 @@ VALUES (
|
||||||
sqlc.arg('tag_names')::jsonb)
|
sqlc.arg('tag_names')::jsonb)
|
||||||
RETURNING id, tag_names;
|
RETURNING id, tag_names;
|
||||||
|
|
||||||
-- -- name: ListUsers :many
|
|
||||||
-- SELECT user_id, avatar_id, passhash, mail, nickname, disp_name, user_desc, creation_date
|
|
||||||
-- FROM users
|
|
||||||
-- ORDER BY user_id
|
|
||||||
-- LIMIT $1 OFFSET $2;
|
|
||||||
|
|
||||||
-- -- name: CreateUser :one
|
|
||||||
-- INSERT INTO users (avatar_id, passhash, mail, nickname, disp_name, user_desc, creation_date)
|
|
||||||
-- VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
||||||
-- RETURNING user_id, avatar_id, nickname, disp_name, user_desc, creation_date;
|
|
||||||
|
|
||||||
-- name: UpdateUser :one
|
-- name: UpdateUser :one
|
||||||
UPDATE users
|
UPDATE users
|
||||||
SET
|
SET
|
||||||
|
|
@ -78,10 +67,6 @@ SET
|
||||||
WHERE id = sqlc.arg('user_id')
|
WHERE id = sqlc.arg('user_id')
|
||||||
RETURNING id, avatar_id, nickname, disp_name, user_desc, creation_date, mail;
|
RETURNING id, avatar_id, nickname, disp_name, user_desc, creation_date, mail;
|
||||||
|
|
||||||
-- -- name: DeleteUser :exec
|
|
||||||
-- DELETE FROM users
|
|
||||||
-- WHERE user_id = $1;
|
|
||||||
|
|
||||||
-- name: GetTitleByID :one
|
-- name: GetTitleByID :one
|
||||||
-- sqlc.struct: TitlesFull
|
-- sqlc.struct: TitlesFull
|
||||||
SELECT
|
SELECT
|
||||||
|
|
@ -378,78 +363,11 @@ ORDER BY
|
||||||
|
|
||||||
LIMIT COALESCE(sqlc.narg('limit')::int, 100); -- 100 is default limit
|
LIMIT COALESCE(sqlc.narg('limit')::int, 100); -- 100 is default limit
|
||||||
|
|
||||||
-- -- name: ListTitles :many
|
|
||||||
-- SELECT title_id, title_names, studio_id, poster_id, signal_ids,
|
|
||||||
-- title_status, rating, rating_count, release_year, release_season,
|
|
||||||
-- season, episodes_aired, episodes_all, episodes_len
|
|
||||||
-- FROM titles
|
|
||||||
-- ORDER BY title_id
|
|
||||||
-- LIMIT $1 OFFSET $2;
|
|
||||||
|
|
||||||
-- -- name: UpdateTitle :one
|
|
||||||
-- UPDATE titles
|
|
||||||
-- SET
|
|
||||||
-- title_names = COALESCE(sqlc.narg('title_names'), title_names),
|
|
||||||
-- studio_id = COALESCE(sqlc.narg('studio_id'), studio_id),
|
|
||||||
-- poster_id = COALESCE(sqlc.narg('poster_id'), poster_id),
|
|
||||||
-- signal_ids = COALESCE(sqlc.narg('signal_ids'), signal_ids),
|
|
||||||
-- title_status = COALESCE(sqlc.narg('title_status'), title_status),
|
|
||||||
-- release_year = COALESCE(sqlc.narg('release_year'), release_year),
|
|
||||||
-- release_season = COALESCE(sqlc.narg('release_season'), release_season),
|
|
||||||
-- episodes_aired = COALESCE(sqlc.narg('episodes_aired'), episodes_aired),
|
|
||||||
-- episodes_all = COALESCE(sqlc.narg('episodes_all'), episodes_all),
|
|
||||||
-- episodes_len = COALESCE(sqlc.narg('episodes_len'), episodes_len)
|
|
||||||
-- WHERE title_id = sqlc.arg('title_id')
|
|
||||||
-- RETURNING *;
|
|
||||||
|
|
||||||
-- name: GetReviewByID :one
|
-- name: GetReviewByID :one
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM reviews
|
FROM reviews
|
||||||
WHERE review_id = sqlc.arg('review_id')::bigint;
|
WHERE review_id = sqlc.arg('review_id')::bigint;
|
||||||
|
|
||||||
-- -- name: CreateReview :one
|
|
||||||
-- INSERT INTO reviews (user_id, title_id, image_ids, review_text, creation_date)
|
|
||||||
-- VALUES ($1, $2, $3, $4, $5)
|
|
||||||
-- RETURNING review_id, user_id, title_id, image_ids, review_text, creation_date;
|
|
||||||
|
|
||||||
-- -- name: UpdateReview :one
|
|
||||||
-- UPDATE reviews
|
|
||||||
-- SET
|
|
||||||
-- image_ids = COALESCE(sqlc.narg('image_ids'), image_ids),
|
|
||||||
-- review_text = COALESCE(sqlc.narg('review_text'), review_text)
|
|
||||||
-- WHERE review_id = sqlc.arg('review_id')
|
|
||||||
-- RETURNING *;
|
|
||||||
|
|
||||||
-- -- name: DeleteReview :exec
|
|
||||||
-- DELETE FROM reviews
|
|
||||||
-- WHERE review_id = $1;
|
|
||||||
|
|
||||||
-- -- name: ListReviewsByTitle :many
|
|
||||||
-- SELECT review_id, user_id, title_id, image_ids, review_text, creation_date
|
|
||||||
-- FROM reviews
|
|
||||||
-- WHERE title_id = $1
|
|
||||||
-- ORDER BY creation_date DESC
|
|
||||||
-- LIMIT $2 OFFSET $3;
|
|
||||||
|
|
||||||
-- -- name: ListReviewsByUser :many
|
|
||||||
-- SELECT review_id, user_id, title_id, image_ids, review_text, creation_date
|
|
||||||
-- FROM reviews
|
|
||||||
-- WHERE user_id = $1
|
|
||||||
-- ORDER BY creation_date DESC
|
|
||||||
-- LIMIT $2 OFFSET $3;
|
|
||||||
|
|
||||||
-- -- name: GetUserTitle :one
|
|
||||||
-- SELECT usertitle_id, user_id, title_id, status, rate, review_id
|
|
||||||
-- FROM usertitles
|
|
||||||
-- WHERE user_id = $1 AND title_id = $2;
|
|
||||||
|
|
||||||
-- -- name: ListUserTitles :many
|
|
||||||
-- SELECT usertitle_id, user_id, title_id, status, rate, review_id
|
|
||||||
-- FROM usertitles
|
|
||||||
-- WHERE user_id = $1
|
|
||||||
-- ORDER BY usertitle_id
|
|
||||||
-- LIMIT $2 OFFSET $3;
|
|
||||||
|
|
||||||
-- name: InsertUserTitle :one
|
-- name: InsertUserTitle :one
|
||||||
INSERT INTO usertitles (user_id, title_id, status, rate, review_id)
|
INSERT INTO usertitles (user_id, title_id, status, rate, review_id)
|
||||||
VALUES (
|
VALUES (
|
||||||
|
|
@ -471,3 +389,9 @@ WHERE
|
||||||
user_id = sqlc.arg('user_id')
|
user_id = sqlc.arg('user_id')
|
||||||
AND title_id = sqlc.arg('title_id')
|
AND title_id = sqlc.arg('title_id')
|
||||||
RETURNING *;
|
RETURNING *;
|
||||||
|
|
||||||
|
-- name: DeleteUserTitle :one
|
||||||
|
DELETE FROM usertitles
|
||||||
|
WHERE user_id = sqlc.arg('user_id')
|
||||||
|
AND title_id = sqlc.arg('title_id')
|
||||||
|
RETURNING *;
|
||||||
|
|
@ -29,6 +29,32 @@ func (q *Queries) CreateImage(ctx context.Context, arg CreateImageParams) (Image
|
||||||
return i, err
|
return i, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const deleteUserTitle = `-- name: DeleteUserTitle :one
|
||||||
|
DELETE FROM usertitles
|
||||||
|
WHERE user_id = $1
|
||||||
|
AND title_id = $2
|
||||||
|
RETURNING user_id, title_id, status, rate, review_id, ctime
|
||||||
|
`
|
||||||
|
|
||||||
|
type DeleteUserTitleParams struct {
|
||||||
|
UserID int64 `json:"user_id"`
|
||||||
|
TitleID int64 `json:"title_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) DeleteUserTitle(ctx context.Context, arg DeleteUserTitleParams) (Usertitle, error) {
|
||||||
|
row := q.db.QueryRow(ctx, deleteUserTitle, arg.UserID, arg.TitleID)
|
||||||
|
var i Usertitle
|
||||||
|
err := row.Scan(
|
||||||
|
&i.UserID,
|
||||||
|
&i.TitleID,
|
||||||
|
&i.Status,
|
||||||
|
&i.Rate,
|
||||||
|
&i.ReviewID,
|
||||||
|
&i.Ctime,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
const getImageByID = `-- name: GetImageByID :one
|
const getImageByID = `-- name: GetImageByID :one
|
||||||
SELECT id, storage_type, image_path
|
SELECT id, storage_type, image_path
|
||||||
FROM images
|
FROM images
|
||||||
|
|
@ -44,40 +70,12 @@ func (q *Queries) GetImageByID(ctx context.Context, illustID int64) (Image, erro
|
||||||
|
|
||||||
const getReviewByID = `-- name: GetReviewByID :one
|
const getReviewByID = `-- name: GetReviewByID :one
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SELECT id, data, rating, user_id, title_id, created_at
|
SELECT id, data, rating, user_id, title_id, created_at
|
||||||
FROM reviews
|
FROM reviews
|
||||||
WHERE review_id = $1::bigint
|
WHERE review_id = $1::bigint
|
||||||
`
|
`
|
||||||
|
|
||||||
// 100 is default limit
|
// 100 is default limit
|
||||||
// -- name: ListTitles :many
|
|
||||||
// SELECT title_id, title_names, studio_id, poster_id, signal_ids,
|
|
||||||
//
|
|
||||||
// title_status, rating, rating_count, release_year, release_season,
|
|
||||||
// season, episodes_aired, episodes_all, episodes_len
|
|
||||||
//
|
|
||||||
// FROM titles
|
|
||||||
// ORDER BY title_id
|
|
||||||
// LIMIT $1 OFFSET $2;
|
|
||||||
// -- name: UpdateTitle :one
|
|
||||||
// UPDATE titles
|
|
||||||
// SET
|
|
||||||
//
|
|
||||||
// title_names = COALESCE(sqlc.narg('title_names'), title_names),
|
|
||||||
// studio_id = COALESCE(sqlc.narg('studio_id'), studio_id),
|
|
||||||
// poster_id = COALESCE(sqlc.narg('poster_id'), poster_id),
|
|
||||||
// signal_ids = COALESCE(sqlc.narg('signal_ids'), signal_ids),
|
|
||||||
// title_status = COALESCE(sqlc.narg('title_status'), title_status),
|
|
||||||
// release_year = COALESCE(sqlc.narg('release_year'), release_year),
|
|
||||||
// release_season = COALESCE(sqlc.narg('release_season'), release_season),
|
|
||||||
// episodes_aired = COALESCE(sqlc.narg('episodes_aired'), episodes_aired),
|
|
||||||
// episodes_all = COALESCE(sqlc.narg('episodes_all'), episodes_all),
|
|
||||||
// episodes_len = COALESCE(sqlc.narg('episodes_len'), episodes_len)
|
|
||||||
//
|
|
||||||
// WHERE title_id = sqlc.arg('title_id')
|
|
||||||
// RETURNING *;
|
|
||||||
func (q *Queries) GetReviewByID(ctx context.Context, reviewID int64) (Review, error) {
|
func (q *Queries) GetReviewByID(ctx context.Context, reviewID int64) (Review, error) {
|
||||||
row := q.db.QueryRow(ctx, getReviewByID, reviewID)
|
row := q.db.QueryRow(ctx, getReviewByID, reviewID)
|
||||||
var i Review
|
var i Review
|
||||||
|
|
@ -111,7 +109,6 @@ func (q *Queries) GetStudioByID(ctx context.Context, studioID int64) (Studio, er
|
||||||
}
|
}
|
||||||
|
|
||||||
const getTitleByID = `-- name: GetTitleByID :one
|
const getTitleByID = `-- name: GetTitleByID :one
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
t.id, t.title_names, t.studio_id, t.poster_id, t.title_status, t.rating, t.rating_count, t.release_year, t.release_season, t.season, t.episodes_aired, t.episodes_all, t.episodes_len,
|
t.id, t.title_names, t.studio_id, t.poster_id, t.title_status, t.rating, t.rating_count, t.release_year, t.release_season, t.season, t.episodes_aired, t.episodes_all, t.episodes_len,
|
||||||
i.storage_type as title_storage_type,
|
i.storage_type as title_storage_type,
|
||||||
|
|
@ -162,9 +159,6 @@ type GetTitleByIDRow struct {
|
||||||
StudioImagePath *string `json:"studio_image_path"`
|
StudioImagePath *string `json:"studio_image_path"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// -- name: DeleteUser :exec
|
|
||||||
// DELETE FROM users
|
|
||||||
// WHERE user_id = $1;
|
|
||||||
// sqlc.struct: TitlesFull
|
// sqlc.struct: TitlesFull
|
||||||
func (q *Queries) GetTitleByID(ctx context.Context, titleID int64) (GetTitleByIDRow, error) {
|
func (q *Queries) GetTitleByID(ctx context.Context, titleID int64) (GetTitleByIDRow, error) {
|
||||||
row := q.db.QueryRow(ctx, getTitleByID, titleID)
|
row := q.db.QueryRow(ctx, getTitleByID, titleID)
|
||||||
|
|
@ -330,13 +324,6 @@ func (q *Queries) InsertTitleTags(ctx context.Context, arg InsertTitleTagsParams
|
||||||
}
|
}
|
||||||
|
|
||||||
const insertUserTitle = `-- name: InsertUserTitle :one
|
const insertUserTitle = `-- name: InsertUserTitle :one
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
INSERT INTO usertitles (user_id, title_id, status, rate, review_id)
|
INSERT INTO usertitles (user_id, title_id, status, rate, review_id)
|
||||||
VALUES (
|
VALUES (
|
||||||
$1::bigint,
|
$1::bigint,
|
||||||
|
|
@ -356,46 +343,6 @@ type InsertUserTitleParams struct {
|
||||||
ReviewID *int64 `json:"review_id"`
|
ReviewID *int64 `json:"review_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// -- name: CreateReview :one
|
|
||||||
// INSERT INTO reviews (user_id, title_id, image_ids, review_text, creation_date)
|
|
||||||
// VALUES ($1, $2, $3, $4, $5)
|
|
||||||
// RETURNING review_id, user_id, title_id, image_ids, review_text, creation_date;
|
|
||||||
// -- name: UpdateReview :one
|
|
||||||
// UPDATE reviews
|
|
||||||
// SET
|
|
||||||
//
|
|
||||||
// image_ids = COALESCE(sqlc.narg('image_ids'), image_ids),
|
|
||||||
// review_text = COALESCE(sqlc.narg('review_text'), review_text)
|
|
||||||
//
|
|
||||||
// WHERE review_id = sqlc.arg('review_id')
|
|
||||||
// RETURNING *;
|
|
||||||
// -- name: DeleteReview :exec
|
|
||||||
// DELETE FROM reviews
|
|
||||||
// WHERE review_id = $1;
|
|
||||||
//
|
|
||||||
// -- name: ListReviewsByTitle :many
|
|
||||||
//
|
|
||||||
// SELECT review_id, user_id, title_id, image_ids, review_text, creation_date
|
|
||||||
// FROM reviews
|
|
||||||
// WHERE title_id = $1
|
|
||||||
// ORDER BY creation_date DESC
|
|
||||||
// LIMIT $2 OFFSET $3;
|
|
||||||
// -- name: ListReviewsByUser :many
|
|
||||||
// SELECT review_id, user_id, title_id, image_ids, review_text, creation_date
|
|
||||||
// FROM reviews
|
|
||||||
// WHERE user_id = $1
|
|
||||||
// ORDER BY creation_date DESC
|
|
||||||
// LIMIT $2 OFFSET $3;
|
|
||||||
// -- name: GetUserTitle :one
|
|
||||||
// SELECT usertitle_id, user_id, title_id, status, rate, review_id
|
|
||||||
// FROM usertitles
|
|
||||||
// WHERE user_id = $1 AND title_id = $2;
|
|
||||||
// -- name: ListUserTitles :many
|
|
||||||
// SELECT usertitle_id, user_id, title_id, status, rate, review_id
|
|
||||||
// FROM usertitles
|
|
||||||
// WHERE user_id = $1
|
|
||||||
// ORDER BY usertitle_id
|
|
||||||
// LIMIT $2 OFFSET $3;
|
|
||||||
func (q *Queries) InsertUserTitle(ctx context.Context, arg InsertUserTitleParams) (Usertitle, error) {
|
func (q *Queries) InsertUserTitle(ctx context.Context, arg InsertUserTitleParams) (Usertitle, error) {
|
||||||
row := q.db.QueryRow(ctx, insertUserTitle,
|
row := q.db.QueryRow(ctx, insertUserTitle,
|
||||||
arg.UserID,
|
arg.UserID,
|
||||||
|
|
@ -866,8 +813,6 @@ func (q *Queries) SearchUserTitles(ctx context.Context, arg SearchUserTitlesPara
|
||||||
}
|
}
|
||||||
|
|
||||||
const updateUser = `-- name: UpdateUser :one
|
const updateUser = `-- name: UpdateUser :one
|
||||||
|
|
||||||
|
|
||||||
UPDATE users
|
UPDATE users
|
||||||
SET
|
SET
|
||||||
avatar_id = COALESCE($1, avatar_id),
|
avatar_id = COALESCE($1, avatar_id),
|
||||||
|
|
@ -896,15 +841,6 @@ type UpdateUserRow struct {
|
||||||
Mail *string `json:"mail"`
|
Mail *string `json:"mail"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// -- name: ListUsers :many
|
|
||||||
// SELECT user_id, avatar_id, passhash, mail, nickname, disp_name, user_desc, creation_date
|
|
||||||
// FROM users
|
|
||||||
// ORDER BY user_id
|
|
||||||
// LIMIT $1 OFFSET $2;
|
|
||||||
// -- name: CreateUser :one
|
|
||||||
// INSERT INTO users (avatar_id, passhash, mail, nickname, disp_name, user_desc, creation_date)
|
|
||||||
// VALUES ($1, $2, $3, $4, $5, $6, $7)
|
|
||||||
// RETURNING user_id, avatar_id, nickname, disp_name, user_desc, creation_date;
|
|
||||||
func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) (UpdateUserRow, error) {
|
func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) (UpdateUserRow, error) {
|
||||||
row := q.db.QueryRow(ctx, updateUser,
|
row := q.db.QueryRow(ctx, updateUser,
|
||||||
arg.AvatarID,
|
arg.AvatarID,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue