aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--integrations/api_issue_reaction_test.go16
-rw-r--r--routers/api/v1/api.go3
-rw-r--r--routers/api/v1/misc/settings.go23
-rw-r--r--routers/api/v1/swagger/misc.go7
-rw-r--r--templates/swagger/v1_json.tmpl26
5 files changed, 75 insertions, 0 deletions
diff --git a/integrations/api_issue_reaction_test.go b/integrations/api_issue_reaction_test.go
index 1906b8d090..ab3de7c116 100644
--- a/integrations/api_issue_reaction_test.go
+++ b/integrations/api_issue_reaction_test.go
@@ -11,11 +11,27 @@ import (
"time"
"code.gitea.io/gitea/models"
+ "code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
"github.com/stretchr/testify/assert"
)
+func TestAPIAllowedReactions(t *testing.T) {
+ defer prepareTestEnv(t)()
+
+ type allowed []string
+
+ a := new(allowed)
+
+ req := NewRequest(t, "GET", "/api/v1/settings/allowed_reactions")
+ 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)
+}
+
func TestAPIIssuesReactions(t *testing.T) {
defer prepareTestEnv(t)()
diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go
index 2eb39f6070..0f8a0326e9 100644
--- a/routers/api/v1/api.go
+++ b/routers/api/v1/api.go
@@ -512,6 +512,9 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Get("/signing-key.gpg", misc.SigningKey)
m.Post("/markdown", bind(api.MarkdownOption{}), misc.Markdown)
m.Post("/markdown/raw", misc.MarkdownRaw)
+ m.Group("/settings", func() {
+ m.Get("/allowed_reactions", misc.SettingGetsAllowedReactions)
+ })
// Notifications
m.Group("/notifications", func() {
diff --git a/routers/api/v1/misc/settings.go b/routers/api/v1/misc/settings.go
new file mode 100644
index 0000000000..11c7eef726
--- /dev/null
+++ b/routers/api/v1/misc/settings.go
@@ -0,0 +1,23 @@
+// 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 misc
+
+import (
+ "code.gitea.io/gitea/modules/context"
+ "code.gitea.io/gitea/modules/setting"
+)
+
+// SettingGetsAllowedReactions return allowed reactions
+func SettingGetsAllowedReactions(ctx *context.APIContext) {
+ // swagger:operation GET /settings/allowed_reactions miscellaneous getAllowedReactions
+ // ---
+ // summary: Returns string array of allowed reactions
+ // produces:
+ // - application/json
+ // responses:
+ // "200":
+ // "$ref": "#/responses/StringSlice"
+ ctx.JSON(200, setting.UI.Reactions)
+}
diff --git a/routers/api/v1/swagger/misc.go b/routers/api/v1/swagger/misc.go
index 9fd0ab5b00..1d3c257efa 100644
--- a/routers/api/v1/swagger/misc.go
+++ b/routers/api/v1/swagger/misc.go
@@ -14,3 +14,10 @@ type swaggerResponseServerVersion struct {
// in:body
Body api.ServerVersion `json:"body"`
}
+
+// StringSlice
+// swagger:response StringSlice
+type swaggerResponseStringSlice struct {
+ // in:body
+ Body []string `json:"body"`
+}
diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl
index 1f159d64a0..687a6bc5e4 100644
--- a/templates/swagger/v1_json.tmpl
+++ b/templates/swagger/v1_json.tmpl
@@ -8343,6 +8343,23 @@
}
}
},
+ "/settings/allowed_reactions": {
+ "get": {
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "miscellaneous"
+ ],
+ "summary": "Returns string array of allowed reactions",
+ "operationId": "getAllowedReactions",
+ "responses": {
+ "200": {
+ "$ref": "#/responses/StringSlice"
+ }
+ }
+ }
+ },
"/signing-key.gpg": {
"get": {
"produces": [
@@ -15042,6 +15059,15 @@
}
}
},
+ "StringSlice": {
+ "description": "StringSlice",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
"Tag": {
"description": "Tag",
"schema": {