From 1c3e764d572fdb0bc2a371028126a66b376e390e Mon Sep 17 00:00:00 2001 From: Wim Date: Sat, 20 Apr 2019 23:06:06 +0200 Subject: Use paging in initUser and UpdateUsers (mattermost) --- matterclient/users.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'matterclient/users.go') diff --git a/matterclient/users.go b/matterclient/users.go index 11f22aa0..cf13e0df 100644 --- a/matterclient/users.go +++ b/matterclient/users.go @@ -2,6 +2,7 @@ package matterclient import ( "errors" + "time" "github.com/mattermost/mattermost-server/model" ) @@ -99,15 +100,25 @@ func (m *MMClient) GetUsers() map[string]*model.User { } func (m *MMClient) UpdateUsers() error { - mmusers, resp := m.Client.GetUsers(0, 50000, "") + idx := 0 + max := 200 + mmusers, resp := m.Client.GetUsers(idx, max, "") if resp.Error != nil { return errors.New(resp.Error.DetailedError) } - m.Lock() - for _, user := range mmusers { - m.Users[user.Id] = user + for len(mmusers) > 0 { + m.Lock() + for _, user := range mmusers { + m.Users[user.Id] = user + } + m.Unlock() + mmusers, resp = m.Client.GetUsers(idx, max, "") + time.Sleep(time.Millisecond * 300) + if resp.Error != nil { + return errors.New(resp.Error.DetailedError) + } + idx++ } - m.Unlock() return nil } -- cgit v1.2.3