diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-02-17 10:31:21 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-17 10:31:21 -0500 |
commit | 91fe8bb2c0d520f13269b2eadc2717a5ec4eea1c (patch) | |
tree | 088fc7015274975c4f1494a5b5afe72af84b6966 /api4/apitestlib.go | |
parent | 4e7dbc3bb0e93bafa684594b19c5648dc030ee17 (diff) | |
download | chat-91fe8bb2c0d520f13269b2eadc2717a5ec4eea1c.tar.gz chat-91fe8bb2c0d520f13269b2eadc2717a5ec4eea1c.tar.bz2 chat-91fe8bb2c0d520f13269b2eadc2717a5ec4eea1c.zip |
Implement upload and get file endpoints for APIv4 (#5396)
* Implement POST /files endpoint for APIv4
* Implement GET /files/{file_id} endpoint for APIv4
Diffstat (limited to 'api4/apitestlib.go')
-rw-r--r-- | api4/apitestlib.go | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/api4/apitestlib.go b/api4/apitestlib.go index 08ca338c5..27bf83f10 100644 --- a/api4/apitestlib.go +++ b/api4/apitestlib.go @@ -4,7 +4,10 @@ package api4 import ( + "bytes" + "io" "net/http" + "os" "reflect" "runtime/debug" "strconv" @@ -17,6 +20,8 @@ import ( "github.com/mattermost/platform/model" "github.com/mattermost/platform/store" "github.com/mattermost/platform/utils" + + s3 "github.com/minio/minio-go" ) type TestHelper struct { @@ -398,3 +403,66 @@ func CheckErrorMessage(t *testing.T, resp *model.Response, errorId string) { t.Fatal("incorrect error message") } } + +func readTestFile(name string) ([]byte, error) { + path := utils.FindDir("tests") + file, err := os.Open(path + "/" + name) + if err != nil { + return nil, err + } + defer file.Close() + + data := &bytes.Buffer{} + if _, err := io.Copy(data, file); err != nil { + return nil, err + } else { + return data.Bytes(), nil + } +} + +func cleanupTestFile(info *model.FileInfo) error { + if utils.Cfg.FileSettings.DriverName == model.IMAGE_DRIVER_S3 { + endpoint := utils.Cfg.FileSettings.AmazonS3Endpoint + accessKey := utils.Cfg.FileSettings.AmazonS3AccessKeyId + secretKey := utils.Cfg.FileSettings.AmazonS3SecretAccessKey + secure := *utils.Cfg.FileSettings.AmazonS3SSL + s3Clnt, err := s3.New(endpoint, accessKey, secretKey, secure) + if err != nil { + return err + } + bucket := utils.Cfg.FileSettings.AmazonS3Bucket + if err := s3Clnt.RemoveObject(bucket, info.Path); err != nil { + return err + } + + if info.ThumbnailPath != "" { + if err := s3Clnt.RemoveObject(bucket, info.ThumbnailPath); err != nil { + return err + } + } + + if info.PreviewPath != "" { + if err := s3Clnt.RemoveObject(bucket, info.PreviewPath); err != nil { + return err + } + } + } else if utils.Cfg.FileSettings.DriverName == model.IMAGE_DRIVER_LOCAL { + if err := os.Remove(utils.Cfg.FileSettings.Directory + info.Path); err != nil { + return err + } + + if info.ThumbnailPath != "" { + if err := os.Remove(utils.Cfg.FileSettings.Directory + info.ThumbnailPath); err != nil { + return err + } + } + + if info.PreviewPath != "" { + if err := os.Remove(utils.Cfg.FileSettings.Directory + info.PreviewPath); err != nil { + return err + } + } + } + + return nil +} |