diff options
author | George Goldberg <george@gberg.me> | 2018-09-17 15:51:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-17 15:51:26 +0100 |
commit | ab99f0656fabed8a62a8c6340be7d538cc7bf8d9 (patch) | |
tree | bb68ee1d0c743be23bba470f5d81ef11dc134182 /store/sqlstore/team_store.go | |
parent | 5786b0d6d57b90bbb0c262235dd9d19b497b5fae (diff) | |
download | chat-ab99f0656fabed8a62a8c6340be7d538cc7bf8d9.tar.gz chat-ab99f0656fabed8a62a8c6340be7d538cc7bf8d9.tar.bz2 chat-ab99f0656fabed8a62a8c6340be7d538cc7bf8d9.zip |
MM-11781: Basic Data Export Command Line. (#9296)
* MM-11781: Basic Data Export Command Line.
* ChannelStore new unit tests.
* TeamStore new unit tests.
* Unit test for new UserStore function.
* Unit tests for post store new methods.
* Review fixes.
* Fix duplicate command name.
Diffstat (limited to 'store/sqlstore/team_store.go')
-rw-r--r-- | store/sqlstore/team_store.go | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/store/sqlstore/team_store.go b/store/sqlstore/team_store.go index 3ea6feced..b48242294 100644 --- a/store/sqlstore/team_store.go +++ b/store/sqlstore/team_store.go @@ -924,3 +924,59 @@ func (s SqlTeamStore) AnalyticsGetTeamCountForScheme(schemeId string) store.Stor result.Data = count }) } + +func (s SqlTeamStore) GetAllForExportAfter(limit int, afterId string) store.StoreChannel { + return store.Do(func(result *store.StoreResult) { + var data []*model.TeamForExport + if _, err := s.GetReplica().Select(&data, ` + SELECT + Teams.*, + Schemes.Name as SchemeName + FROM + Teams + LEFT JOIN + Schemes ON Teams.SchemeId = Schemes.Id + WHERE + Teams.Id > :AfterId + ORDER BY + Id + LIMIT + :Limit`, + map[string]interface{}{"AfterId": afterId, "Limit": limit}); err != nil { + result.Err = model.NewAppError("SqlTeamStore.GetAllTeams", "store.sql_team.get_all.app_error", nil, err.Error(), http.StatusInternalServerError) + return + } + + for _, team := range data { + if len(team.InviteId) == 0 { + team.InviteId = team.Id + } + } + + result.Data = data + }) +} + +func (s SqlTeamStore) GetTeamMembersForExport(userId string) store.StoreChannel { + return store.Do(func(result *store.StoreResult) { + var members []*model.TeamMemberForExport + _, err := s.GetReplica().Select(&members, ` + SELECT + TeamMembers.*, + Teams.Name as TeamName + FROM + TeamMembers + INNER JOIN + Teams ON TeamMembers.TeamId = Teams.Id + WHERE + TeamMembers.UserId = :UserId + AND Teams.DeleteAt = 0`, + map[string]interface{}{"UserId": userId}) + if err != nil { + result.Err = model.NewAppError("SqlTeamStore.GetTeamMembersForExport", "store.sql_team.get_members.app_error", nil, "userId="+userId+" "+err.Error(), http.StatusInternalServerError) + return + } + + result.Data = members + }) +} |