瀏覽代碼

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
tags/v1.13.0-rc1
6543 3 年之前
父節點
當前提交
fc2f2c7602
No account linked to committer's email address

+ 4
- 6
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) {

+ 5
- 0
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"`
}

+ 3
- 2
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

routers/api/v1/misc/settings.go → 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:

+ 0
- 7
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"`
}

+ 21
- 0
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"`
}

+ 30
- 10
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": {

Loading…
取消
儲存