diff options
-rw-r--r-- | api/file_test.go | 7 | ||||
-rw-r--r-- | model/client.go | 2 | ||||
-rw-r--r-- | model/file_info.go | 12 |
3 files changed, 16 insertions, 5 deletions
diff --git a/api/file_test.go b/api/file_test.go index b5501e4bd..b3fbd2a27 100644 --- a/api/file_test.go +++ b/api/file_test.go @@ -152,7 +152,6 @@ func TestGetFile(t *testing.T) { channel1 = Client.Must(Client.CreateChannel(channel1)).Data.(*model.Channel) if utils.Cfg.FileSettings.DriverName != "" { - body := &bytes.Buffer{} writer := multipart.NewWriter(body) part, err := writer.CreateFormFile("files", "test.png") @@ -204,9 +203,9 @@ func TestGetFile(t *testing.T) { if resp, downErr := Client.GetFileInfo(filenames[0]); downErr != nil { t.Fatal(downErr) } else { - m := resp.Data.(map[string]string) - if len(m["size"]) == 0 { - t.Fail() + info := resp.Data.(*model.FileInfo) + if info.Size == 0 { + t.Fatal("No file size returned") } } diff --git a/model/client.go b/model/client.go index d3f76817d..b9b97dedc 100644 --- a/model/client.go +++ b/model/client.go @@ -717,7 +717,7 @@ func (c *Client) GetFileInfo(url string) (*Result, *AppError) { return nil, AppErrorFromJson(rp.Body) } else { return &Result{rp.Header.Get(HEADER_REQUEST_ID), - rp.Header.Get(HEADER_ETAG_SERVER), MapFromJson(rp.Body)}, nil + rp.Header.Get(HEADER_ETAG_SERVER), FileInfoFromJson(rp.Body)}, nil } } diff --git a/model/file_info.go b/model/file_info.go index d96723f32..741b4e55d 100644 --- a/model/file_info.go +++ b/model/file_info.go @@ -7,6 +7,7 @@ import ( "bytes" "encoding/json" "image/gif" + "io" "mime" "path/filepath" ) @@ -58,3 +59,14 @@ func (info *FileInfo) ToJson() string { return string(b) } } + +func FileInfoFromJson(data io.Reader) *FileInfo { + decoder := json.NewDecoder(data) + + var info FileInfo + if err := decoder.Decode(&info); err != nil { + return nil + } else { + return &info + } +} |