diff --git a/modules/structs/repo_topic.go b/modules/structs/repo_topic.go index 6a79297943..4ddf5edc76 100644 --- a/modules/structs/repo_topic.go +++ b/modules/structs/repo_topic.go @@ -32,3 +32,8 @@ type RepoTopicOptions struct { // list of topic names Topics []string `json:"topics"` } + +// TopicListResponse returns a list of TopicResponse +type TopicListResponse struct { + Topics []*TopicResponse `json:"topics"` +} diff --git a/routers/api/v1/repo/topic.go b/routers/api/v1/repo/topic.go index 9009e1d8db..00fef50595 100644 --- a/routers/api/v1/repo/topic.go +++ b/routers/api/v1/repo/topic.go @@ -300,7 +300,7 @@ func TopicSearch(ctx *context.APIContext) { } ctx.SetTotalCountHeader(total) - ctx.JSON(http.StatusOK, map[string]any{ - "topics": topicResponses, + ctx.JSON(http.StatusOK, api.TopicListResponse{ + Topics: topicResponses, }) } diff --git a/routers/api/v1/swagger/repo.go b/routers/api/v1/swagger/repo.go index 42d1bb637a..f95d363d7c 100644 --- a/routers/api/v1/swagger/repo.go +++ b/routers/api/v1/swagger/repo.go @@ -341,7 +341,7 @@ type swaggerFileDeleteResponse struct { // swagger:response TopicListResponse type swaggerTopicListResponse struct { // in: body - Body []api.TopicResponse `json:"body"` + Body api.TopicListResponse `json:"body"` } // TopicNames diff --git a/routers/api/v1/swagger/user.go b/routers/api/v1/swagger/user.go index 16be01fd34..c10b373601 100644 --- a/routers/api/v1/swagger/user.go +++ b/routers/api/v1/swagger/user.go @@ -46,7 +46,7 @@ type swaggerResponseUserHeatmapData struct { // swagger:response UserSettings type swaggerResponseUserSettings struct { // in:body - Body []api.UserSettings `json:"body"` + Body api.UserSettings `json:"body"` } // BadgeList diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index ad7f387e1e..d4f693f5f4 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -30208,6 +30208,20 @@ }, "x-go-package": "gitea.dev/modules/structs" }, + "TopicListResponse": { + "description": "TopicListResponse returns a list of TopicResponse", + "type": "object", + "properties": { + "topics": { + "type": "array", + "items": { + "$ref": "#/definitions/TopicResponse" + }, + "x-go-name": "Topics" + } + }, + "x-go-package": "gitea.dev/modules/structs" + }, "TopicName": { "description": "TopicName a list of repo topic names", "type": "object", @@ -31804,10 +31818,7 @@ "TopicListResponse": { "description": "TopicListResponse", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/TopicResponse" - } + "$ref": "#/definitions/TopicListResponse" } }, "TopicNames": { @@ -31858,10 +31869,7 @@ "UserSettings": { "description": "UserSettings", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/UserSettings" - } + "$ref": "#/definitions/UserSettings" } }, "VariableList": { diff --git a/templates/swagger/v1_openapi3_json.tmpl b/templates/swagger/v1_openapi3_json.tmpl index 559aaee066..be2f095109 100644 --- a/templates/swagger/v1_openapi3_json.tmpl +++ b/templates/swagger/v1_openapi3_json.tmpl @@ -1402,10 +1402,7 @@ "content": { "application/json": { "schema": { - "items": { - "$ref": "#/components/schemas/TopicResponse" - }, - "type": "array" + "$ref": "#/components/schemas/TopicListResponse" } } }, @@ -1484,10 +1481,7 @@ "content": { "application/json": { "schema": { - "items": { - "$ref": "#/components/schemas/UserSettings" - }, - "type": "array" + "$ref": "#/components/schemas/UserSettings" } } }, @@ -9963,6 +9957,20 @@ "type": "object", "x-go-package": "gitea.dev/modules/structs" }, + "TopicListResponse": { + "description": "TopicListResponse returns a list of TopicResponse", + "properties": { + "topics": { + "items": { + "$ref": "#/components/schemas/TopicResponse" + }, + "type": "array", + "x-go-name": "Topics" + } + }, + "type": "object", + "x-go-package": "gitea.dev/modules/structs" + }, "TopicName": { "description": "TopicName a list of repo topic names", "properties": {