添加获取单条消息的接口
This commit is contained in:
+56
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* 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.InputMessageUid;
|
||||
import cn.wildfirechat.pojos.OutputMessageData;
|
||||
import cn.wildfirechat.pojos.RecallMessageData;
|
||||
import cn.wildfirechat.proto.WFCMessage;
|
||||
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.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import io.netty.handler.codec.http.FullHttpRequest;
|
||||
import io.netty.util.internal.StringUtil;
|
||||
import win.liyufan.im.IMTopic;
|
||||
|
||||
@Route(APIPath.Msg_GetOne)
|
||||
@HttpMethod("POST")
|
||||
public class GetMessageAction extends AdminAction {
|
||||
|
||||
@Override
|
||||
public boolean isTransactionAction() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean action(Request request, Response response) {
|
||||
if (request.getNettyRequest() instanceof FullHttpRequest) {
|
||||
InputMessageUid inputMessageUid = getRequestBody(request.getNettyRequest(), InputMessageUid.class);
|
||||
if (inputMessageUid != null && inputMessageUid.messageUid > 0) {
|
||||
RestResult result;
|
||||
WFCMessage.Message msg = messagesStore.getMessage(inputMessageUid.messageUid);
|
||||
if(msg == null) {
|
||||
result = RestResult.resultOf(ErrorCode.ERROR_CODE_NOT_EXIST);
|
||||
} else {
|
||||
result = RestResult.ok(OutputMessageData.fromProtoMessage(msg));
|
||||
}
|
||||
setResponseContent(result, response);
|
||||
} else {
|
||||
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -50,6 +50,7 @@ public interface APIPath {
|
||||
String Msg_Recall = "/admin/message/recall";
|
||||
String Msg_Delete = "/admin/message/delete";
|
||||
String Msg_Update = "/admin/message/update";
|
||||
String Msg_GetOne = "/admin/message/get_one";
|
||||
String Msg_Broadcast = "/admin/message/broadcast";
|
||||
String Msg_Multicast = "/admin/message/multicast";
|
||||
String Msg_RecallBroadCast = "/admin/message/recall_broadcast";
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package cn.wildfirechat.pojos;
|
||||
|
||||
public class InputMessageUid {
|
||||
public long messageUid;
|
||||
|
||||
public InputMessageUid() {
|
||||
}
|
||||
|
||||
public InputMessageUid(long messageUid) {
|
||||
this.messageUid = messageUid;
|
||||
}
|
||||
}
|
||||
@@ -34,8 +34,8 @@ public class Main {
|
||||
testAdmin();
|
||||
|
||||
//Robot和Channel都是使用的80端口,第三方可以创建或者为第三方创建,第三方可以使用robot或者channel与IM系统进行对接。
|
||||
testRobot();
|
||||
testChannel();
|
||||
// testRobot();
|
||||
// testChannel();
|
||||
}
|
||||
|
||||
|
||||
@@ -43,19 +43,19 @@ public class Main {
|
||||
//初始化服务API
|
||||
AdminConfig.initAdmin(AdminUrl, AdminSecret);
|
||||
|
||||
testUser();
|
||||
testUserRelation();
|
||||
testGroup();
|
||||
testChatroom();
|
||||
// testUser();
|
||||
// testUserRelation();
|
||||
// testGroup();
|
||||
// testChatroom();
|
||||
testMessage();
|
||||
testGeneralApi();
|
||||
testSensitiveApi();
|
||||
if (commercialServer) {
|
||||
testDevice();
|
||||
}
|
||||
if(advanceVoip) {
|
||||
testConference();
|
||||
}
|
||||
// testGeneralApi();
|
||||
// testSensitiveApi();
|
||||
// if (commercialServer) {
|
||||
// testDevice();
|
||||
// }
|
||||
// if(advanceVoip) {
|
||||
// testConference();
|
||||
// }
|
||||
|
||||
System.out.println("Congratulation, all admin test case passed!!!!!!!");
|
||||
}
|
||||
@@ -667,6 +667,13 @@ public class Main {
|
||||
System.exit(-1);
|
||||
}
|
||||
|
||||
IMResult<OutputMessageData> outputMessageDataIMResult = MessageAdmin.getMessage(resultSendMessage.result.getMessageUid());
|
||||
if(outputMessageDataIMResult != null && outputMessageDataIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS && outputMessageDataIMResult.getResult().getMessageId() == resultSendMessage.getResult().getMessageUid()) {
|
||||
System.out.println("get message success");
|
||||
} else {
|
||||
System.out.println("get message failure");
|
||||
System.exit(-1);
|
||||
}
|
||||
|
||||
IMResult<Void> voidIMResult = MessageAdmin.recallMessage("user1", resultSendMessage.getResult().getMessageUid());
|
||||
if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
|
||||
|
||||
@@ -48,7 +48,17 @@ public class MessageAdmin {
|
||||
return AdminHttpUtils.httpJsonPost(path, updateMessageContentData, Void.class);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取单条消息。如果想要更多消息的读取,可以直接读取IM服务的数据库。
|
||||
* @param messageUid
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static IMResult<OutputMessageData> getMessage(long messageUid) throws Exception {
|
||||
String path = APIPath.Msg_GetOne;
|
||||
InputMessageUid inputMessageUid = new InputMessageUid(messageUid);
|
||||
return AdminHttpUtils.httpJsonPost(path, inputMessageUid, OutputMessageData.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 撤回群发或者广播的消息
|
||||
|
||||
Reference in New Issue
Block a user