* [API] Expose allowed Reactions * dont be in soutch a rush * add TEST * use ElementsMatch Co-authored-by: Lauris BH <lauris@nix.lv>tags/v1.13.0-rc1
@@ -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)() | |||
@@ -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() { |
@@ -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) | |||
} |
@@ -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"` | |||
} |
@@ -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": { |