-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathchannel_batch_updater.go
More file actions
127 lines (112 loc) · 4.75 KB
/
channel_batch_updater.go
File metadata and controls
127 lines (112 loc) · 4.75 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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package stream_chat
import (
"context"
)
// ChannelBatchUpdater provides convenience methods for batch channel operations.
type ChannelBatchUpdater struct {
client *Client
}
// ChannelBatchMemberRequest represents a member in batch operations.
type ChannelBatchMemberRequest struct {
UserID string `json:"user_id"`
ChannelRole string `json:"channel_role,omitempty"`
}
// AddMembers adds members to channels matching the filter.
func (u *ChannelBatchUpdater) AddMembers(ctx context.Context, filter ChannelsBatchFilters, members []ChannelBatchMemberRequest) (*AsyncTaskResponse, error) {
options := &ChannelsBatchOptions{
Operation: BatchUpdateOperationAddMembers,
Filter: filter,
Members: members,
}
return u.client.UpdateChannelsBatch(ctx, options)
}
// RemoveMembers removes members from channels matching the filter.
func (u *ChannelBatchUpdater) RemoveMembers(ctx context.Context, filter ChannelsBatchFilters, members []ChannelBatchMemberRequest) (*AsyncTaskResponse, error) {
options := &ChannelsBatchOptions{
Operation: BatchUpdateOperationRemoveMembers,
Filter: filter,
Members: members,
}
return u.client.UpdateChannelsBatch(ctx, options)
}
// InviteMembers invites members to channels matching the filter.
func (u *ChannelBatchUpdater) InviteMembers(ctx context.Context, filter ChannelsBatchFilters, members []ChannelBatchMemberRequest) (*AsyncTaskResponse, error) {
options := &ChannelsBatchOptions{
Operation: BatchUpdateOperationInviteMembers,
Filter: filter,
Members: members,
}
return u.client.UpdateChannelsBatch(ctx, options)
}
// AddModerators adds moderators to channels matching the filter.
func (u *ChannelBatchUpdater) AddModerators(ctx context.Context, filter ChannelsBatchFilters, members []ChannelBatchMemberRequest) (*AsyncTaskResponse, error) {
options := &ChannelsBatchOptions{
Operation: BatchUpdateOperationAddModerators,
Filter: filter,
Members: members,
}
return u.client.UpdateChannelsBatch(ctx, options)
}
// DemoteModerators removes moderator role from members in channels matching the filter.
func (u *ChannelBatchUpdater) DemoteModerators(ctx context.Context, filter ChannelsBatchFilters, members []ChannelBatchMemberRequest) (*AsyncTaskResponse, error) {
options := &ChannelsBatchOptions{
Operation: BatchUpdateOperationDemoteModerators,
Filter: filter,
Members: members,
}
return u.client.UpdateChannelsBatch(ctx, options)
}
// AssignRoles assigns roles to members in channels matching the filter.
func (u *ChannelBatchUpdater) AssignRoles(ctx context.Context, filter ChannelsBatchFilters, members []ChannelBatchMemberRequest) (*AsyncTaskResponse, error) {
options := &ChannelsBatchOptions{
Operation: BatchUpdateOperationAssignRoles,
Filter: filter,
Members: members,
}
return u.client.UpdateChannelsBatch(ctx, options)
}
// Hide hides channels matching the filter for the specified members.
func (u *ChannelBatchUpdater) Hide(ctx context.Context, filter ChannelsBatchFilters, members []ChannelBatchMemberRequest) (*AsyncTaskResponse, error) {
options := &ChannelsBatchOptions{
Operation: BatchUpdateOperationHide,
Filter: filter,
Members: members,
}
return u.client.UpdateChannelsBatch(ctx, options)
}
// Show shows channels matching the filter for the specified members.
func (u *ChannelBatchUpdater) Show(ctx context.Context, filter ChannelsBatchFilters, members []ChannelBatchMemberRequest) (*AsyncTaskResponse, error) {
options := &ChannelsBatchOptions{
Operation: BatchUpdateOperationShow,
Filter: filter,
Members: members,
}
return u.client.UpdateChannelsBatch(ctx, options)
}
// Archive archives channels matching the filter for the specified members.
func (u *ChannelBatchUpdater) Archive(ctx context.Context, filter ChannelsBatchFilters, members []ChannelBatchMemberRequest) (*AsyncTaskResponse, error) {
options := &ChannelsBatchOptions{
Operation: BatchUpdateOperationArchive,
Filter: filter,
Members: members,
}
return u.client.UpdateChannelsBatch(ctx, options)
}
// Unarchive unarchives channels matching the filter for the specified members.
func (u *ChannelBatchUpdater) Unarchive(ctx context.Context, filter ChannelsBatchFilters, members []ChannelBatchMemberRequest) (*AsyncTaskResponse, error) {
options := &ChannelsBatchOptions{
Operation: BatchUpdateOperationUnarchive,
Filter: filter,
Members: members,
}
return u.client.UpdateChannelsBatch(ctx, options)
}
// UpdateData updates data on channels matching the filter.
func (u *ChannelBatchUpdater) UpdateData(ctx context.Context, filter ChannelsBatchFilters, data *ChannelDataUpdate) (*AsyncTaskResponse, error) {
options := &ChannelsBatchOptions{
Operation: BatchUpdateOperationUpdateData,
Filter: filter,
Data: data,
}
return u.client.UpdateChannelsBatch(ctx, options)
}