diff --git a/integrations/api_issue_reaction_test.go b/integrations/api_issue_reaction_test.go index ab3de7c11625f..abbc6429fb49a 100644 --- a/integrations/api_issue_reaction_test.go +++ b/integrations/api_issue_reaction_test.go @@ -20,16 +20,14 @@ import ( func TestAPIAllowedReactions(t *testing.T) { defer prepareTestEnv(t)() - type allowed []string + a := new(api.GeneralUISettings) - a := new(allowed) - - req := NewRequest(t, "GET", "/api/v1/settings/allowed_reactions") + req := NewRequest(t, "GET", "/api/v1/settings/ui") resp := MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &a) - assert.Len(t, *a, len(setting.UI.Reactions)) - assert.ElementsMatch(t, setting.UI.Reactions, *a) + assert.Len(t, a.AllowedReactions, len(setting.UI.Reactions)) + assert.ElementsMatch(t, setting.UI.Reactions, a.AllowedReactions) } func TestAPIIssuesReactions(t *testing.T) { diff --git a/modules/structs/settings.go b/modules/structs/settings.go index dcd1b5cabd9c2..4a6e0ce5a84b9 100644 --- a/modules/structs/settings.go +++ b/modules/structs/settings.go @@ -9,3 +9,8 @@ type GeneralRepoSettings struct { MirrorsDisabled bool `json:"mirrors_disabled"` HTTPGitDisabled bool `json:"http_git_disabled"` } + +// GeneralUISettings contains global ui settings exposed by API +type GeneralUISettings struct { + AllowedReactions []string `json:"allowed_reactions"` +} diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go index f356d7a2bc185..b03f547a6bc7d 100644 --- a/routers/api/v1/api.go +++ b/routers/api/v1/api.go @@ -73,6 +73,7 @@ import ( "code.gitea.io/gitea/routers/api/v1/notify" "code.gitea.io/gitea/routers/api/v1/org" "code.gitea.io/gitea/routers/api/v1/repo" + "code.gitea.io/gitea/routers/api/v1/settings" _ "code.gitea.io/gitea/routers/api/v1/swagger" // for swagger generation "code.gitea.io/gitea/routers/api/v1/user" @@ -513,8 +514,8 @@ func RegisterRoutes(m *macaron.Macaron) { m.Post("/markdown", bind(api.MarkdownOption{}), misc.Markdown) m.Post("/markdown/raw", misc.MarkdownRaw) m.Group("/settings", func() { - m.Get("/allowed_reactions", misc.SettingGetsAllowedReactions) - m.Get("/repository", misc.GetGeneralRepoSettings) + m.Get("/ui", settings.GetGeneralUISettings) + m.Get("/repository", settings.GetGeneralRepoSettings) }) // Notifications diff --git a/routers/api/v1/misc/settings.go b/routers/api/v1/settings/settings.go similarity index 64% rename from routers/api/v1/misc/settings.go rename to routers/api/v1/settings/settings.go index 925cde835cb00..8403a51d3eaa8 100644 --- a/routers/api/v1/misc/settings.go +++ b/routers/api/v1/settings/settings.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. -package misc +package settings import ( "net/http" @@ -12,22 +12,24 @@ import ( api "code.gitea.io/gitea/modules/structs" ) -// SettingGetsAllowedReactions return allowed reactions -func SettingGetsAllowedReactions(ctx *context.APIContext) { - // swagger:operation GET /settings/allowed_reactions miscellaneous getAllowedReactions +// GetGeneralUISettings returns instance's global settings for ui +func GetGeneralUISettings(ctx *context.APIContext) { + // swagger:operation GET /settings/ui settings getGeneralUISettings // --- - // summary: Returns string array of allowed reactions + // summary: Get instance's global settings for ui // produces: // - application/json // responses: // "200": - // "$ref": "#/responses/StringSlice" - ctx.JSON(http.StatusOK, setting.UI.Reactions) + // "$ref": "#/responses/GeneralUISettings" + ctx.JSON(http.StatusOK, api.GeneralUISettings{ + AllowedReactions: setting.UI.Reactions, + }) } // GetGeneralRepoSettings returns instance's global settings for repositories func GetGeneralRepoSettings(ctx *context.APIContext) { - // swagger:operation GET /settings/repository miscellaneous getGeneralRepositorySettings + // swagger:operation GET /settings/repository settings getGeneralRepositorySettings // --- // summary: Get instance's global settings for repositories // produces: diff --git a/routers/api/v1/swagger/misc.go b/routers/api/v1/swagger/misc.go index 50f5cbdbf5260..1d3c257efacb2 100644 --- a/routers/api/v1/swagger/misc.go +++ b/routers/api/v1/swagger/misc.go @@ -21,10 +21,3 @@ type swaggerResponseStringSlice struct { // in:body Body []string `json:"body"` } - -// GeneralRepoSettings -// swagger:response GeneralRepoSettings -type swaggerResponseGeneralRepoSettings struct { - // in:body - Body api.GeneralRepoSettings `json:"body"` -} diff --git a/routers/api/v1/swagger/settings.go b/routers/api/v1/swagger/settings.go new file mode 100644 index 0000000000000..45266e51df6b3 --- /dev/null +++ b/routers/api/v1/swagger/settings.go @@ -0,0 +1,21 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package swagger + +import api "code.gitea.io/gitea/modules/structs" + +// GeneralRepoSettings +// swagger:response GeneralRepoSettings +type swaggerResponseGeneralRepoSettings struct { + // in:body + Body api.GeneralRepoSettings `json:"body"` +} + +// GeneralUISettings +// swagger:response GeneralUISettings +type swaggerResponseGeneralUISettings struct { + // in:body + Body api.GeneralUISettings `json:"body"` +} diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index 34a4b42f2ffd8..1226822cc8af1 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -8470,36 +8470,36 @@ } } }, - "/settings/allowed_reactions": { + "/settings/repository": { "get": { "produces": [ "application/json" ], "tags": [ - "miscellaneous" + "settings" ], - "summary": "Returns string array of allowed reactions", - "operationId": "getAllowedReactions", + "summary": "Get instance's global settings for repositories", + "operationId": "getGeneralRepositorySettings", "responses": { "200": { - "$ref": "#/responses/StringSlice" + "$ref": "#/responses/GeneralRepoSettings" } } } }, - "/settings/repository": { + "/settings/ui": { "get": { "produces": [ "application/json" ], "tags": [ - "miscellaneous" + "settings" ], - "summary": "Get instance's global settings for repositories", - "operationId": "getGeneralRepositorySettings", + "summary": "Get instance's global settings for ui", + "operationId": "getGeneralUISettings", "responses": { "200": { - "$ref": "#/responses/GeneralRepoSettings" + "$ref": "#/responses/GeneralUISettings" } } } @@ -12753,6 +12753,20 @@ }, "x-go-package": "code.gitea.io/gitea/modules/structs" }, + "GeneralUISettings": { + "description": "GeneralUISettings contains global ui settings exposed by API", + "type": "object", + "properties": { + "allowed_reactions": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "AllowedReactions" + } + }, + "x-go-package": "code.gitea.io/gitea/modules/structs" + }, "GitBlobResponse": { "description": "GitBlobResponse represents a git blob", "type": "object", @@ -14928,6 +14942,12 @@ "$ref": "#/definitions/GeneralRepoSettings" } }, + "GeneralUISettings": { + "description": "GeneralUISettings", + "schema": { + "$ref": "#/definitions/GeneralUISettings" + } + }, "GitBlobResponse": { "description": "GitBlobResponse", "schema": {