-
Notifications
You must be signed in to change notification settings - Fork 220
Expand file tree
/
Copy pathMuteMembers.java
More file actions
126 lines (110 loc) · 5.05 KB
/
Copy pathMuteMembers.java
File metadata and controls
126 lines (110 loc) · 5.05 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
package io.rong.methods.group.mute;
import io.rong.RongCloud;
import io.rong.models.Result;
import io.rong.models.CheckMethod;
import io.rong.models.group.GroupMember;
import io.rong.models.group.GroupModel;
import io.rong.models.response.GroupMuteMembersListResult;
import io.rong.models.response.ListGagGroupUserResult;
import io.rong.models.response.ResponseResult;
import io.rong.util.CommonUtil;
import io.rong.util.GsonUtil;
import io.rong.util.HttpUtil;
import java.net.HttpURLConnection;
import java.net.URLEncoder;
/**
* Group member mute service
*
* */
public class MuteMembers {
private static final String UTF8 = "UTF-8";
private static final String PATH = "group/mute/members";
private String appKey;
private String appSecret;
private RongCloud rongCloud;
public RongCloud getRongCloud() {
return rongCloud;
}
public void setRongCloud(RongCloud rongCloud) {
this.rongCloud = rongCloud;
}
public MuteMembers(String appKey, String appSecret, RongCloud rongCloud) {
this.appKey = appKey;
this.appSecret = appSecret;
this.rongCloud = rongCloud;
}
/**
* Mute group members (In the app, if you don't want a user to speak in the group, you can mute the user in the group. Muted users can receive and view group messages but cannot send messages.)
*
* @param group: Group information. id, munite, memberIds (required)
*
* @return Result
**/
public Result add(GroupModel group) throws Exception {
String message = CommonUtil.checkFiled(group,PATH,CheckMethod.ADD);
if(null != message){
return (ResponseResult)GsonUtil.fromJson(message,ResponseResult.class);
}
StringBuilder sb = new StringBuilder();
GroupMember[] members = group.getMembers();
for(GroupMember member : members){
sb.append("&userId=").append(URLEncoder.encode(member.getId(), UTF8));
}
sb.append("&groupId=").append(URLEncoder.encode(group.getId(), UTF8));
sb.append("&minute=").append(URLEncoder.encode(group.getMinute().toString(), UTF8));
String body = sb.toString();
if (body.indexOf("&") == 0) {
body = body.substring(1, body.length());
}
HttpURLConnection conn = HttpUtil.CreatePostHttpConnection(rongCloud.getConfig(), appKey, appSecret, "/group/user/gag/add.json", "application/x-www-form-urlencoded");
HttpUtil.setBodyParameter(body, conn, rongCloud.getConfig());
return (ResponseResult) GsonUtil.fromJson(CommonUtil.getResponseByCode(PATH,CheckMethod.ADD,HttpUtil.returnResult(conn, rongCloud.getConfig())), ResponseResult.class);
}
/**
* Query muted group members
*
* @param groupId: Group ID. (Required)
*
* @return ListGagGroupUserResult
**/
public GroupMuteMembersListResult getList(String groupId) throws Exception {
String message = CommonUtil.checkParam("id",groupId,PATH,CheckMethod.GETLIST);
if(null != message){
return (GroupMuteMembersListResult)GsonUtil.fromJson(message,ListGagGroupUserResult.class);
}
StringBuilder sb = new StringBuilder();
sb.append("&groupId=").append(URLEncoder.encode(groupId, UTF8));
String body = sb.toString();
if (body.indexOf("&") == 0) {
body = body.substring(1, body.length());
}
HttpURLConnection conn = HttpUtil.CreatePostHttpConnection(rongCloud.getConfig(), appKey, appSecret, "/group/user/gag/list.json", "application/x-www-form-urlencoded");
HttpUtil.setBodyParameter(body, conn, rongCloud.getConfig());
return (GroupMuteMembersListResult) GsonUtil.fromJson(CommonUtil.getResponseByCode(PATH,CheckMethod.GETLIST,HttpUtil.returnResult(conn, rongCloud.getConfig())), GroupMuteMembersListResult.class);
}
/**
* Remove muted group members
*
* @param group: Group (Required)
* @return ResponseResult
**/
public Result remove(GroupModel group) throws Exception {
String message = CommonUtil.checkFiled(group,PATH, CheckMethod.REMOVE);
if(null != message){
return (ResponseResult)GsonUtil.fromJson(message,ResponseResult.class);
}
StringBuilder sb = new StringBuilder();
GroupMember[] members = group.getMembers();
for(GroupMember member : members){
sb.append("&userId=").append(URLEncoder.encode(member.getId(), UTF8));
}
sb.append("&groupId=").append(URLEncoder.encode(group.getId(), UTF8));
String body = sb.toString();
if (body.indexOf("&") == 0) {
body = body.substring(1, body.length());
}
HttpURLConnection conn = HttpUtil.CreatePostHttpConnection(rongCloud.getConfig(), appKey, appSecret, "/group/user/gag/rollback.json", "application/x-www-form-urlencoded");
HttpUtil.setBodyParameter(body, conn, rongCloud.getConfig());
return (ResponseResult) GsonUtil.fromJson(CommonUtil.getResponseByCode(PATH,CheckMethod.REMOVE,HttpUtil.returnResult(conn, rongCloud.getConfig())), ResponseResult.class);
}
}