diff options
author | Carlos Tadeu Panato Junior <ctadeu@gmail.com> | 2017-04-20 17:14:15 +0200 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2017-04-20 11:14:15 -0400 |
commit | f758f9ff3a617dd5939e1e7851fdbe10d03cd5a8 (patch) | |
tree | 5ad09ea76c124bcdb096d3f1329410b01a0dbd3a /api4/emoji.go | |
parent | 55bbf15fc7a83d3cda1fe5bc037823cbbc4fc023 (diff) | |
download | chat-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.go | 28 |
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) +} |