summaryrefslogtreecommitdiffstats
path: root/app/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 /app/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 'app/emoji.go')
-rw-r--r--app/emoji.go23
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()