diff options
Diffstat (limited to 'api/import.go')
-rw-r--r-- | api/import.go | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/api/import.go b/api/import.go new file mode 100644 index 000000000..e3f314d20 --- /dev/null +++ b/api/import.go @@ -0,0 +1,57 @@ +// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// See License.txt for license information. + +package api + +import ( + l4g "code.google.com/p/log4go" + "github.com/mattermost/platform/model" + "github.com/mattermost/platform/utils" +) + +// +// 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) { + post.Hashtags, _ = model.ParseHashtags(post.Message) + + if result := <-Srv.Store.Post().Save(post); result.Err != nil { + l4g.Debug("Error saving post. user=" + post.UserId + ", message=" + post.Message) + } +} + +func ImportUser(user *model.User) *model.User { + user.MakeNonNil() + if len(user.Props["theme"]) == 0 { + user.AddProp("theme", utils.Cfg.TeamSettings.DefaultThemeColor) + } + + if result := <-Srv.Store.User().Save(user); result.Err != nil { + l4g.Error("Error saving user. err=%v", result.Err) + return nil + } else { + ruser := result.Data.(*model.User) + + if err := JoinDefaultChannels(ruser, ""); err != nil { + l4g.Error("Encountered an issue joining default channels user_id=%s, team_id=%s, err=%v", ruser.Id, ruser.TeamId, err) + } + + if cresult := <-Srv.Store.User().VerifyEmail(ruser.Id); cresult.Err != nil { + l4g.Error("Failed to set email verified err=%v", cresult.Err) + } + + return ruser + } +} + +func ImportChannel(channel *model.Channel) *model.Channel { + if result := <-Srv.Store.Channel().Save(channel); result.Err != nil { + return nil + } else { + sc := result.Data.(*model.Channel) + + return sc + } +} |