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 /app/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 'app/emoji.go')
-rw-r--r-- | app/emoji.go | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/app/emoji.go b/app/emoji.go index b0c8418aa..3e3350285 100644 --- a/app/emoji.go +++ b/app/emoji.go @@ -6,7 +6,6 @@ package app import ( "bytes" "image" - "image/color/palette" "image/draw" "image/gif" _ "image/jpeg" @@ -20,6 +19,7 @@ import ( "github.com/disintegration/imaging" "github.com/mattermost/platform/model" "github.com/mattermost/platform/utils" + "image/color/palette" ) const ( @@ -148,6 +148,27 @@ func GetEmoji(emojiId string) (*model.Emoji, *model.AppError) { } } +func GetEmojiImage(emojiId string) (imageByte []byte, imageType string, err *model.AppError) { + if result := <-Srv.Store.Emoji().Get(emojiId, true); result.Err != nil { + return nil, "", result.Err + } else { + var img []byte + + if data, err := ReadFile(getEmojiImagePath(emojiId)); err != nil { + return nil, "", model.NewAppError("getEmojiImage", "api.emoji.get_image.read.app_error", nil, err.Error(), http.StatusNotFound) + } else { + img = data + } + + _, imageType, err := image.DecodeConfig(bytes.NewReader(img)) + if err != nil { + return nil, "", model.NewAppError("getEmojiImage", "api.emoji.get_image.decode.app_error", nil, err.Error(), http.StatusInternalServerError) + } + + return img, imageType, nil + } +} + func resizeEmojiGif(gifImg *gif.GIF) *gif.GIF { // Create a new RGBA image to hold the incremental frames. firstFrame := gifImg.Image[0].Bounds() |