diff options
Diffstat (limited to 'api4/emoji.go')
-rw-r--r-- | api4/emoji.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/api4/emoji.go b/api4/emoji.go index 2452f87c4..ff4919860 100644 --- a/api4/emoji.go +++ b/api4/emoji.go @@ -20,6 +20,8 @@ func InitEmoji() { BaseRoutes.Emojis.Handle("", ApiSessionRequired(createEmoji)).Methods("POST") BaseRoutes.Emojis.Handle("", ApiSessionRequired(getEmojiList)).Methods("GET") + BaseRoutes.Emoji.Handle("", ApiSessionRequired(deleteEmoji)).Methods("DELETE") + BaseRoutes.Emoji.Handle("", ApiSessionRequired(getEmoji)).Methods("GET") } func createEmoji(c *Context, w http.ResponseWriter, r *http.Request) { @@ -81,3 +83,49 @@ func getEmojiList(c *Context, w http.ResponseWriter, r *http.Request) { w.Write([]byte(model.EmojiListToJson(listEmoji))) } } + +func deleteEmoji(c *Context, w http.ResponseWriter, r *http.Request) { + c.RequireEmojiId() + if c.Err != nil { + return + } + + emoji, err := app.GetEmoji(c.Params.EmojiId) + if err != nil { + c.Err = err + return + } + + if c.Session.UserId != emoji.CreatorId && !app.SessionHasPermissionTo(c.Session, model.PERMISSION_MANAGE_SYSTEM) { + c.Err = model.NewAppError("deleteImage", "api.emoji.delete.permissions.app_error", nil, "user_id="+c.Session.UserId, http.StatusUnauthorized) + return + } + + err = app.DeleteEmoji(emoji) + if err != nil { + c.Err = err + return + } else { + ReturnStatusOK(w) + } +} + +func getEmoji(c *Context, w http.ResponseWriter, r *http.Request) { + c.RequireEmojiId() + if c.Err != nil { + return + } + + if !*utils.Cfg.ServiceSettings.EnableCustomEmoji { + c.Err = model.NewAppError("getEmoji", "api.emoji.disabled.app_error", nil, "", http.StatusNotImplemented) + return + } + + emoji, err := app.GetEmoji(c.Params.EmojiId) + if err != nil { + c.Err = err + return + } else { + w.Write([]byte(emoji.ToJson())) + } +} |