TP-0000 | participant limit fix (#55)

* TP-0000 | setting limit of 10 in get users api

* TP-0000 | fetching all users by splitting them
This commit is contained in:
Shubham Kirve
2023-05-04 21:41:01 +05:30
committed by GitHub Enterprise
parent 0e129091a0
commit 75934d92bc

View File

@@ -12,13 +12,18 @@ func (c *Client) GetUsersInfo(users ...string) (*[]slack.User, error) {
if len(users) == 0 {
return &[]slack.User{}, nil
}
userInfo, err := c.socketModeClient.GetUsersInfo(users...)
if err != nil {
c.logger.Error("get users info failed", zap.Any("users", users), zap.Error(err))
return nil, fmt.Errorf("get users info failed. err: %v", err)
var usersInfo []slack.User
splittedUsersList := splitUsers(users, 30)
for usersList := range splittedUsersList {
usersInfoResponse, err := c.socketModeClient.GetUsersInfo(splittedUsersList[usersList]...)
if err != nil {
c.logger.Error("get users info failed", zap.Any("users", splittedUsersList[usersList]), zap.Error(err))
return nil, fmt.Errorf("get users info failed. err: %v", err)
}
usersInfo = append(usersInfo, *usersInfoResponse...)
}
return userInfo, nil
return &usersInfo, nil
}
func (c *Client) GetUsersInConversation(channelId string) ([]string, error) {
@@ -71,3 +76,15 @@ func (c *Client) GetUserEmailsOrNameByIds(userIds ...string) (map[string]string,
})
return userIdAndIdentityMapping, nil
}
func splitUsers(users []string, chunkSize int) [][]string {
var result [][]string
for i := 0; i < len(users); i += chunkSize {
end := i + chunkSize
if end > len(users) {
end = len(users)
}
result = append(result, users[i:end])
}
return result
}