From 2edf96571b0edcbaf4d8e03a456b41e6a79163d0 Mon Sep 17 00:00:00 2001 From: Iron_Felix Date: Sat, 15 Nov 2025 18:20:27 +0300 Subject: [PATCH] feat: field studio_name added to title in openapi --- api/api.gen.go | 93 ++++++------------------------- api/openapi.yaml | 46 +++++++-------- modules/backend/handlers/users.go | 2 +- 3 files changed, 41 insertions(+), 100 deletions(-) diff --git a/api/api.gen.go b/api/api.gen.go index a235db8..9adc19d 100644 --- a/api/api.gen.go +++ b/api/api.gen.go @@ -50,6 +50,7 @@ type Title struct { ReleaseSeason *ReleaseSeason `json:"release_season,omitempty"` ReleaseYear *int32 `json:"release_year,omitempty"` StudioId *int64 `json:"studio_id,omitempty"` + StudioName *string `json:"studio_name,omitempty"` // TitleNames Localized titles. Key = language (ISO 639-1), value = list of names TitleNames *map[string][]string `json:"title_names,omitempty"` @@ -103,9 +104,6 @@ type GetUsersUserIdParams struct { Fields *string `form:"fields,omitempty" json:"fields,omitempty"` } -// PostUsersJSONRequestBody defines body for PostUsers for application/json ContentType. -type PostUsersJSONRequestBody = User - // 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) { @@ -211,6 +209,14 @@ func (a *Title) UnmarshalJSON(b []byte) error { delete(object, "studio_id") } + if raw, found := object["studio_name"]; found { + err = json.Unmarshal(raw, &a.StudioName) + if err != nil { + return fmt.Errorf("error reading 'studio_name': %w", err) + } + delete(object, "studio_name") + } + if raw, found := object["title_names"]; found { err = json.Unmarshal(raw, &a.TitleNames) if err != nil { @@ -316,6 +322,13 @@ func (a Title) MarshalJSON() ([]byte, error) { } } + if a.StudioName != nil { + object["studio_name"], err = json.Marshal(a.StudioName) + if err != nil { + return nil, fmt.Errorf("error marshaling 'studio_name': %w", err) + } + } + if a.TitleNames != nil { object["title_names"], err = json.Marshal(a.TitleNames) if err != nil { @@ -344,9 +357,6 @@ type ServerInterface interface { // Get titles // (GET /title) GetTitle(c *gin.Context, params GetTitleParams) - // Add new user - // (POST /users) - PostUsers(c *gin.Context) // Get user info // (GET /users/{user_id}) GetUsersUserId(c *gin.Context, userId string, params GetUsersUserIdParams) @@ -443,19 +453,6 @@ func (siw *ServerInterfaceWrapper) GetTitle(c *gin.Context) { siw.Handler.GetTitle(c, params) } -// PostUsers operation middleware -func (siw *ServerInterfaceWrapper) PostUsers(c *gin.Context) { - - for _, middleware := range siw.HandlerMiddlewares { - middleware(c) - if c.IsAborted() { - return - } - } - - siw.Handler.PostUsers(c) -} - // GetUsersUserId operation middleware func (siw *ServerInterfaceWrapper) GetUsersUserId(c *gin.Context) { @@ -519,7 +516,6 @@ func RegisterHandlersWithOptions(router gin.IRouter, si ServerInterface, options } router.GET(options.BaseURL+"/title", wrapper.GetTitle) - router.POST(options.BaseURL+"/users", wrapper.PostUsers) router.GET(options.BaseURL+"/users/:user_id", wrapper.GetUsersUserId) } @@ -564,27 +560,6 @@ func (response GetTitle500Response) VisitGetTitleResponse(w http.ResponseWriter) return nil } -type PostUsersRequestObject struct { - Body *PostUsersJSONRequestBody -} - -type PostUsersResponseObject interface { - VisitPostUsersResponse(w http.ResponseWriter) error -} - -type PostUsers200JSONResponse struct { - Error *string `json:"error,omitempty"` - Success *bool `json:"success,omitempty"` - UserJson *User `json:"user_json,omitempty"` -} - -func (response PostUsers200JSONResponse) VisitPostUsersResponse(w http.ResponseWriter) error { - w.Header().Set("Content-Type", "application/json") - w.WriteHeader(200) - - return json.NewEncoder(w).Encode(response) -} - type GetUsersUserIdRequestObject struct { UserId string `json:"user_id"` Params GetUsersUserIdParams @@ -632,9 +607,6 @@ type StrictServerInterface interface { // Get titles // (GET /title) GetTitle(ctx context.Context, request GetTitleRequestObject) (GetTitleResponseObject, error) - // Add new user - // (POST /users) - PostUsers(ctx context.Context, request PostUsersRequestObject) (PostUsersResponseObject, error) // Get user info // (GET /users/{user_id}) GetUsersUserId(ctx context.Context, request GetUsersUserIdRequestObject) (GetUsersUserIdResponseObject, error) @@ -679,39 +651,6 @@ func (sh *strictHandler) GetTitle(ctx *gin.Context, params GetTitleParams) { } } -// PostUsers operation middleware -func (sh *strictHandler) PostUsers(ctx *gin.Context) { - var request PostUsersRequestObject - - var body PostUsersJSONRequestBody - if err := ctx.ShouldBindJSON(&body); err != nil { - ctx.Status(http.StatusBadRequest) - ctx.Error(err) - return - } - request.Body = &body - - handler := func(ctx *gin.Context, request interface{}) (interface{}, error) { - return sh.ssi.PostUsers(ctx, request.(PostUsersRequestObject)) - } - for _, middleware := range sh.middlewares { - handler = middleware(handler, "PostUsers") - } - - response, err := handler(ctx, request) - - if err != nil { - ctx.Error(err) - ctx.Status(http.StatusInternalServerError) - } else if validResponse, ok := response.(PostUsersResponseObject); ok { - if err := validResponse.VisitPostUsersResponse(ctx.Writer); err != nil { - ctx.Error(err) - } - } else if response != nil { - ctx.Error(fmt.Errorf("unexpected response type: %T", response)) - } -} - // GetUsersUserId operation middleware func (sh *strictHandler) GetUsersUserId(ctx *gin.Context, userId string, params GetUsersUserIdParams) { var request GetUsersUserIdRequestObject diff --git a/api/openapi.yaml b/api/openapi.yaml index 4187ebb..c899595 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -243,28 +243,28 @@ paths: # items: # $ref: '#/components/schemas/User' - post: - summary: Add new user - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/User' - responses: - '200': - description: Add result - content: - application/json: - schema: - type: object - properties: - success: - type: boolean - error: - type: string - user_json: - $ref: '#/components/schemas/User' + # post: + # summary: Add new user + # requestBody: + # required: true + # content: + # application/json: + # schema: + # $ref: '#/components/schemas/User' + # responses: + # '200': + # description: Add result + # content: + # application/json: + # schema: + # type: object + # properties: + # success: + # type: boolean + # error: + # type: string + # user_json: + # $ref: '#/components/schemas/User' # /users/{user_id}/titles: # get: @@ -608,6 +608,8 @@ components: studio_id: type: integer format: int64 + studio_name: + type: string poster_id: type: integer format: int64 diff --git a/modules/backend/handlers/users.go b/modules/backend/handlers/users.go index 3da61de..9e59261 100644 --- a/modules/backend/handlers/users.go +++ b/modules/backend/handlers/users.go @@ -25,7 +25,7 @@ import ( func mapUser(u sqlc.GetUserByIDRow) oapi.User { return oapi.User{ AvatarId: u.AvatarID, - CreationDate: u.CreationDate, + CreationDate: &u.CreationDate, DispName: u.DispName, Id: &u.ID, Mail: (*types.Email)(u.Mail),