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:
|
||||
type: integer
|
||||
format: int64
|
||||
example: 123
|
||||
- name: title_id
|
||||
in: query
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
format: int64
|
||||
responses:
|
||||
'200':
|
||||
description: Title successfully deleted
|
||||
|
|
@ -581,7 +586,6 @@ components:
|
|||
additionalProperties:
|
||||
type: number
|
||||
format: double
|
||||
additionalProperties: true
|
||||
required:
|
||||
- id
|
||||
- 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"`
|
||||
|
||||
// TitleStatus Title status
|
||||
TitleStatus *TitleStatus `json:"title_status,omitempty"`
|
||||
AdditionalProperties map[string]interface{} `json:"-"`
|
||||
TitleStatus *TitleStatus `json:"title_status,omitempty"`
|
||||
}
|
||||
|
||||
// TitleSort Title sort order
|
||||
|
|
@ -191,13 +190,13 @@ type GetTitlesParams struct {
|
|||
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
||||
}
|
||||
|
||||
// GetTitlesTitleIdParams defines parameters for GetTitlesTitleId.
|
||||
type GetTitlesTitleIdParams struct {
|
||||
// GetTitleParams defines parameters for GetTitle.
|
||||
type GetTitleParams struct {
|
||||
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
||||
}
|
||||
|
||||
// GetUsersUserIdParams defines parameters for GetUsersUserId.
|
||||
type GetUsersUserIdParams struct {
|
||||
// GetUsersIdParams defines parameters for GetUsersId.
|
||||
type GetUsersIdParams struct {
|
||||
Fields *string `form:"fields,omitempty" json:"fields,omitempty"`
|
||||
}
|
||||
|
||||
|
|
@ -219,6 +218,11 @@ type UpdateUserJSONBody struct {
|
|||
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.
|
||||
type GetUsersUserIdTitlesParams struct {
|
||||
Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"`
|
||||
|
|
@ -264,248 +268,6 @@ type UpdateUserTitleJSONRequestBody UpdateUserTitleJSONBody
|
|||
// AddUserTitleJSONRequestBody defines body for AddUserTitle for application/json ContentType.
|
||||
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.
|
||||
type ServerInterface interface {
|
||||
// Get titles
|
||||
|
|
@ -513,16 +275,16 @@ type ServerInterface interface {
|
|||
GetTitles(c *gin.Context, params GetTitlesParams)
|
||||
// Get title description
|
||||
// (GET /titles/{title_id})
|
||||
GetTitlesTitleId(c *gin.Context, titleId int64, params GetTitlesTitleIdParams)
|
||||
GetTitle(c *gin.Context, titleId int64, params GetTitleParams)
|
||||
// Get user info
|
||||
// (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
|
||||
// (PATCH /users/{user_id})
|
||||
UpdateUser(c *gin.Context, userId int64)
|
||||
// Delete a usertitle
|
||||
// (DELETE /users/{user_id}/titles)
|
||||
DeleteUserTitle(c *gin.Context, userId int64)
|
||||
DeleteUserTitle(c *gin.Context, userId int64, params DeleteUserTitleParams)
|
||||
// Get user titles
|
||||
// (GET /users/{user_id}/titles)
|
||||
GetUsersUserIdTitles(c *gin.Context, userId string, params GetUsersUserIdTitlesParams)
|
||||
|
|
@ -649,8 +411,8 @@ func (siw *ServerInterfaceWrapper) GetTitles(c *gin.Context) {
|
|||
siw.Handler.GetTitles(c, params)
|
||||
}
|
||||
|
||||
// GetTitlesTitleId operation middleware
|
||||
func (siw *ServerInterfaceWrapper) GetTitlesTitleId(c *gin.Context) {
|
||||
// GetTitle operation middleware
|
||||
func (siw *ServerInterfaceWrapper) GetTitle(c *gin.Context) {
|
||||
|
||||
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
|
||||
var params GetTitlesTitleIdParams
|
||||
var params GetTitleParams
|
||||
|
||||
// ------------- 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
|
||||
func (siw *ServerInterfaceWrapper) GetUsersUserId(c *gin.Context) {
|
||||
// GetUsersId operation middleware
|
||||
func (siw *ServerInterfaceWrapper) GetUsersId(c *gin.Context) {
|
||||
|
||||
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
|
||||
var params GetUsersUserIdParams
|
||||
var params GetUsersIdParams
|
||||
|
||||
// ------------- 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
|
||||
|
|
@ -757,6 +519,24 @@ func (siw *ServerInterfaceWrapper) DeleteUserTitle(c *gin.Context) {
|
|||
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 {
|
||||
middleware(c)
|
||||
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
|
||||
|
|
@ -966,8 +746,8 @@ func RegisterHandlersWithOptions(router gin.IRouter, si ServerInterface, options
|
|||
}
|
||||
|
||||
router.GET(options.BaseURL+"/titles", wrapper.GetTitles)
|
||||
router.GET(options.BaseURL+"/titles/:title_id", wrapper.GetTitlesTitleId)
|
||||
router.GET(options.BaseURL+"/users/:user_id", wrapper.GetUsersUserId)
|
||||
router.GET(options.BaseURL+"/titles/:title_id", wrapper.GetTitle)
|
||||
router.GET(options.BaseURL+"/users/:user_id", wrapper.GetUsersId)
|
||||
router.PATCH(options.BaseURL+"/users/:user_id", wrapper.UpdateUser)
|
||||
router.DELETE(options.BaseURL+"/users/:user_id/titles", wrapper.DeleteUserTitle)
|
||||
router.GET(options.BaseURL+"/users/:user_id/titles", wrapper.GetUsersUserIdTitles)
|
||||
|
|
@ -1021,94 +801,94 @@ func (response GetTitles500Response) VisitGetTitlesResponse(w http.ResponseWrite
|
|||
return nil
|
||||
}
|
||||
|
||||
type GetTitlesTitleIdRequestObject struct {
|
||||
type GetTitleRequestObject struct {
|
||||
TitleId int64 `json:"title_id"`
|
||||
Params GetTitlesTitleIdParams
|
||||
Params GetTitleParams
|
||||
}
|
||||
|
||||
type GetTitlesTitleIdResponseObject interface {
|
||||
VisitGetTitlesTitleIdResponse(w http.ResponseWriter) error
|
||||
type GetTitleResponseObject interface {
|
||||
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.WriteHeader(200)
|
||||
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
return nil
|
||||
}
|
||||
|
||||
type GetUsersUserIdRequestObject struct {
|
||||
type GetUsersIdRequestObject struct {
|
||||
UserId string `json:"user_id"`
|
||||
Params GetUsersUserIdParams
|
||||
Params GetUsersIdParams
|
||||
}
|
||||
|
||||
type GetUsersUserIdResponseObject interface {
|
||||
VisitGetUsersUserIdResponse(w http.ResponseWriter) error
|
||||
type GetUsersIdResponseObject interface {
|
||||
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.WriteHeader(200)
|
||||
|
||||
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)
|
||||
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)
|
||||
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)
|
||||
return nil
|
||||
}
|
||||
|
|
@ -1189,6 +969,7 @@ func (response UpdateUser500Response) VisitUpdateUserResponse(w http.ResponseWri
|
|||
|
||||
type DeleteUserTitleRequestObject struct {
|
||||
UserId int64 `json:"user_id"`
|
||||
Params DeleteUserTitleParams
|
||||
}
|
||||
|
||||
type DeleteUserTitleResponseObject interface {
|
||||
|
|
@ -1419,10 +1200,10 @@ type StrictServerInterface interface {
|
|||
GetTitles(ctx context.Context, request GetTitlesRequestObject) (GetTitlesResponseObject, error)
|
||||
// Get title description
|
||||
// (GET /titles/{title_id})
|
||||
GetTitlesTitleId(ctx context.Context, request GetTitlesTitleIdRequestObject) (GetTitlesTitleIdResponseObject, error)
|
||||
GetTitle(ctx context.Context, request GetTitleRequestObject) (GetTitleResponseObject, error)
|
||||
// Get user info
|
||||
// (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
|
||||
// (PATCH /users/{user_id})
|
||||
UpdateUser(ctx context.Context, request UpdateUserRequestObject) (UpdateUserResponseObject, error)
|
||||
|
|
@ -1479,18 +1260,18 @@ func (sh *strictHandler) GetTitles(ctx *gin.Context, params GetTitlesParams) {
|
|||
}
|
||||
}
|
||||
|
||||
// GetTitlesTitleId operation middleware
|
||||
func (sh *strictHandler) GetTitlesTitleId(ctx *gin.Context, titleId int64, params GetTitlesTitleIdParams) {
|
||||
var request GetTitlesTitleIdRequestObject
|
||||
// GetTitle operation middleware
|
||||
func (sh *strictHandler) GetTitle(ctx *gin.Context, titleId int64, params GetTitleParams) {
|
||||
var request GetTitleRequestObject
|
||||
|
||||
request.TitleId = titleId
|
||||
request.Params = params
|
||||
|
||||
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
|
||||
return sh.ssi.GetTitlesTitleId(ctx, request.(GetTitlesTitleIdRequestObject))
|
||||
return sh.ssi.GetTitle(ctx, request.(GetTitleRequestObject))
|
||||
}
|
||||
for _, middleware := range sh.middlewares {
|
||||
handler = middleware(handler, "GetTitlesTitleId")
|
||||
handler = middleware(handler, "GetTitle")
|
||||
}
|
||||
|
||||
response, err := handler(ctx, request)
|
||||
|
|
@ -1498,8 +1279,8 @@ func (sh *strictHandler) GetTitlesTitleId(ctx *gin.Context, titleId int64, param
|
|||
if err != nil {
|
||||
ctx.Error(err)
|
||||
ctx.Status(http.StatusInternalServerError)
|
||||
} else if validResponse, ok := response.(GetTitlesTitleIdResponseObject); ok {
|
||||
if err := validResponse.VisitGetTitlesTitleIdResponse(ctx.Writer); err != nil {
|
||||
} else if validResponse, ok := response.(GetTitleResponseObject); ok {
|
||||
if err := validResponse.VisitGetTitleResponse(ctx.Writer); err != nil {
|
||||
ctx.Error(err)
|
||||
}
|
||||
} else if response != nil {
|
||||
|
|
@ -1507,18 +1288,18 @@ func (sh *strictHandler) GetTitlesTitleId(ctx *gin.Context, titleId int64, param
|
|||
}
|
||||
}
|
||||
|
||||
// GetUsersUserId operation middleware
|
||||
func (sh *strictHandler) GetUsersUserId(ctx *gin.Context, userId string, params GetUsersUserIdParams) {
|
||||
var request GetUsersUserIdRequestObject
|
||||
// GetUsersId operation middleware
|
||||
func (sh *strictHandler) GetUsersId(ctx *gin.Context, userId string, params GetUsersIdParams) {
|
||||
var request GetUsersIdRequestObject
|
||||
|
||||
request.UserId = userId
|
||||
request.Params = params
|
||||
|
||||
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
|
||||
return sh.ssi.GetUsersUserId(ctx, request.(GetUsersUserIdRequestObject))
|
||||
return sh.ssi.GetUsersId(ctx, request.(GetUsersIdRequestObject))
|
||||
}
|
||||
for _, middleware := range sh.middlewares {
|
||||
handler = middleware(handler, "GetUsersUserId")
|
||||
handler = middleware(handler, "GetUsersId")
|
||||
}
|
||||
|
||||
response, err := handler(ctx, request)
|
||||
|
|
@ -1526,8 +1307,8 @@ func (sh *strictHandler) GetUsersUserId(ctx *gin.Context, userId string, params
|
|||
if err != nil {
|
||||
ctx.Error(err)
|
||||
ctx.Status(http.StatusInternalServerError)
|
||||
} else if validResponse, ok := response.(GetUsersUserIdResponseObject); ok {
|
||||
if err := validResponse.VisitGetUsersUserIdResponse(ctx.Writer); err != nil {
|
||||
} else if validResponse, ok := response.(GetUsersIdResponseObject); ok {
|
||||
if err := validResponse.VisitGetUsersIdResponse(ctx.Writer); err != nil {
|
||||
ctx.Error(err)
|
||||
}
|
||||
} else if response != nil {
|
||||
|
|
@ -1571,10 +1352,11 @@ func (sh *strictHandler) UpdateUser(ctx *gin.Context, userId int64) {
|
|||
}
|
||||
|
||||
// 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
|
||||
|
||||
request.UserId = userId
|
||||
request.Params = params
|
||||
|
||||
handler := func(ctx *gin.Context, request interface{}) (interface{}, error) {
|
||||
return sh.ssi.DeleteUserTitle(ctx, request.(DeleteUserTitleRequestObject))
|
||||
|
|
|
|||
|
|
@ -202,7 +202,13 @@ delete:
|
|||
type: integer
|
||||
format: int64
|
||||
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:
|
||||
'200':
|
||||
|
|
|
|||
|
|
@ -132,25 +132,25 @@ func (s Server) GetTagsByTitleId(ctx context.Context, id int64) (oapi.Tags, erro
|
|||
// 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
|
||||
|
||||
sqlc_title, err := s.db.GetTitleByID(ctx, request.TitleId)
|
||||
if err != nil {
|
||||
if err == pgx.ErrNoRows {
|
||||
return oapi.GetTitlesTitleId204Response{}, nil
|
||||
return oapi.GetTitle204Response{}, nil
|
||||
}
|
||||
log.Errorf("%v", err)
|
||||
return oapi.GetTitlesTitleId500Response{}, nil
|
||||
return oapi.GetTitle500Response{}, nil
|
||||
}
|
||||
|
||||
oapi_title, err = s.mapTitle(sqlc_title)
|
||||
if err != nil {
|
||||
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) {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,10 @@ import (
|
|||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
const (
|
||||
pgErrDuplicateKey = "23505"
|
||||
)
|
||||
|
||||
func mapUser(u sqlc.GetUserByIDRow) (oapi.User, error) {
|
||||
i := oapi.Image{
|
||||
Id: u.AvatarID,
|
||||
|
|
@ -37,24 +41,24 @@ func mapUser(u sqlc.GetUserByIDRow) (oapi.User, error) {
|
|||
}, 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)
|
||||
if err != nil {
|
||||
return oapi.GetUsersUserId404Response{}, nil
|
||||
return oapi.GetUsersId404Response{}, nil
|
||||
}
|
||||
_user, err := s.db.GetUserByID(context.TODO(), userID)
|
||||
if err != nil {
|
||||
if err == pgx.ErrNoRows {
|
||||
return oapi.GetUsersUserId404Response{}, nil
|
||||
return oapi.GetUsersId404Response{}, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
user, err := mapUser(_user)
|
||||
if err != nil {
|
||||
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 {
|
||||
|
|
@ -369,7 +373,7 @@ func (s Server) AddUserTitle(ctx context.Context, request oapi.AddUserTitleReque
|
|||
if errors.As(err, &pgErr) {
|
||||
// fmt.Println(pgErr.Message) // => syntax error at end of input
|
||||
// fmt.Println(pgErr.Code) // => 42601
|
||||
if pgErr.Code == "23505" { //duplicate key value
|
||||
if pgErr.Code == pgErrDuplicateKey { //duplicate key value
|
||||
return oapi.AddUserTitle409Response{}, nil
|
||||
}
|
||||
} else {
|
||||
|
|
@ -405,7 +409,19 @@ func (s Server) AddUserTitle(ctx context.Context, request oapi.AddUserTitleReque
|
|||
|
||||
// DeleteUserTitle implements oapi.StrictServerInterface.
|
||||
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.
|
||||
|
|
|
|||
|
|
@ -57,17 +57,6 @@ VALUES (
|
|||
sqlc.arg('tag_names')::jsonb)
|
||||
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
|
||||
UPDATE users
|
||||
SET
|
||||
|
|
@ -78,10 +67,6 @@ SET
|
|||
WHERE id = sqlc.arg('user_id')
|
||||
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
|
||||
-- sqlc.struct: TitlesFull
|
||||
SELECT
|
||||
|
|
@ -378,78 +363,11 @@ ORDER BY
|
|||
|
||||
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
|
||||
SELECT *
|
||||
FROM reviews
|
||||
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
|
||||
INSERT INTO usertitles (user_id, title_id, status, rate, review_id)
|
||||
VALUES (
|
||||
|
|
@ -470,4 +388,10 @@ SET
|
|||
WHERE
|
||||
user_id = sqlc.arg('user_id')
|
||||
AND title_id = sqlc.arg('title_id')
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
SELECT id, storage_type, image_path
|
||||
FROM images
|
||||
|
|
@ -44,40 +70,12 @@ func (q *Queries) GetImageByID(ctx context.Context, illustID int64) (Image, erro
|
|||
|
||||
const getReviewByID = `-- name: GetReviewByID :one
|
||||
|
||||
|
||||
|
||||
SELECT id, data, rating, user_id, title_id, created_at
|
||||
FROM reviews
|
||||
WHERE review_id = $1::bigint
|
||||
`
|
||||
|
||||
// 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) {
|
||||
row := q.db.QueryRow(ctx, getReviewByID, reviewID)
|
||||
var i Review
|
||||
|
|
@ -111,7 +109,6 @@ func (q *Queries) GetStudioByID(ctx context.Context, studioID int64) (Studio, er
|
|||
}
|
||||
|
||||
const getTitleByID = `-- name: GetTitleByID :one
|
||||
|
||||
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,
|
||||
i.storage_type as title_storage_type,
|
||||
|
|
@ -162,9 +159,6 @@ type GetTitleByIDRow struct {
|
|||
StudioImagePath *string `json:"studio_image_path"`
|
||||
}
|
||||
|
||||
// -- name: DeleteUser :exec
|
||||
// DELETE FROM users
|
||||
// WHERE user_id = $1;
|
||||
// sqlc.struct: TitlesFull
|
||||
func (q *Queries) GetTitleByID(ctx context.Context, titleID int64) (GetTitleByIDRow, error) {
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
INSERT INTO usertitles (user_id, title_id, status, rate, review_id)
|
||||
VALUES (
|
||||
$1::bigint,
|
||||
|
|
@ -356,46 +343,6 @@ type InsertUserTitleParams struct {
|
|||
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) {
|
||||
row := q.db.QueryRow(ctx, insertUserTitle,
|
||||
arg.UserID,
|
||||
|
|
@ -866,8 +813,6 @@ func (q *Queries) SearchUserTitles(ctx context.Context, arg SearchUserTitlesPara
|
|||
}
|
||||
|
||||
const updateUser = `-- name: UpdateUser :one
|
||||
|
||||
|
||||
UPDATE users
|
||||
SET
|
||||
avatar_id = COALESCE($1, avatar_id),
|
||||
|
|
@ -896,15 +841,6 @@ type UpdateUserRow struct {
|
|||
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) {
|
||||
row := q.db.QueryRow(ctx, updateUser,
|
||||
arg.AvatarID,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue