summaryrefslogtreecommitdiffstats
path: root/api4/emoji.go
diff options
context:
space:
mode:
authorCarlos Tadeu Panato Junior <ctadeu@gmail.com>2017-04-20 17:14:15 +0200
committerJoram Wilander <jwawilander@gmail.com>2017-04-20 11:14:15 -0400
commitf758f9ff3a617dd5939e1e7851fdbe10d03cd5a8 (patch)
tree5ad09ea76c124bcdb096d3f1329410b01a0dbd3a /api4/emoji.go
parent55bbf15fc7a83d3cda1fe5bc037823cbbc4fc023 (diff)
downloadchat-f758f9ff3a617dd5939e1e7851fdbe10d03cd5a8.tar.gz
chat-f758f9ff3a617dd5939e1e7851fdbe10d03cd5a8.tar.bz2
chat-f758f9ff3a617dd5939e1e7851fdbe10d03cd5a8.zip
[APIV4] GET /emoji/{emoji_id}/image for apiV4 (#6141)
* implement GET /emoji/{emoji_id}/image for apiV4 * update per request
Diffstat (limited to 'api4/emoji.go')
-rw-r--r--api4/emoji.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/api4/emoji.go b/api4/emoji.go
index ff4919860..a9bfae924 100644
--- a/api4/emoji.go
+++ b/api4/emoji.go
@@ -22,6 +22,7 @@ func InitEmoji() {
BaseRoutes.Emojis.Handle("", ApiSessionRequired(getEmojiList)).Methods("GET")
BaseRoutes.Emoji.Handle("", ApiSessionRequired(deleteEmoji)).Methods("DELETE")
BaseRoutes.Emoji.Handle("", ApiSessionRequired(getEmoji)).Methods("GET")
+ BaseRoutes.Emoji.Handle("/image", ApiSessionRequiredTrustRequester(getEmojiImage)).Methods("GET")
}
func createEmoji(c *Context, w http.ResponseWriter, r *http.Request) {
@@ -129,3 +130,30 @@ func getEmoji(c *Context, w http.ResponseWriter, r *http.Request) {
w.Write([]byte(emoji.ToJson()))
}
}
+
+func getEmojiImage(c *Context, w http.ResponseWriter, r *http.Request) {
+ c.RequireEmojiId()
+ if c.Err != nil {
+ return
+ }
+
+ if !*utils.Cfg.ServiceSettings.EnableCustomEmoji {
+ c.Err = model.NewAppError("getEmojiImage", "api.emoji.disabled.app_error", nil, "", http.StatusNotImplemented)
+ return
+ }
+
+ if len(utils.Cfg.FileSettings.DriverName) == 0 {
+ c.Err = model.NewAppError("getEmojiImage", "api.emoji.storage.app_error", nil, "", http.StatusNotImplemented)
+ return
+ }
+
+ image, imageType, err := app.GetEmojiImage(c.Params.EmojiId)
+ if err != nil {
+ c.Err = err
+ return
+ }
+
+ w.Header().Set("Content-Type", "image/"+imageType)
+ w.Header().Set("Cache-Control", "max-age=2592000, public")
+ w.Write(image)
+}