-
Notifications
You must be signed in to change notification settings - Fork 220
Expand file tree
/
Copy pathBlock.java
More file actions
133 lines (111 loc) · 4.72 KB
/
Copy pathBlock.java
File metadata and controls
133 lines (111 loc) · 4.72 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
127
128
129
130
131
132
133
package io.rong.methods.user.block;
import io.rong.RongCloud;
import io.rong.models.response.BlockUserResult;
import io.rong.models.Result;
import io.rong.models.CheckMethod;
import io.rong.models.response.ResponseResult;
import io.rong.models.user.UserModel;
import io.rong.util.CommonUtil;
import io.rong.util.GsonUtil;
import io.rong.util.HttpUtil;
import java.net.HttpURLConnection;
import java.net.URLEncoder;
/**
* User Block Service
*/
public class Block {
private static final String UTF8 = "UTF-8";
private static final String PATH = "user/block";
private String appKey;
private String appSecret;
private RongCloud rongCloud;
public RongCloud getRongCloud() {
return rongCloud;
}
public void setRongCloud(RongCloud rongCloud) {
this.rongCloud = rongCloud;
}
public Block(String appKey, String appSecret, RongCloud rongCloud) {
this.appKey = appKey;
this.appSecret = appSecret;
this.rongCloud = rongCloud;
}
/**
* Block a user
*
* @param user : User information including Id and minute (required)
* @return Result
**/
public Result add(UserModel user) throws Exception {
String message = CommonUtil.checkFiled(user, PATH, CheckMethod.ADD);
if (null != message) {
return (ResponseResult) GsonUtil.fromJson(message, ResponseResult.class);
}
StringBuilder sb = new StringBuilder();
sb.append("&userId=").append(URLEncoder.encode(user.getId().toString(), UTF8));
sb.append("&minute=").append(URLEncoder.encode(user.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,
"/user/block.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);
}
/**
* Unban a user
*
* @param userId: User ID (required)
* @return ResponseResult
**/
public ResponseResult remove(String userId) throws Exception {
// Parameter validation
String message = CommonUtil.checkParam("id", userId, PATH, CheckMethod.REMOVE);
if (null != message) {
return (ResponseResult) GsonUtil.fromJson(message, ResponseResult.class);
}
StringBuilder sb = new StringBuilder();
sb.append("&userId=").append(URLEncoder.encode(userId.toString(), UTF8));
String body = sb.toString();
if (body.indexOf("&") == 0) {
body = body.substring(1, body.length());
}
HttpURLConnection conn = HttpUtil.CreatePostHttpConnection(rongCloud.getConfig(), appKey, appSecret,
"/user/unblock.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);
}
/**
* Get the list of banned users
*
* @return QueryBlockUserResult
**/
public Result getList() throws Exception {
return getList(null, null);
}
/**
* Retrieves the list of banned users with pagination.
*
* @param size: The number of banned users per page when paginating. Defaults to 50 if not provided. (Optional)
* @param page: The current page number when paginating the list of banned users. (Optional)
* @return QueryBlockUserResult
**/
public Result getList(Integer size, Integer page) throws Exception {
StringBuilder sb = new StringBuilder();
if (size != null) {
sb.append("size=").append(URLEncoder.encode(size.toString(), UTF8));
}
if (page != null) {
sb.append("&page=").append(URLEncoder.encode(page.toString(), UTF8));
}
String body = sb.toString();
if (body.indexOf("&") == 0) {
body = body.substring(1, body.length());
}
HttpURLConnection conn = HttpUtil.CreatePostHttpConnection(rongCloud.getConfig(), appKey, appSecret,
"/user/block/query.json", "application/x-www-form-urlencoded");
HttpUtil.setBodyParameter(body, conn, rongCloud.getConfig());
return (BlockUserResult) GsonUtil.fromJson(CommonUtil.getResponseByCode(PATH, CheckMethod.GETLIST, HttpUtil.returnResult(conn, rongCloud.getConfig())), BlockUserResult.class);
}
}