From f758f9ff3a617dd5939e1e7851fdbe10d03cd5a8 Mon Sep 17 00:00:00 2001 From: Carlos Tadeu Panato Junior Date: Thu, 20 Apr 2017 17:14:15 +0200 Subject: [APIV4] GET /emoji/{emoji_id}/image for apiV4 (#6141) * implement GET /emoji/{emoji_id}/image for apiV4 * update per request --- app/emoji.go | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'app/emoji.go') 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() -- cgit v1.2.3-1-g7c22