添加获取聊天室成员API接口

This commit is contained in:
heavyrain.lee
2020-03-09 16:24:00 +08:00
parent 9cd3fe6b8c
commit 4533c2aac6
4 changed files with 90 additions and 0 deletions
@@ -0,0 +1,74 @@
/*
* This file is part of the Wildfire Chat package.
* (c) Heavyrain2012 <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
package com.xiaoleilu.loServer.action.admin;
import cn.wildfirechat.common.APIPath;
import cn.wildfirechat.common.ErrorCode;
import cn.wildfirechat.pojos.InputGetChatroomInfo;
import cn.wildfirechat.pojos.OutputGetChatroomInfo;
import cn.wildfirechat.pojos.OutputStringList;
import cn.wildfirechat.proto.WFCMessage;
import com.google.gson.Gson;
import com.xiaoleilu.loServer.RestResult;
import com.xiaoleilu.loServer.annotation.HttpMethod;
import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import com.xiaoleilu.loServer.handler.Response;
import io.moquette.persistence.UserClientEntry;
import io.netty.handler.codec.http.FullHttpRequest;
import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.util.internal.StringUtil;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@Route(APIPath.Chatroom_GetMembers)
@HttpMethod("POST")
public class GetChatroomMembersAction extends AdminAction {
@Override
public boolean isTransactionAction() {
return true;
}
@Override
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetChatroomInfo getChatroomInfo = getRequestBody(request.getNettyRequest(), InputGetChatroomInfo.class);
String chatroomid = getChatroomInfo.getChatroomId();
if (!StringUtil.isNullOrEmpty(chatroomid)) {
Collection<UserClientEntry> members = messagesStore.getChatroomMembers(chatroomid);
List<String> list = new ArrayList<>();
for (UserClientEntry entry : members) {
list.add(entry.userId);
}
RestResult result;
if (!list.isEmpty()) {
result = RestResult.ok(new OutputStringList(list));
} else {
result = RestResult.resultOf(ErrorCode.ERROR_CODE_NOT_EXIST);
}
response.setStatus(HttpResponseStatus.OK);
response.setContent(new Gson().toJson(result));
} else {
response.setStatus(HttpResponseStatus.OK);
RestResult result = RestResult.resultOf(ErrorCode.INVALID_PARAMETER);
response.setContent(new Gson().toJson(result));
}
}
return true;
}
}
@@ -4,6 +4,7 @@ public interface APIPath {
String Create_Chatroom = "/admin/chatroom/create";
String Chatroom_Destroy = "/admin/chatroom/del";
String Chatroom_Info = "/admin/chatroom/info";
String Chatroom_GetMembers = "/admin/chatroom/members";
String Sensitive_Add = "/admin/sensitive/add";
@@ -30,5 +30,13 @@ public class ChatroomAdmin {
InputGetChatroomInfo input = new InputGetChatroomInfo(chatroomId);
return AdminHttpUtils.httpJsonPost(path, input, OutputGetChatroomInfo.class);
}
public static IMResult<OutputStringList> getChatroomMembers(String chatroomId) throws Exception {
String path = APIPath.Chatroom_GetMembers;
InputGetChatroomInfo input = new InputGetChatroomInfo(chatroomId);
return AdminHttpUtils.httpJsonPost(path, input, OutputStringList.class);
}
}
@@ -545,6 +545,13 @@ public class Main {
System.exit(-1);
}
IMResult<OutputStringList> memberList = ChatroomAdmin.getChatroomMembers(chatroomId);
if (memberList != null && memberList.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
System.out.println("get chatroom member success");
} else {
System.out.println("get chatroom member failure: " + memberList.getErrorCode().msg);
}
IMResult<Void> voidIMResult = ChatroomAdmin.destroyChatroom(chatroomId);
if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
System.out.println("destroy chatroom done!");