-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Expand file tree
/
Copy pathadmin_conversations_ekm.go
More file actions
101 lines (84 loc) · 4 KB
/
admin_conversations_ekm.go
File metadata and controls
101 lines (84 loc) · 4 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package slack
import (
"context"
"net/url"
"strconv"
"strings"
)
type adminConversationsEKMListOriginalConnectedChannelInfoParams struct {
channelIDs []string
teamIDs []string
cursor string
limit int
}
// AdminConversationsEKMListOriginalConnectedChannelInfoOption is an option for
// AdminConversationsEKMListOriginalConnectedChannelInfo.
type AdminConversationsEKMListOriginalConnectedChannelInfoOption func(*adminConversationsEKMListOriginalConnectedChannelInfoParams)
// AdminConversationsEKMListOriginalConnectedChannelInfoOptionChannelIDs filters results to specific channels.
func AdminConversationsEKMListOriginalConnectedChannelInfoOptionChannelIDs(channelIDs []string) AdminConversationsEKMListOriginalConnectedChannelInfoOption {
return func(params *adminConversationsEKMListOriginalConnectedChannelInfoParams) {
params.channelIDs = channelIDs
}
}
// AdminConversationsEKMListOriginalConnectedChannelInfoOptionTeamIDs filters results to specific teams.
func AdminConversationsEKMListOriginalConnectedChannelInfoOptionTeamIDs(teamIDs []string) AdminConversationsEKMListOriginalConnectedChannelInfoOption {
return func(params *adminConversationsEKMListOriginalConnectedChannelInfoParams) {
params.teamIDs = teamIDs
}
}
// AdminConversationsEKMListOriginalConnectedChannelInfoOptionCursor sets the cursor for pagination.
func AdminConversationsEKMListOriginalConnectedChannelInfoOptionCursor(cursor string) AdminConversationsEKMListOriginalConnectedChannelInfoOption {
return func(params *adminConversationsEKMListOriginalConnectedChannelInfoParams) {
params.cursor = cursor
}
}
// AdminConversationsEKMListOriginalConnectedChannelInfoOptionLimit sets the maximum number of results to return.
func AdminConversationsEKMListOriginalConnectedChannelInfoOptionLimit(limit int) AdminConversationsEKMListOriginalConnectedChannelInfoOption {
return func(params *adminConversationsEKMListOriginalConnectedChannelInfoParams) {
params.limit = limit
}
}
// AdminConversationsEKMOriginalConnectedChannelInfo represents channel info for EKM response.
type AdminConversationsEKMOriginalConnectedChannelInfo struct {
ID string `json:"id"`
OriginalConnectedHostID string `json:"original_connected_host_id"`
OriginalConnectedChannelID string `json:"original_connected_channel_id"`
InternalTeamIDs []string `json:"internal_team_ids_count"`
}
// AdminConversationsEKMListOriginalConnectedChannelInfoResponse represents the response from
// admin.conversations.ekm.listOriginalConnectedChannelInfo.
type AdminConversationsEKMListOriginalConnectedChannelInfoResponse struct {
SlackResponse
Channels []AdminConversationsEKMOriginalConnectedChannelInfo `json:"channels"`
}
// AdminConversationsEKMListOriginalConnectedChannelInfo lists the original connected channel
// information for Slack Connect channels.
// For more information see the admin.conversations.ekm.listOriginalConnectedChannelInfo docs:
// https://api.slack.com/methods/admin.conversations.ekm.listOriginalConnectedChannelInfo
func (api *Client) AdminConversationsEKMListOriginalConnectedChannelInfo(ctx context.Context, options ...AdminConversationsEKMListOriginalConnectedChannelInfoOption) (*AdminConversationsEKMListOriginalConnectedChannelInfoResponse, error) {
params := adminConversationsEKMListOriginalConnectedChannelInfoParams{}
for _, opt := range options {
opt(¶ms)
}
values := url.Values{
"token": {api.token},
}
if len(params.channelIDs) > 0 {
values.Add("channel_ids", strings.Join(params.channelIDs, ","))
}
if len(params.teamIDs) > 0 {
values.Add("team_ids", strings.Join(params.teamIDs, ","))
}
if params.cursor != "" {
values.Add("cursor", params.cursor)
}
if params.limit > 0 {
values.Add("limit", strconv.Itoa(params.limit))
}
response := &AdminConversationsEKMListOriginalConnectedChannelInfoResponse{}
err := api.postMethod(ctx, "admin.conversations.ekm.listOriginalConnectedChannelInfo", values, response)
if err != nil {
return nil, err
}
return response, response.Err()
}