forked from slack-go/slack
-
Notifications
You must be signed in to change notification settings - Fork 0
/
migration.go
40 lines (34 loc) · 1009 Bytes
/
migration.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package slack
import (
"context"
"net/url"
)
type migrationExchangeResponseFull struct {
TeamID string `json:"team_id"`
ToOld bool `json:"to_old"`
EnterpriseID string `json:"enterprise_id"`
UserIDMap map[string]string `json:"user_id_map"`
InvalidUserIDs []string `json:"invalid_user_ids"`
SlackResponse
}
// MigrationExchange for Enterprise Grid workspaces, map local user IDs to global user IDs
func (api *Client) MigrationExchange(ctx context.Context, teamID string, toOld bool, users []string) (map[string]string, error) {
values := url.Values{
"users": users,
}
if teamID != "" {
values.Add("team_id", teamID)
}
if toOld {
values.Add("to_old", "true")
}
response := &migrationExchangeResponseFull{}
err := api.getMethod(ctx, "migration.exchange", api.token, values, response)
if err != nil {
return nil, err
}
if err := response.Err(); err != nil {
return nil, err
}
return response.UserIDMap, nil
}