API: Move AllowedReactions endpoint into GetGenneralUI endpoint + creat new swagger section settings (#11854)

* move Setting function into its own package

* swagger add&use new section "settings"

* move api AllowedReactions into general UI-Settings endpoint

* prepare TEST

* lint
This commit is contained in:
6543 2020-06-22 20:21:31 +02:00 committed by GitHub
parent b948ecb2d2
commit fc2f2c7602
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 81 additions and 41 deletions

View file

@ -20,16 +20,14 @@ import (
func TestAPIAllowedReactions(t *testing.T) { func TestAPIAllowedReactions(t *testing.T) {
defer prepareTestEnv(t)() defer prepareTestEnv(t)()
type allowed []string a := new(api.GeneralUISettings)
a := new(allowed) req := NewRequest(t, "GET", "/api/v1/settings/ui")
req := NewRequest(t, "GET", "/api/v1/settings/allowed_reactions")
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, resp, &a) DecodeJSON(t, resp, &a)
assert.Len(t, *a, len(setting.UI.Reactions)) assert.Len(t, a.AllowedReactions, len(setting.UI.Reactions))
assert.ElementsMatch(t, setting.UI.Reactions, *a) assert.ElementsMatch(t, setting.UI.Reactions, a.AllowedReactions)
} }
func TestAPIIssuesReactions(t *testing.T) { func TestAPIIssuesReactions(t *testing.T) {

View file

@ -9,3 +9,8 @@ type GeneralRepoSettings struct {
MirrorsDisabled bool `json:"mirrors_disabled"` MirrorsDisabled bool `json:"mirrors_disabled"`
HTTPGitDisabled bool `json:"http_git_disabled"` HTTPGitDisabled bool `json:"http_git_disabled"`
} }
// GeneralUISettings contains global ui settings exposed by API
type GeneralUISettings struct {
AllowedReactions []string `json:"allowed_reactions"`
}

View file

@ -73,6 +73,7 @@ import (
"code.gitea.io/gitea/routers/api/v1/notify" "code.gitea.io/gitea/routers/api/v1/notify"
"code.gitea.io/gitea/routers/api/v1/org" "code.gitea.io/gitea/routers/api/v1/org"
"code.gitea.io/gitea/routers/api/v1/repo" "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/swagger" // for swagger generation
"code.gitea.io/gitea/routers/api/v1/user" "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", bind(api.MarkdownOption{}), misc.Markdown)
m.Post("/markdown/raw", misc.MarkdownRaw) m.Post("/markdown/raw", misc.MarkdownRaw)
m.Group("/settings", func() { m.Group("/settings", func() {
m.Get("/allowed_reactions", misc.SettingGetsAllowedReactions) m.Get("/ui", settings.GetGeneralUISettings)
m.Get("/repository", misc.GetGeneralRepoSettings) m.Get("/repository", settings.GetGeneralRepoSettings)
}) })
// Notifications // Notifications

View file

@ -2,7 +2,7 @@
// Use of this source code is governed by a MIT-style // Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
package misc package settings
import ( import (
"net/http" "net/http"
@ -12,22 +12,24 @@ import (
api "code.gitea.io/gitea/modules/structs" api "code.gitea.io/gitea/modules/structs"
) )
// SettingGetsAllowedReactions return allowed reactions // GetGeneralUISettings returns instance's global settings for ui
func SettingGetsAllowedReactions(ctx *context.APIContext) { func GetGeneralUISettings(ctx *context.APIContext) {
// swagger:operation GET /settings/allowed_reactions miscellaneous getAllowedReactions // swagger:operation GET /settings/ui settings getGeneralUISettings
// --- // ---
// summary: Returns string array of allowed reactions // summary: Get instance's global settings for ui
// produces: // produces:
// - application/json // - application/json
// responses: // responses:
// "200": // "200":
// "$ref": "#/responses/StringSlice" // "$ref": "#/responses/GeneralUISettings"
ctx.JSON(http.StatusOK, setting.UI.Reactions) ctx.JSON(http.StatusOK, api.GeneralUISettings{
AllowedReactions: setting.UI.Reactions,
})
} }
// GetGeneralRepoSettings returns instance's global settings for repositories // GetGeneralRepoSettings returns instance's global settings for repositories
func GetGeneralRepoSettings(ctx *context.APIContext) { 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 // summary: Get instance's global settings for repositories
// produces: // produces:

View file

@ -21,10 +21,3 @@ type swaggerResponseStringSlice struct {
// in:body // in:body
Body []string `json:"body"` Body []string `json:"body"`
} }
// GeneralRepoSettings
// swagger:response GeneralRepoSettings
type swaggerResponseGeneralRepoSettings struct {
// in:body
Body api.GeneralRepoSettings `json:"body"`
}

View file

@ -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"`
}

View file

@ -8470,30 +8470,13 @@
} }
} }
}, },
"/settings/allowed_reactions": {
"get": {
"produces": [
"application/json"
],
"tags": [
"miscellaneous"
],
"summary": "Returns string array of allowed reactions",
"operationId": "getAllowedReactions",
"responses": {
"200": {
"$ref": "#/responses/StringSlice"
}
}
}
},
"/settings/repository": { "/settings/repository": {
"get": { "get": {
"produces": [ "produces": [
"application/json" "application/json"
], ],
"tags": [ "tags": [
"miscellaneous" "settings"
], ],
"summary": "Get instance's global settings for repositories", "summary": "Get instance's global settings for repositories",
"operationId": "getGeneralRepositorySettings", "operationId": "getGeneralRepositorySettings",
@ -8504,6 +8487,23 @@
} }
} }
}, },
"/settings/ui": {
"get": {
"produces": [
"application/json"
],
"tags": [
"settings"
],
"summary": "Get instance's global settings for ui",
"operationId": "getGeneralUISettings",
"responses": {
"200": {
"$ref": "#/responses/GeneralUISettings"
}
}
}
},
"/signing-key.gpg": { "/signing-key.gpg": {
"get": { "get": {
"produces": [ "produces": [
@ -12753,6 +12753,20 @@
}, },
"x-go-package": "code.gitea.io/gitea/modules/structs" "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": { "GitBlobResponse": {
"description": "GitBlobResponse represents a git blob", "description": "GitBlobResponse represents a git blob",
"type": "object", "type": "object",
@ -14928,6 +14942,12 @@
"$ref": "#/definitions/GeneralRepoSettings" "$ref": "#/definitions/GeneralRepoSettings"
} }
}, },
"GeneralUISettings": {
"description": "GeneralUISettings",
"schema": {
"$ref": "#/definitions/GeneralUISettings"
}
},
"GitBlobResponse": { "GitBlobResponse": {
"description": "GitBlobResponse", "description": "GitBlobResponse",
"schema": { "schema": {