
io.rong.methods.group.ban.whitelist.User Maven / Gradle / Ivy
package io.rong.methods.group.ban.whitelist;
import io.rong.RongCloud;
import io.rong.models.CheckMethod;
import io.rong.models.Result;
import io.rong.models.group.GroupMember;
import io.rong.models.group.GroupModel;
import io.rong.models.response.GroupBanWhitelistResult;
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;
/**
* 群组禁言用户白名单服务
* 在群组被禁言状态下,如果需要某些用户可以发言时,可将此用户加入到群组禁言用户白名单中。群禁言用户白名单,只有群组被设置为全部禁言时才会生效
* docs : https://www.rongcloud.cn/docs/server.html#group_ban_whitelist
* @author rc
*
* */
public class User {
private static final String UTF8 = "UTF-8";
private static final String PATH = "group/mute/whitelist";
private String appKey;
private String appSecret;
private RongCloud rongCloud;
public RongCloud getRongCloud() {
return rongCloud;
}
public void setRongCloud(RongCloud rongCloud) {
this.rongCloud = rongCloud;
}
public User(String appKey, String appSecret, RongCloud rongCloud) {
this.appKey = appKey;
this.appSecret = appSecret;
this.rongCloud = rongCloud;
}
/**
* 添加禁言白名单用户方法
*
* @param group:群组信息。id , memberIds(必传)
*
* @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));
String body = sb.toString();
if (body.indexOf("&") == 0) {
body = body.substring(1, body.length());
}
HttpURLConnection conn = HttpUtil.CreatePostHttpConnection(rongCloud.getApiHostType(), appKey, appSecret, "/group/user/ban/whitelist/add.json", "application/x-www-form-urlencoded");
HttpUtil.setBodyParameter(body, conn);
return (ResponseResult) GsonUtil.fromJson(CommonUtil.getResponseByCode(PATH,CheckMethod.ADD,HttpUtil.returnResult(conn)), ResponseResult.class);
}
/**
* 查询禁言白名单用户列表方法
*
* @param groupId:群组Id。(必传)
*
* @return ListGagGroupUserResult
**/
public Result getList(String groupId) throws Exception {
String message = CommonUtil.checkParam("id",groupId,PATH,CheckMethod.GETLIST);
if(null != message){
return (Result)GsonUtil.fromJson(message,GroupBanWhitelistResult.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.getApiHostType(), appKey, appSecret, "/group/user/ban/whitelist/query.json", "application/x-www-form-urlencoded");
HttpUtil.setBodyParameter(body, conn);
return (GroupBanWhitelistResult) GsonUtil.fromJson(CommonUtil.getResponseByCode(PATH,CheckMethod.GETLIST,HttpUtil.returnResult(conn)), GroupBanWhitelistResult.class);
}
/**
* 移除禁言白名单用户方法
*
* @param group:群组(必传)
*
* @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().toString(), UTF8));
}
sb.append("&groupId=").append(URLEncoder.encode(group.getId().toString(), UTF8));
String body = sb.toString();
if (body.indexOf("&") == 0) {
body = body.substring(1, body.length());
}
HttpURLConnection conn = HttpUtil.CreatePostHttpConnection(rongCloud.getApiHostType(), appKey, appSecret, "/group/user/ban/whitelist/rollback.json", "application/x-www-form-urlencoded");
HttpUtil.setBodyParameter(body, conn);
return (ResponseResult) GsonUtil.fromJson(CommonUtil.getResponseByCode(PATH,CheckMethod.REMOVE,HttpUtil.returnResult(conn)), ResponseResult.class);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy