summaryrefslogtreecommitdiffstats
path: root/store/sqlstore/team_store.go
diff options
context:
space:
mode:
Diffstat (limited to 'store/sqlstore/team_store.go')
-rw-r--r--store/sqlstore/team_store.go56
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
+ })
+}