Browse Source

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
for-closed-social
6543 4 years ago
committed by GitHub
parent
commit
fc2f2c7602
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 73 additions and 33 deletions
  1. +4
    -6
      integrations/api_issue_reaction_test.go
  2. +5
    -0
      modules/structs/settings.go
  3. +3
    -2
      routers/api/v1/api.go
  4. +10
    -8
      routers/api/v1/settings/settings.go
  5. +0
    -7
      routers/api/v1/swagger/misc.go
  6. +21
    -0
      routers/api/v1/swagger/settings.go
  7. +30
    -10
      templates/swagger/v1_json.tmpl

+ 4
- 6
integrations/api_issue_reaction_test.go View File

@ -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 View File

@ -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 View File

@ -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 View File

@ -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 View File

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

+ 30
- 10
templates/swagger/v1_json.tmpl View File

@ -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…
Cancel
Save