Files
mattermost/api/import.go

83 lines
2.2 KiB
Go
Raw Normal View History

// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
2015-07-07 09:16:13 -04:00
// See License.txt for license information.
package api
import (
"bytes"
"io"
2016-01-11 09:12:51 -06:00
l4g "github.com/alecthomas/log4go"
2015-07-07 09:16:13 -04:00
"github.com/mattermost/platform/model"
"github.com/mattermost/platform/utils"
2015-07-07 09:16:13 -04:00
)
//
// Import functions are sutible for entering posts and users into the database without
// some of the usual checks. (IsValid is still run)
//
func ImportPost(post *model.Post) {
2015-07-07 09:16:13 -04:00
post.Hashtags, _ = model.ParseHashtags(post.Message)
if result := <-Srv.Store.Post().Save(post); result.Err != nil {
l4g.Debug(utils.T("api.import.import_post.saving.debug"), post.UserId, post.Message)
2015-07-07 09:16:13 -04:00
}
}
2016-04-28 16:29:13 -04:00
func ImportUser(team *model.Team, user *model.User) *model.User {
2015-07-07 09:16:13 -04:00
user.MakeNonNil()
if result := <-Srv.Store.User().Save(user); result.Err != nil {
l4g.Error(utils.T("api.import.import_user.saving.error"), result.Err)
2015-07-07 09:16:13 -04:00
return nil
} else {
ruser := result.Data.(*model.User)
if cresult := <-Srv.Store.User().VerifyEmail(ruser.Id); cresult.Err != nil {
l4g.Error(utils.T("api.import.import_user.set_email.error"), cresult.Err)
2015-07-07 09:16:13 -04:00
}
2016-04-28 16:29:13 -04:00
if err := JoinUserToTeam(team, user); err != nil {
l4g.Error(utils.T("api.import.import_user.join_team.error"), err)
}
2015-07-07 09:16:13 -04:00
return ruser
}
}
func ImportChannel(channel *model.Channel) *model.Channel {
if result := <-Srv.Store.Channel().Save(channel); result.Err != nil {
2015-07-07 09:16:13 -04:00
return nil
} else {
sc := result.Data.(*model.Channel)
return sc
}
}
func ImportFile(file io.Reader, teamId string, channelId string, userId string, fileName string) (*model.FileInfo, error) {
buf := bytes.NewBuffer(nil)
io.Copy(buf, file)
data := buf.Bytes()
previewPathList := []string{}
thumbnailPathList := []string{}
imageDataList := [][]byte{}
fileInfo, err := doUploadFile(teamId, channelId, userId, fileName, data)
if err != nil {
return nil, err
}
if fileInfo.PreviewPath != "" || fileInfo.ThumbnailPath != "" {
previewPathList = append(previewPathList, fileInfo.PreviewPath)
thumbnailPathList = append(thumbnailPathList, fileInfo.ThumbnailPath)
imageDataList = append(imageDataList, data)
}
go handleImages(previewPathList, thumbnailPathList, imageDataList)
return fileInfo, nil
}