Compare commits

...
12 Commits
Author SHA1 Message Date
imhao183 51bfb788ac version 0.64 -> 0.65 2021-06-04 18:01:53 +08:00
dependabot[bot] 82088db682 Bump httpclient from 4.4.1 to 4.5.13 in /broker
Bumps httpclient from 4.4.1 to 4.5.13.

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents:httpclient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
2021-06-04 17:58:45 +08:00
dependabot[bot] 463e3e766a Bump httpclient from 4.5.3 to 4.5.13 in /sdk
Bumps httpclient from 4.5.3 to 4.5.13.

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents:httpclient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
2021-06-04 17:58:34 +08:00
imhao183 4b00b873c3 同步会议参数 2021-06-04 17:52:37 +08:00
imhao183 0c06e28116 解决server api强制添加好友请求时被限制的问题 2021-06-04 17:42:17 +08:00
imndx 7ea6ea08fd update readme 2021-06-01 15:50:07 +08:00
imhao183 b61d292fb5 同步会议API 2021-06-01 08:45:00 +08:00
imhao183 0aba453a24 添加分段同步好友/好友请求/用户设置的功能 2021-05-24 14:44:40 +08:00
imhao183 10ce88de20 更新版本号 2021-05-24 10:31:20 +08:00
imhao183 b0fe3fd57f 解决短链接响应错乱问题 2021-05-24 10:31:09 +08:00
heavyrain2012 141c8f38d8 解决server api 获取群组信息时缺少内容 2021-05-20 11:02:00 +08:00
imhao183 43b325d2d5 添加配置项,可以为内存文件存储添加远程服务地址 2021-05-19 14:02:49 +08:00
117 changed files with 622 additions and 273 deletions
+13 -12
View File
@@ -2,18 +2,19 @@
野火IM是一套跨平台、核心功能开源的即时通讯解决方案,主要包含以下内容。
| 仓库 | 说明 | 备注 |
| ------------------------------------------------------------ | ------------------------------------------------------- | ---- |
| [android-chat](https://github.com/wildfirechat/android-chat) | 野火IM Android SDK源码和App源码 |可以很方便地进行二次开发,或集成到现有应用当中 |
| [ios-chat](https://github.com/wildfirechat/ios-chat) | 野火IM iOS SDK源码和App源码 |可以很方便地进行二次开发,或集成到现有应用当中 |
| [pc-chat](https://github.com/wildfirechat/pc-chat) | 基于[Electron](https://electronjs.org/)开发的PC平台应用 | |
| [web-chat](https://github.com/wildfirechat/web-chat) | Web平台的Demo, [体验地址](http://web.wildfirechat.net) | |
| [wx-chat](https://github.com/wildfirechat/wx-chat) | 微信小程序平台的Demo | |
| [server](https://github.com/wildfirechat/server) | IM server | |
| [app server](https://github.com/wildfirechat/app_server) | 应用服务端 | |
| [robot_server](https://github.com/wildfirechat/robot_server) | 机器人服务端 | |
| [push_server](https://github.com/wildfirechat/push_server) | 推送服务器 | |
| [docs](https://github.com/wildfirechat/docs) | 野火IM相关文档,包含设计、概念、开发、使用说明 | | | |
| [GitHub仓库地址(主站)](https://github.com/wildfirechat) | [码云仓库地址(镜像)](https://gitee.com/wfchat) | 说明 | 备注 |
| ------------------------------------------------------------ | ----------------------------------------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------- |
| [android-chat](https://github.com/wildfirechat/android-chat) | [android-chat](https://gitee.com/wfchat/android-chat) | 野火IM Android SDK源码和App源码 | 可以很方便地进行二次开发,或集成到现有应用当中 |
| [ios-chat](https://github.com/wildfirechat/ios-chat) | [ios-chat](https://gitee.com/wfchat/ios-chat) | 野火IM iOS SDK源码和App源码 | 可以很方便地进行二次开发,或集成到现有应用当中 |
| [pc-chat](https://github.com/wildfirechat/pc-chat) | [pc-chat](https://gitee.com/wfchat/pc-chat) | 基于[Electron](https://electronjs.org/)开发的PC平台应用 | |
| [web-chat](https://github.com/wildfirechat/web-chat) | [web-chat](https://gitee.com/wfchat/web-chat) | Web平台的Demo, [体验地址](http://web.wildfirechat.cn) | |
| [wx-chat](https://github.com/wildfirechat/wx-chat) | [wx-chat](https://gitee.com/wfchat/wx-chat) | 微信小程序平台的Demo | |
| [server](https://github.com/wildfirechat/server) | [server](https://gitee.com/wfchat/server) | IM server | |
| [app server](https://github.com/wildfirechat/app_server) | [app server](https://gitee.com/wfchat/app_server) | 应用服务端 | |
| [robot_server](https://github.com/wildfirechat/robot_server) | [robot_server](https://gitee.com/wfchat/robot_server) | 机器人服务端 | |
| [push_server](https://github.com/wildfirechat/push_server) | [push_server](https://gitee.com/wfchat/push_server) | 推送服务器 | |
| [docs](https://github.com/wildfirechat/docs) | [docs](https://gitee.com/wfchat/docs) | 野火IM相关文档,包含设计、概念、开发、使用说明,[在线查看](https://docs.wildfirechat.cn/) | | |
# server
本工程为野火IM 社区版IM服务软件。野火IM作为一个通用的即时通讯解决方案,可以集成到各种应用中。请阅读[docs](http://docs.wildfirechat.net)或下载服务器[发布版本](https://github.com/wildfirechat/server/releases)
+9
View File
@@ -135,6 +135,10 @@ group.visible_quit_or_kickoff_notification 0
## 注意,修改本配置不会对已经同步的信息产生影响。
#user.hide_properties 3,4,5
# 好友/好友请求/用户设置 这三类数据同步的最大条目数。之前是客户第一次登录时,会把所有的对应数据一次下载到客户端,但如果有特别多的信息,会导致无法同步到客户端,
# 因此需要分段多次同步,此开关定义了每次同步的数据的条数。此需要客户端支持,客户端SDK在2021.5.25日后支持此功能。如果确认所有客户端都在这个日志之后才可以打开此设置。
#sync.data_part_size 1000
#*********************************************************************
# hazelcase configuration
#*********************************************************************
@@ -183,6 +187,11 @@ qiniu.bucket_favorite_domain http://cdn2.wildfirechat.cn
# local media server configuration
# 本地媒体服务器配置。
local.media.storage.root media
# 如果使用内置文件存储,文件上传后地址默认为 http://server.ip:http_port/fs/5/2021/03/27/08/filename。
# 如果需要使用nginx添加https支持,请打开下面配置,这样客户端得到的文件地址为 https://example.com/media/fs/5/2021/03/27/08/filename。
# 需要nginx把请求从https://example.com/media/fs 转到 http://server.ip:http_port/fs。注意需要带上所有header。
# 尽管内置文件存储可以使用,但是我们还是建议使用专业级别的对象存储服务,社区版可以使用七牛,专业版另外支持阿里云和也是私有对象存储。详情请参考 https://docs.wildfirechat.cn/server/oss.html
# local.media.storage.remote_server_url https://example.com/media
# 是否支持多端登陆,为true时支持任意平台任意多个客户端同时登录;为false时每个平台只支持一个端登录,但不同平台可以同时登录。
server.multi_endpoint false
+2 -2
View File
@@ -5,7 +5,7 @@
<relativePath>../</relativePath>
<artifactId>wildfirechat-parent</artifactId>
<groupId>cn.wildfirechat</groupId>
<version>0.63</version>
<version>0.65</version>
</parent>
<artifactId>moquette-broker</artifactId>
@@ -84,7 +84,7 @@
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
<version>4.5.13</version>
</dependency>
<dependency>
@@ -38,8 +38,6 @@ abstract public class Action {
public static ISessionsStore sessionsStore = null;
public ChannelHandlerContext ctx;
public Response response;
protected class Result {
Object data;
ErrorCode errorCode;
@@ -73,7 +71,7 @@ abstract public class Action {
return ERROR_CODE_SUCCESS;
}
public boolean doAction(Request request) {
public boolean doAction(Request request, Response response) {
ErrorCode errorCode = preAction(request, response);
boolean isSync = true;
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
@@ -89,7 +87,7 @@ abstract public class Action {
// throw e;
// }
// } else {
isSync = action(request);
isSync = action(request, response);
// }
} else {
response.setStatus(HttpResponseStatus.OK);
@@ -107,7 +105,7 @@ abstract public class Action {
public boolean isTransactionAction() {
return false;
}
abstract public boolean action(Request request);
abstract public boolean action(Request request, Response response);
protected <T> T getRequestBody(HttpRequest request, Class<T> cls) {
if (request instanceof FullHttpRequest) {
@@ -121,7 +119,7 @@ abstract public class Action {
return null;
}
protected void setResponseContent(RestResult result) {
protected void setResponseContent(RestResult result, Response response) {
response.setStatus(HttpResponseStatus.OK);
response.setContent(new Gson().toJson(result));
}
@@ -29,7 +29,7 @@ import java.io.IOException;
public class CheckTokenAction extends Action {
private final RateLimiter mLimitCounter = new RateLimiter(10, 1);
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
response.setStatus(HttpResponseStatus.OK);
String userId = request.getParam("userId");
@@ -12,7 +12,7 @@ import io.moquette.spi.IMessagesStore;
*/
public class DefaultIndexAction extends Action{
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
response.setContent("Welcome to LoServer.");
return true;
}
@@ -34,7 +34,7 @@ public class FileAction extends Action {
private static final org.slf4j.Logger Logger = LoggerFactory.getLogger(FileAction.class);
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
response.setHeader("Access-Control-Allow-Origin", "*");
if (false == Request.METHOD_GET.equalsIgnoreCase(request.getMethod())) {
response.sendError(HttpResponseStatus.METHOD_NOT_ALLOWED, "Please use GET method to request file!");
@@ -34,7 +34,7 @@ import java.util.concurrent.Executor;
public class IMAction extends Action {
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
FullHttpRequest fullHttpRequest = (FullHttpRequest)request.getNettyRequest();
@@ -27,7 +27,7 @@ public class NotFoundAction extends Action{
private final static String TEMPLATE_ERROR = "<!DOCTYPE html><html><head><title>LoServer - Error report</title><style>h1,h3 {color:white; background-color: gray;}</style></head><body><h1>HTTP Status {} - {}</h1><hr size=\"1\" noshade=\"noshade\" /><p>{}</p><hr size=\"1\" noshade=\"noshade\" /><h3>LoServer</h3></body></html>";
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
response.sendError(HttpResponseStatus.NOT_FOUND, "404 Not found!");
return true;
}
@@ -36,7 +36,7 @@ public class RouteAction extends Action {
private static final Logger LOG = LoggerFactory.getLogger(RouteAction.class);
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
response.setContentType("application/octet-stream");
@@ -27,7 +27,7 @@ public class UnknownErrorAction extends Action{
private final static String TEMPLATE_ERROR = "<!DOCTYPE html><html><head><title>LoServer - Error report</title><style>h1,h3 {color:white; background-color: gray;}</style></head><body><h1>HTTP Status {} - {}</h1><hr size=\"1\" noshade=\"noshade\" /><p>{}</p><hr size=\"1\" noshade=\"noshade\" /><h3>LoServer</h3></body></html>";
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
return true;
}
@@ -73,7 +73,7 @@ public class UploadFileAction extends Action {
}
@Override
public boolean action(Request r) {
public boolean action(Request r, Response response) {
if (r.getNettyRequest() instanceof FullHttpRequest) {
FullHttpRequest request = (FullHttpRequest) r.getNettyRequest();
@@ -28,7 +28,7 @@ public class VersionAction extends Action {
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
response.setStatus(HttpResponseStatus.OK);
@@ -16,6 +16,7 @@ import com.hazelcast.util.StringUtil;
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;
@@ -31,7 +32,7 @@ public class AddFriendRequestAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputAddFriendRequest input = getRequestBody(request.getNettyRequest(), InputAddFriendRequest.class);
@@ -41,12 +42,12 @@ public class AddFriendRequestAction extends AdminAction {
}
WFCMessage.AddFriendRequest addFriendRequest = WFCMessage.AddFriendRequest.newBuilder().setReason(input.getReason()).setTargetUid(input.getFriendUid()).build();
sendApiMessage(input.getUserId(), IMTopic.AddFriendRequestTopic, addFriendRequest.toByteArray(), result -> {
sendApiMessage(response, input.getUserId(), IMTopic.AddFriendRequestTopic, addFriendRequest.toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
return new Result(errorCode);
}, !input.isForce());
}, input.isForce());
return false;
}
return true;
@@ -16,6 +16,7 @@ import com.xiaoleilu.loServer.annotation.HttpMethod;
import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import cn.wildfirechat.pojos.InputAddGroupMember;
import com.xiaoleilu.loServer.handler.Response;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.handler.codec.http.FullHttpRequest;
@@ -33,11 +34,11 @@ public class AddGroupMemberAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputAddGroupMember inputAddGroupMember = getRequestBody(request.getNettyRequest(), InputAddGroupMember.class);
if (inputAddGroupMember.isValide()) {
sendApiMessage(inputAddGroupMember.getOperator(), IMTopic.AddGroupMemberTopic, inputAddGroupMember.toProtoGroupRequest().toByteArray(), result -> {
sendApiMessage(response, inputAddGroupMember.getOperator(), IMTopic.AddGroupMemberTopic, inputAddGroupMember.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -45,7 +46,7 @@ public class AddGroupMemberAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -92,15 +92,15 @@ abstract public class AdminAction extends Action {
response.setContent(new Gson().toJson(result));
response.send();
}
protected void sendApiMessage(String fromUser, String topic, byte[] message, ApiCallback callback) {
sendApiMessage(fromUser, null, topic, message, callback, false);
protected void sendApiMessage(Response response, String fromUser, String topic, byte[] message, ApiCallback callback) {
sendApiMessage(response, fromUser, null, topic, message, callback, false);
}
protected void sendApiMessage(String fromUser, String topic, byte[] message, ApiCallback callback, boolean noAdmin) {
sendApiMessage(fromUser, null, topic, message, callback, noAdmin);
protected void sendApiMessage(Response response, String fromUser, String topic, byte[] message, ApiCallback callback, boolean noAdmin) {
sendApiMessage(response, fromUser, null, topic, message, callback, noAdmin);
}
protected void sendApiMessage(String fromUser, String clientId, String topic, byte[] message, ApiCallback callback, boolean noAdmin) {
protected void sendApiMessage(Response response, String fromUser, String clientId, String topic, byte[] message, ApiCallback callback, boolean noAdmin) {
ServerAPIHelper.sendRequest(fromUser, clientId, topic, message, new ServerAPIHelper.Callback() {
@Override
public void onSuccess(byte[] result) {
@@ -37,7 +37,7 @@ public class AliasGetAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetAlias input = getRequestBody(request.getNettyRequest(), InputGetAlias.class);
List<FriendData> dataList = messagesStore.getFriendList(input.getOperator(), null, 0);
@@ -51,7 +51,7 @@ public class AliasGetAction extends AdminAction {
}
}
setResponseContent(RestResult.ok(out));
setResponseContent(RestResult.ok(out), response);
}
return true;
}
@@ -36,11 +36,11 @@ public class AliasPutAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputUpdateAlias input = getRequestBody(request.getNettyRequest(), InputUpdateAlias.class);
ErrorCode errorCode = messagesStore.setFriendAliasRequest(input.getOperator(), input.getTargetId(), input.getAlias(), new long[1]);
setResponseContent(RestResult.resultOf(errorCode));
setResponseContent(RestResult.resultOf(errorCode), response);
}
return true;
}
@@ -17,6 +17,7 @@ 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;
@@ -34,7 +35,7 @@ public class BlacklistAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputBlacklistRequest inputData = getRequestBody(request.getNettyRequest(), InputBlacklistRequest.class);
if (inputData != null
@@ -42,7 +43,7 @@ public class BlacklistAction extends AdminAction {
&& !StringUtil.isNullOrEmpty(inputData.getTargetUid())
) {
WFCMessage.BlackUserRequest friendRequest = WFCMessage.BlackUserRequest.newBuilder().setUid(inputData.getTargetUid()).setStatus(inputData.getStatus()).build();
sendApiMessage(inputData.getUserId(), IMTopic.BlackListUserTopic, friendRequest.toByteArray(), result -> {
sendApiMessage(response, inputData.getUserId(), IMTopic.BlackListUserTopic, friendRequest.toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -50,7 +51,7 @@ public class BlacklistAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -35,7 +35,7 @@ public class BlacklistGetAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputUserId inputGetFriendList = getRequestBody(request.getNettyRequest(), InputUserId.class);
List<FriendData> dataList = messagesStore.getFriendList(inputGetFriendList.getUserId(), null, 0);
@@ -45,7 +45,7 @@ public class BlacklistGetAction extends AdminAction {
list.add(data.getFriendUid());
}
}
setResponseContent(RestResult.ok(new OutputStringList(list)));
setResponseContent(RestResult.ok(new OutputStringList(list)), response);
}
return true;
}
@@ -15,6 +15,7 @@ import com.xiaoleilu.loServer.annotation.HttpMethod;
import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import cn.wildfirechat.pojos.InputOutputUserBlockStatus;
import com.xiaoleilu.loServer.handler.Response;
import io.moquette.persistence.ServerAPIHelper;
import io.netty.handler.codec.http.FullHttpRequest;
import io.netty.handler.codec.http.HttpResponseStatus;
@@ -31,7 +32,7 @@ public class BlockUserAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputOutputUserBlockStatus inputUserBlock = getRequestBody(request.getNettyRequest(), InputOutputUserBlockStatus.class);
if (inputUserBlock != null
@@ -44,12 +45,12 @@ public class BlockUserAction extends AdminAction {
response.setContent(new Gson().toJson(result));
if (inputUserBlock.getStatus() == 2) {
sendApiMessage(null, ServerAPIHelper.KICKOFF_USER_REQUEST, inputUserBlock.getUserId().getBytes(), null);
sendApiMessage(response, null, ServerAPIHelper.KICKOFF_USER_REQUEST, inputUserBlock.getUserId().getBytes(), null);
}
sendResponse(response, ErrorCode.ERROR_CODE_SUCCESS, null);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -19,6 +19,7 @@ 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;
@@ -35,11 +36,11 @@ public class BroadcastMessageAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
BroadMessageData sendMessageData = getRequestBody(request.getNettyRequest(), BroadMessageData.class);
if (BroadMessageData.isValide(sendMessageData) && !StringUtil.isNullOrEmpty(sendMessageData.getSender())) {
sendApiMessage(sendMessageData.getSender(), IMTopic.BroadcastMessageTopic, sendMessageData.toProtoMessage().toByteArray(), result -> {
sendApiMessage(response, sendMessageData.getSender(), IMTopic.BroadcastMessageTopic, sendMessageData.toProtoMessage().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -53,7 +54,7 @@ public class BroadcastMessageAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -15,6 +15,7 @@ import com.xiaoleilu.loServer.annotation.HttpMethod;
import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import cn.wildfirechat.pojos.InputGetUserInfo;
import com.xiaoleilu.loServer.handler.Response;
import io.moquette.persistence.ServerAPIHelper;
import io.netty.handler.codec.http.FullHttpRequest;
import io.netty.util.internal.StringUtil;
@@ -30,11 +31,11 @@ public class CheckUserOnlineAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetUserInfo inputUserId = getRequestBody(request.getNettyRequest(), InputGetUserInfo.class);
if (inputUserId == null || !StringUtil.isNullOrEmpty(inputUserId.getUserId())) {
sendApiMessage(inputUserId.getUserId(), ServerAPIHelper.CHECK_USER_ONLINE_REQUEST, inputUserId.getUserId().getBytes(), res -> {
sendApiMessage(response, inputUserId.getUserId(), ServerAPIHelper.CHECK_USER_ONLINE_REQUEST, inputUserId.getUserId().getBytes(), res -> {
OutputCheckUserOnline out = new Gson().fromJson(new String(res), OutputCheckUserOnline.class);
return new Result(ErrorCode.ERROR_CODE_SUCCESS, out);
});
@@ -16,6 +16,7 @@ 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;
@@ -33,7 +34,7 @@ public class CreateChannelAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputCreateChannel inputCreateChannel = getRequestBody(request.getNettyRequest(), InputCreateChannel.class);
if (inputCreateChannel != null
@@ -45,7 +46,7 @@ public class CreateChannelAction extends AdminAction {
inputCreateChannel.setTargetId(messagesStore.getShortUUID());
}
sendApiMessage(inputCreateChannel.getOwner(), IMTopic.CreateChannelTopic, inputCreateChannel.toProtoChannelInfo().toByteArray(), result -> {
sendApiMessage(response, inputCreateChannel.getOwner(), IMTopic.CreateChannelTopic, inputCreateChannel.toProtoChannelInfo().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -60,7 +61,7 @@ public class CreateChannelAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -34,7 +34,7 @@ public class CreateChatroomAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
FullHttpRequest fullHttpRequest = (FullHttpRequest)request.getNettyRequest();
byte[] bytes = Utils.readBytesAndRewind(fullHttpRequest.content());
@@ -54,9 +54,9 @@ public class CreateChatroomAction extends AdminAction {
WFCMessage.ChatroomInfo info = inputCreateChatroom.toChatroomInfo();
messagesStore.createChatroom(inputCreateChatroom.getChatroomId(), info);
setResponseContent(RestResult.ok(new OutputCreateChatroom(inputCreateChatroom.getChatroomId())));
setResponseContent(RestResult.ok(new OutputCreateChatroom(inputCreateChatroom.getChatroomId())), response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -17,6 +17,7 @@ import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import cn.wildfirechat.pojos.InputCreateGroup;
import cn.wildfirechat.pojos.OutputCreateGroupResult;
import com.xiaoleilu.loServer.handler.Response;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.handler.codec.http.FullHttpRequest;
@@ -34,11 +35,11 @@ public class CreateGroupAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputCreateGroup inputCreateGroup = getRequestBody(request.getNettyRequest(), InputCreateGroup.class);
if (inputCreateGroup.isValide()) {
sendApiMessage(inputCreateGroup.getOperator(), IMTopic.CreateGroupTopic, inputCreateGroup.toProtoGroupRequest().toByteArray(), result -> {
sendApiMessage(response, inputCreateGroup.getOperator(), IMTopic.CreateGroupTopic, inputCreateGroup.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -53,7 +54,7 @@ public class CreateGroupAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -39,7 +39,7 @@ public class CreateRobotAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputCreateRobot inputCreateRobot = getRequestBody(request.getNettyRequest(), InputCreateRobot.class);
if (inputCreateRobot != null
@@ -79,9 +79,9 @@ public class CreateRobotAction extends AdminAction {
inputCreateRobot.setSecret(UUIDGenerator.getUUID());
}
messagesStore.addRobot(inputCreateRobot.toRobot());
setResponseContent(RestResult.ok(new OutputCreateRobot(inputCreateRobot.getUserId(), inputCreateRobot.getSecret())));
setResponseContent(RestResult.ok(new OutputCreateRobot(inputCreateRobot.getUserId(), inputCreateRobot.getSecret())), response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -40,7 +40,7 @@ public class CreateUserAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputOutputUserInfo inputCreateUser = getRequestBody(request.getNettyRequest(), InputOutputUserInfo.class);
if (inputCreateUser != null
@@ -89,13 +89,13 @@ public class CreateUserAction extends AdminAction {
} catch (Exception e) {
e.printStackTrace();
Utility.printExecption(LOG, e, IMExceptionEvent.EventType.ADMIN_API_Exception);
setResponseContent(RestResult.resultOf(ErrorCode.ERROR_CODE_SERVER_ERROR, e.getMessage()));
setResponseContent(RestResult.resultOf(ErrorCode.ERROR_CODE_SERVER_ERROR, e.getMessage()), response);
return true;
}
setResponseContent(RestResult.ok(new OutputCreateUser(inputCreateUser.getUserId(), inputCreateUser.getName())));
setResponseContent(RestResult.ok(new OutputCreateUser(inputCreateUser.getUserId(), inputCreateUser.getName())), response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -32,7 +32,7 @@ public class DestoryChatroomAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
FullHttpRequest fullHttpRequest = (FullHttpRequest)request.getNettyRequest();
byte[] bytes = Utils.readBytesAndRewind(fullHttpRequest.content());
@@ -42,9 +42,9 @@ public class DestoryChatroomAction extends AdminAction {
if (inputDestoryChatroom != null
&& !StringUtil.isNullOrEmpty(inputDestoryChatroom.getChatroomId())) {
messagesStore.destoryChatroom(inputDestoryChatroom.getChatroomId());
setResponseContent(RestResult.ok());
setResponseContent(RestResult.ok(), response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -17,6 +17,7 @@ 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.handler.codec.http.FullHttpRequest;
import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.util.internal.StringUtil;
@@ -34,20 +35,20 @@ public class DestroyUserAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputDestroyUser inputDestroyUser = getRequestBody(request.getNettyRequest(), InputDestroyUser.class);
if (inputDestroyUser != null
&& !StringUtil.isNullOrEmpty(inputDestroyUser.getUserId())) {
WFCMessage.IDBuf idBuf = WFCMessage.IDBuf.newBuilder().setId(inputDestroyUser.getUserId()).build();
sendApiMessage(inputDestroyUser.getUserId(), IMTopic.DestroyUserTopic, idBuf.toByteArray(), result -> {
sendApiMessage(response, inputDestroyUser.getUserId(), IMTopic.DestroyUserTopic, idBuf.toByteArray(), result -> {
ErrorCode errorCode1 = ErrorCode.fromCode(result[0]);
return new Result(errorCode1);
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -16,6 +16,7 @@ import com.xiaoleilu.loServer.annotation.HttpMethod;
import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import cn.wildfirechat.pojos.InputDismissGroup;
import com.xiaoleilu.loServer.handler.Response;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.handler.codec.http.FullHttpRequest;
@@ -33,11 +34,11 @@ public class DismissGroupAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputDismissGroup inputDismissGroup = getRequestBody(request.getNettyRequest(), InputDismissGroup.class);
if (inputDismissGroup.isValide()) {
sendApiMessage(inputDismissGroup.getOperator(), IMTopic.DismissGroupTopic, inputDismissGroup.toProtoGroupRequest().toByteArray(), result -> {
sendApiMessage(response, inputDismissGroup.getOperator(), IMTopic.DismissGroupTopic, inputDismissGroup.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -45,7 +46,7 @@ public class DismissGroupAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -16,6 +16,7 @@ import com.xiaoleilu.loServer.annotation.HttpMethod;
import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import cn.wildfirechat.pojos.InputUpdateFriendStatusRequest;
import com.xiaoleilu.loServer.handler.Response;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.handler.codec.http.FullHttpRequest;
@@ -34,7 +35,7 @@ public class FriendRelationAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputUpdateFriendStatusRequest friendAdd = getRequestBody(request.getNettyRequest(), InputUpdateFriendStatusRequest.class);
if (friendAdd != null
@@ -45,7 +46,7 @@ public class FriendRelationAction extends AdminAction {
if (!StringUtil.isNullOrEmpty(friendAdd.getExtra())) {
friendRequestBuilder = friendRequestBuilder.setExtra(friendAdd.getExtra());
}
sendApiMessage(friendAdd.getUserId(), IMTopic.HandleFriendRequestTopic, friendRequestBuilder.build().toByteArray(), result -> {
sendApiMessage(response, friendAdd.getUserId(), IMTopic.HandleFriendRequestTopic, friendRequestBuilder.build().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -53,7 +54,7 @@ public class FriendRelationAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -36,7 +36,7 @@ public class FriendRelationGetAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputUserId inputGetFriendList = getRequestBody(request.getNettyRequest(), InputUserId.class);
List<FriendData> dataList = messagesStore.getFriendList(inputGetFriendList.getUserId(), null, 0);
@@ -47,7 +47,7 @@ public class FriendRelationGetAction extends AdminAction {
list.add(data.getFriendUid());
}
}
setResponseContent(RestResult.ok(new OutputStringList(list)));
setResponseContent(RestResult.ok(new OutputStringList(list)), response);
}
return true;
}
@@ -32,7 +32,7 @@ public class GetChatroomInfoAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetChatroomInfo getChatroomInfo = getRequestBody(request.getNettyRequest(), InputGetChatroomInfo.class);
String chatroomid = getChatroomInfo.getChatroomId();
@@ -46,9 +46,9 @@ public class GetChatroomInfoAction extends AdminAction {
} else {
result = RestResult.resultOf(ErrorCode.ERROR_CODE_NOT_EXIST);
}
setResponseContent(result);
setResponseContent(result, response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -39,7 +39,7 @@ public class GetChatroomMembersAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetChatroomInfo getChatroomInfo = getRequestBody(request.getNettyRequest(), InputGetChatroomInfo.class);
String chatroomid = getChatroomInfo.getChatroomId();
@@ -58,9 +58,9 @@ public class GetChatroomMembersAction extends AdminAction {
} else {
result = RestResult.resultOf(ErrorCode.ERROR_CODE_NOT_EXIST);
}
setResponseContent(result);
setResponseContent(result, response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -35,7 +35,7 @@ public class GetGroupInfoAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetGroup inputGetGroup = getRequestBody(request.getNettyRequest(), InputGetGroup.class);
if (inputGetGroup != null
@@ -53,11 +53,15 @@ public class GetGroupInfoAction extends AdminAction {
pojoGroupInfo.setPortrait(groupInfo.getPortrait());
pojoGroupInfo.setTarget_id(groupInfo.getTargetId());
pojoGroupInfo.setType(groupInfo.getType());
pojoGroupInfo.setMute(groupInfo.getMute());
pojoGroupInfo.setJoin_type(groupInfo.getJoinType());
pojoGroupInfo.setPrivate_chat(groupInfo.getPrivateChat());
pojoGroupInfo.setSearchable(groupInfo.getSearchable());
result = RestResult.ok(pojoGroupInfo);
}
setResponseContent(result);
setResponseContent(result, response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -39,7 +39,7 @@ public class GetGroupMembersAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetGroup inputGetGroup = getRequestBody(request.getNettyRequest(), InputGetGroup.class);
if (inputGetGroup != null
@@ -68,9 +68,9 @@ public class GetGroupMembersAction extends AdminAction {
result = RestResult.ok(out);
}
setResponseContent(result);
setResponseContent(result, response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -15,6 +15,7 @@ import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import cn.wildfirechat.pojos.InputGetToken;
import cn.wildfirechat.pojos.OutputGetIMTokenData;
import com.xiaoleilu.loServer.handler.Response;
import io.netty.handler.codec.http.FullHttpRequest;
import cn.wildfirechat.common.ErrorCode;
import win.liyufan.im.IMTopic;
@@ -31,14 +32,14 @@ public class GetIMTokenAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetToken input = getRequestBody(request.getNettyRequest(), InputGetToken.class);
String userId = input.getUserId();
WFCMessage.GetTokenRequest getTokenRequest = WFCMessage.GetTokenRequest.newBuilder().setUserId(userId).setClientId(input.getClientId()).setPlatform(input.getPlatform() == null ? 0 : input.getPlatform()).build();
sendApiMessage(userId, input.getClientId(), IMTopic.GetTokenTopic, getTokenRequest.toByteArray(), result -> {
sendApiMessage(response, userId, input.getClientId(), IMTopic.GetTokenTopic, getTokenRequest.toByteArray(), result -> {
ErrorCode errorCode1 = ErrorCode.fromCode(result[0]);
if (errorCode1 == ErrorCode.ERROR_CODE_SUCCESS) {
//ba errorcode qudiao
@@ -34,7 +34,7 @@ public class GetSystemSettingAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
SystemSettingPojo inputUserId = getRequestBody(request.getNettyRequest(), SystemSettingPojo.class);
if (inputUserId != null) {
@@ -47,9 +47,9 @@ public class GetSystemSettingAction extends AdminAction {
result = RestResult.ok(output);
}
setResponseContent(result);
setResponseContent(result, response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -33,7 +33,7 @@ public class GetUserAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetUserInfo inputUserId = getRequestBody(request.getNettyRequest(), InputGetUserInfo.class);
if (inputUserId != null
@@ -55,9 +55,9 @@ public class GetUserAction extends AdminAction {
result = RestResult.ok(InputOutputUserInfo.fromPbUser(user));
}
setResponseContent(result);
setResponseContent(result, response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -29,12 +29,12 @@ public class GetUserBlockListAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
OutputUserBlockStatusList list = new OutputUserBlockStatusList();
list.setStatusList(messagesStore.getUserStatusList());
RestResult result = RestResult.ok(list);
setResponseContent(result);
setResponseContent(result, response);
}
return true;
}
@@ -32,16 +32,16 @@ public class GetUserBlockStatusAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetUserInfo inputUserId = getRequestBody(request.getNettyRequest(), InputGetUserInfo.class);
if (inputUserId != null
&& !StringUtil.isNullOrEmpty(inputUserId.getUserId())) {
int status = messagesStore.getUserStatus(inputUserId.getUserId());
setResponseContent(RestResult.ok(new OutputUserStatus(status)));
setResponseContent(RestResult.ok(new OutputUserStatus(status)), response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -38,7 +38,7 @@ public class GetUserGroupsAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputUserId inputUserId = getRequestBody(request.getNettyRequest(), InputUserId.class);
if (inputUserId != null
@@ -48,9 +48,9 @@ public class GetUserGroupsAction extends AdminAction {
OutputGroupIds outputGroupIds = new OutputGroupIds();
outputGroupIds.setGroupIds(new ArrayList<>(groupIds));
RestResult result = RestResult.ok(outputGroupIds);
setResponseContent(result);
setResponseContent(result, response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -16,6 +16,7 @@ import com.xiaoleilu.loServer.annotation.HttpMethod;
import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import cn.wildfirechat.pojos.InputKickoffGroupMember;
import com.xiaoleilu.loServer.handler.Response;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.handler.codec.http.FullHttpRequest;
@@ -33,11 +34,11 @@ public class KickoffGroupMemberAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputKickoffGroupMember inputKickoffGroupMember = getRequestBody(request.getNettyRequest(), InputKickoffGroupMember.class);
if (inputKickoffGroupMember.isValide()) {
sendApiMessage(inputKickoffGroupMember.getOperator(), IMTopic.KickoffGroupMemberTopic, inputKickoffGroupMember.toProtoGroupRequest().toByteArray(), result -> {
sendApiMessage(response, inputKickoffGroupMember.getOperator(), IMTopic.KickoffGroupMemberTopic, inputKickoffGroupMember.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -45,7 +46,7 @@ public class KickoffGroupMemberAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -31,14 +31,14 @@ public class KickoffUserClientAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
StringPairPojo pojo = getRequestBody(request.getNettyRequest(), StringPairPojo.class);
if (pojo != null && !StringUtil.isNullOrEmpty(pojo.getFirst())) {
sessionsStore.kickoffUserClient(pojo.getFirst(), pojo.getSecond());
sendResponse(response, ErrorCode.ERROR_CODE_SUCCESS, null);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -17,6 +17,7 @@ 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;
@@ -33,11 +34,11 @@ public class ModifyGroupInfoAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputModifyGroupInfo inputAddGroupMember = getRequestBody(request.getNettyRequest(), InputModifyGroupInfo.class);
if (inputAddGroupMember.isValide()) {
sendApiMessage(inputAddGroupMember.getOperator(), IMTopic.ModifyGroupInfoTopic, inputAddGroupMember.toProtoGroupRequest().toByteArray(), result -> {
sendApiMessage(response, inputAddGroupMember.getOperator(), IMTopic.ModifyGroupInfoTopic, inputAddGroupMember.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -45,7 +46,7 @@ public class ModifyGroupInfoAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -17,6 +17,7 @@ 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;
@@ -33,11 +34,11 @@ public class ModifyGroupMemberAliasAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputSetGroupMemberAlias inputSetGroupMemberAlias = getRequestBody(request.getNettyRequest(), InputSetGroupMemberAlias.class);
if (inputSetGroupMemberAlias.isValide()) {
sendApiMessage(inputSetGroupMemberAlias.getOperator(), IMTopic.ModifyGroupMemberAliasTopic, inputSetGroupMemberAlias.toProtoGroupRequest().toByteArray(), result -> {
sendApiMessage(response, inputSetGroupMemberAlias.getOperator(), IMTopic.ModifyGroupMemberAliasTopic, inputSetGroupMemberAlias.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -45,7 +46,7 @@ public class ModifyGroupMemberAliasAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -18,6 +18,7 @@ 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;
@@ -34,11 +35,11 @@ public class MulticastMessageAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
MulticastMessageData sendMessageData = getRequestBody(request.getNettyRequest(), MulticastMessageData.class);
if (MulticastMessageData.isValide(sendMessageData)) {
sendApiMessage(sendMessageData.getSender(), IMTopic.MultiCastMessageTopic, sendMessageData.toProtoMessage().toByteArray(), result -> {
sendApiMessage(response, sendMessageData.getSender(), IMTopic.MultiCastMessageTopic, sendMessageData.toProtoMessage().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -52,7 +53,7 @@ public class MulticastMessageAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -34,7 +34,7 @@ public class PutSystemSettingAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
SystemSettingPojo inputUserId = getRequestBody(request.getNettyRequest(), SystemSettingPojo.class);
if (inputUserId != null
@@ -47,9 +47,9 @@ public class PutSystemSettingAction extends AdminAction {
} else {
result = RestResult.ok();
}
setResponseContent(result);
setResponseContent(result, response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -17,6 +17,7 @@ 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;
@@ -33,11 +34,11 @@ public class QuitGroupMemberAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputQuitGroup inputQuitGroup = getRequestBody(request.getNettyRequest(), InputQuitGroup.class);
if (inputQuitGroup.isValide()) {
sendApiMessage(inputQuitGroup.getOperator(), IMTopic.QuitGroupTopic, inputQuitGroup.toProtoGroupRequest().toByteArray(), result -> {
sendApiMessage(response, inputQuitGroup.getOperator(), IMTopic.QuitGroupTopic, inputQuitGroup.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -45,7 +46,7 @@ public class QuitGroupMemberAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -16,6 +16,7 @@ import com.xiaoleilu.loServer.annotation.HttpMethod;
import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import cn.wildfirechat.pojos.RecallMessageData;
import com.xiaoleilu.loServer.handler.Response;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.handler.codec.http.FullHttpRequest;
@@ -34,13 +35,13 @@ public class RecallMessageAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
RecallMessageData recallMessageData = getRequestBody(request.getNettyRequest(), RecallMessageData.class);
if (recallMessageData != null && !StringUtil.isNullOrEmpty(recallMessageData.getOperator())) {
WFCMessage.INT64Buf idBuf = WFCMessage.INT64Buf.newBuilder().setId(recallMessageData.getMessageUid()).build();
sendApiMessage(recallMessageData.getOperator(), IMTopic.RecallMessageTopic, idBuf.toByteArray(), result -> {
sendApiMessage(response, recallMessageData.getOperator(), IMTopic.RecallMessageTopic, idBuf.toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -48,7 +49,7 @@ public class RecallMessageAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -17,6 +17,7 @@ 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;
@@ -34,13 +35,13 @@ public class RecallMultiCastMessageAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
RecallMultiCastMessageData recallMessageData = getRequestBody(request.getNettyRequest(), RecallMultiCastMessageData.class);
if (recallMessageData != null && !StringUtil.isNullOrEmpty(recallMessageData.operator)) {
WFCMessage.RecallMultiCastMessageRequest recallRequest = WFCMessage.RecallMultiCastMessageRequest.newBuilder().setMessageId(recallMessageData.messageUid).addAllReceiver(recallMessageData.receivers).build();
sendApiMessage(recallMessageData.operator, IMTopic.RecallMultiCastMessageTopic, recallRequest.toByteArray(), result -> {
sendApiMessage(response, recallMessageData.operator, IMTopic.RecallMultiCastMessageTopic, recallRequest.toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -48,7 +49,7 @@ public class RecallMultiCastMessageAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -37,7 +37,7 @@ public class RelationGetAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
StringPairPojo input = getRequestBody(request.getNettyRequest(), StringPairPojo.class);
FriendData data = messagesStore.getFriendData(input.getFirst(), input.getSecond());
@@ -51,7 +51,7 @@ public class RelationGetAction extends AdminAction {
out.alias = data.getAlias();
out.extra = data.getExtra();
}
setResponseContent(RestResult.ok(out));
setResponseContent(RestResult.ok(out), response);
}
return true;
}
@@ -18,6 +18,7 @@ import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import cn.wildfirechat.pojos.SendMessageData;
import cn.wildfirechat.pojos.SendMessageResult;
import com.xiaoleilu.loServer.handler.Response;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.handler.codec.http.FullHttpRequest;
@@ -35,11 +36,11 @@ public class SendMessageAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
SendMessageData sendMessageData = getRequestBody(request.getNettyRequest(), SendMessageData.class);
if (SendMessageData.isValide(sendMessageData) && !StringUtil.isNullOrEmpty(sendMessageData.getSender())) {
sendApiMessage(sendMessageData.getSender(), IMTopic.SendMessageTopic, sendMessageData.toProtoMessage().toByteArray(), result -> {
sendApiMessage(response, sendMessageData.getSender(), IMTopic.SendMessageTopic, sendMessageData.toProtoMessage().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -53,7 +54,7 @@ public class SendMessageAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -30,7 +30,7 @@ public class SensitiveWordAddAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputOutputSensitiveWords input = getRequestBody(request.getNettyRequest(), InputOutputSensitiveWords.class);
if (input != null && input.getWords() != null && !input.getWords().isEmpty()) {
@@ -38,7 +38,7 @@ public class SensitiveWordAddAction extends AdminAction {
response.setStatus(HttpResponseStatus.OK);
sendResponse(response, errorCode, null);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -30,7 +30,7 @@ public class SensitiveWordDeleteAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputOutputSensitiveWords input = getRequestBody(request.getNettyRequest(), InputOutputSensitiveWords.class);
if (input != null && input.getWords() != null && !input.getWords().isEmpty()) {
@@ -39,7 +39,7 @@ public class SensitiveWordDeleteAction extends AdminAction {
sendResponse(response, errorCode, null);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -29,7 +29,7 @@ public class SensitiveWordQueryAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
List<String> words = messagesStore.getAllSensitiveWords();
InputOutputSensitiveWords out = new InputOutputSensitiveWords();
@@ -17,6 +17,7 @@ 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;
@@ -33,11 +34,11 @@ public class SetGroupManagerAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputSetGroupManager inputAddGroupMember = getRequestBody(request.getNettyRequest(), InputSetGroupManager.class);
if (inputAddGroupMember.isValide()) {
sendApiMessage(inputAddGroupMember.getOperator(), IMTopic.SetGroupManagerTopic, inputAddGroupMember.toProtoGroupRequest().toByteArray(), result -> {
sendApiMessage(response, inputAddGroupMember.getOperator(), IMTopic.SetGroupManagerTopic, inputAddGroupMember.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -45,7 +46,7 @@ public class SetGroupManagerAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -16,6 +16,7 @@ import com.xiaoleilu.loServer.annotation.HttpMethod;
import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import cn.wildfirechat.pojos.InputTransferGroup;
import com.xiaoleilu.loServer.handler.Response;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.handler.codec.http.FullHttpRequest;
@@ -33,11 +34,11 @@ public class TransferGroupAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputTransferGroup inputDismissGroup = getRequestBody(request.getNettyRequest(), InputTransferGroup.class);
if (inputDismissGroup.isValide()) {
sendApiMessage(inputDismissGroup.getOperator(), IMTopic.TransferGroupTopic, inputDismissGroup.toProtoGroupRequest().toByteArray(), result -> {
sendApiMessage(response, inputDismissGroup.getOperator(), IMTopic.TransferGroupTopic, inputDismissGroup.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -45,7 +46,7 @@ public class TransferGroupAction extends AdminAction {
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -41,7 +41,7 @@ public class UpdateUserAction extends AdminAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputUpdateUserInfo inputCreateUser = getRequestBody(request.getNettyRequest(), InputUpdateUserInfo.class);
if (inputCreateUser != null
@@ -50,9 +50,9 @@ public class UpdateUserAction extends AdminAction {
&& inputCreateUser.flag > 0) {
ErrorCode errorCode = messagesStore.updateUserInfo(inputCreateUser.userInfo, inputCreateUser.flag);
setResponseContent(RestResult.resultOf(errorCode));
setResponseContent(RestResult.resultOf(errorCode), response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -92,7 +92,7 @@ abstract public class ChannelAction extends Action {
return localSign.equals(sign) ? ErrorCode.ERROR_CODE_SUCCESS : ErrorCode.ERROR_CODE_AUTH_FAILURE;
}
protected void sendResponse(ErrorCode errorCode, Object data) {
protected void sendResponse(Response response, ErrorCode errorCode, Object data) {
response.setStatus(HttpResponseStatus.OK);
if (errorCode == null) {
errorCode = ErrorCode.ERROR_CODE_SUCCESS;
@@ -115,10 +115,10 @@ abstract public class ChannelAction extends Action {
return null;
}
protected void sendApiMessage(String topic, byte[] message, Callback callback) {
sendApiMessage(channelInfo.getOwner(), topic, message, callback);
protected void sendApiMessage(Response response, String topic, byte[] message, Callback callback) {
sendApiMessage(response, channelInfo.getOwner(), topic, message, callback);
}
protected void sendApiMessage(String user, String topic, byte[] message, Callback callback) {
protected void sendApiMessage(Response response, String user, String topic, byte[] message, Callback callback) {
ServerAPIHelper.sendRequest(user, null, topic, message, new ServerAPIHelper.Callback() {
@Override
public void onSuccess(byte[] response) {
@@ -126,12 +126,12 @@ abstract public class ChannelAction extends Action {
}
@Override
public void onError(ErrorCode errorCode) {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
@Override
public void onTimeout() {
sendResponse(ErrorCode.ERROR_CODE_TIMEOUT, null);
sendResponse(response, ErrorCode.ERROR_CODE_TIMEOUT, null);
}
@Override
@@ -29,9 +29,9 @@ import io.netty.util.internal.StringUtil;
public class GetChannelAction extends ChannelAction {
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
setResponseContent(RestResult.ok(OutputGetChannelInfo.fromPbInfo(channelInfo)));
setResponseContent(RestResult.ok(OutputGetChannelInfo.fromPbInfo(channelInfo)), response);
}
return true;
}
@@ -31,12 +31,12 @@ import java.util.ArrayList;
public class GetChannelSubscribersAction extends ChannelAction {
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
OutputStringList outputStringList = new OutputStringList();
outputStringList.setList(new ArrayList<>());
outputStringList.getList().addAll(messagesStore.getChannelSubscriber(channelInfo.getTargetId()));
setResponseContent(RestResult.ok(outputStringList));
setResponseContent(RestResult.ok(outputStringList), response);
}
return true;
}
@@ -31,7 +31,7 @@ import io.netty.util.internal.StringUtil;
public class GetUserAction extends ChannelAction {
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetUserInfo inputUserId = getRequestBody(request.getNettyRequest(), InputGetUserInfo.class);
if (inputUserId != null
@@ -69,9 +69,9 @@ public class GetUserAction extends ChannelAction {
}
}
setResponseContent(result);
setResponseContent(result, response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -28,24 +28,24 @@ import win.liyufan.im.IMTopic;
@HttpMethod("POST")
public class ModifyChannelProfileAction extends ChannelAction {
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputModifyChannelInfo input = getRequestBody(request.getNettyRequest(), InputModifyChannelInfo.class);
if (input != null) {
WFCMessage.ModifyChannelInfo modifyChannelInfo = WFCMessage.ModifyChannelInfo.newBuilder().setChannelId(channelInfo.getTargetId()).setType(input.getType()).setValue(input.getValue()).build();
sendApiMessage(IMTopic.ModifyChannelInfoTopic, modifyChannelInfo.toByteArray(), result -> {
sendApiMessage(response, IMTopic.ModifyChannelInfoTopic, modifyChannelInfo.toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
sendResponse(null, null);
sendResponse(response, null, null);
} else {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -40,14 +40,14 @@ public class SendMessageAction extends ChannelAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
SendChannelMessageData sendChannelMessageData = getRequestBody(request.getNettyRequest(), SendChannelMessageData.class);
if(sendChannelMessageData.getTargets() != null && !sendChannelMessageData.getTargets().isEmpty()) {
if((channelInfo.getStatus() & ProtoConstants.ChannelState.Channel_State_Mask_Message_Unsubscribed) == 0 && (channelInfo.getStatus() & ProtoConstants.ChannelState.Channel_State_Mask_Global) == 0) {
for (String target:sendChannelMessageData.getTargets()) {
if(!messagesStore.checkUserInChannel(target, channelInfo.getTargetId())) {
setResponseContent(RestResult.resultOf(ErrorCode.ERROR_CODE_NOT_RIGHT, "User " + target + " not in channel"));
setResponseContent(RestResult.resultOf(ErrorCode.ERROR_CODE_NOT_RIGHT, "User " + target + " not in channel"), response);
return true;
}
}
@@ -63,21 +63,21 @@ public class SendMessageAction extends ChannelAction {
sendMessageData.setPayload(sendChannelMessageData.getPayload());
sendMessageData.setToUsers(sendChannelMessageData.getTargets());
if (SendMessageData.isValide(sendMessageData)) {
sendApiMessage(IMTopic.SendMessageTopic, sendMessageData.toProtoMessage().toByteArray(), result -> {
sendApiMessage(response, IMTopic.SendMessageTopic, sendMessageData.toProtoMessage().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
long messageId = byteBuf.readLong();
long timestamp = byteBuf.readLong();
sendResponse(null, new SendMessageResult(messageId, timestamp));
sendResponse(response, null, new SendMessageResult(messageId, timestamp));
} else {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -19,6 +19,7 @@ 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;
@@ -30,7 +31,7 @@ import win.liyufan.im.IMTopic;
public class SubscriberChannelAction extends ChannelAction {
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputChannelSubscribe input = getRequestBody(request.getNettyRequest(), InputChannelSubscribe.class);
if (input != null && !StringUtil.isNullOrEmpty(input.getTarget())) {
@@ -41,19 +42,19 @@ public class SubscriberChannelAction extends ChannelAction {
return true;
}
WFCMessage.ListenChannel listenChannel = WFCMessage.ListenChannel.newBuilder().setChannelId(channelInfo.getTargetId()).setListen(input.getSubscribe()).build();
sendApiMessage(input.getTarget(), IMTopic.ChannelListenTopic, listenChannel.toByteArray(), result -> {
sendApiMessage(response, input.getTarget(), IMTopic.ChannelListenTopic, listenChannel.toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
sendResponse(null, null);
sendResponse(response, null, null);
} else {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -34,24 +34,24 @@ public class AddGroupMemberAction extends RobotAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputAddGroupMember inputAddGroupMember = getRequestBody(request.getNettyRequest(), InputAddGroupMember.class);
inputAddGroupMember.setOperator(robot.getUid());
if (inputAddGroupMember.isValide()) {
sendApiRequest(IMTopic.AddGroupMemberTopic, inputAddGroupMember.toProtoGroupRequest().toByteArray(), result -> {
sendApiRequest(response, IMTopic.AddGroupMemberTopic, inputAddGroupMember.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
sendResponse(null, null);
sendResponse(response, null, null);
} else {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -37,7 +37,7 @@ public class CreateGroupAction extends RobotAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputCreateGroup inputCreateGroup = getRequestBody(request.getNettyRequest(), InputCreateGroup.class);
inputCreateGroup.setOperator(robot.getUid());
@@ -45,7 +45,7 @@ public class CreateGroupAction extends RobotAction {
if (inputCreateGroup.isValide()) {
PojoGroupInfo group_info = inputCreateGroup.getGroup().getGroup_info();
WFCMessage.CreateGroupRequest createGroupRequest = inputCreateGroup.toProtoGroupRequest();
sendApiRequest(IMTopic.CreateGroupTopic, createGroupRequest.toByteArray(), result -> {
sendApiRequest(response, IMTopic.CreateGroupTopic, createGroupRequest.toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
@@ -53,14 +53,14 @@ public class CreateGroupAction extends RobotAction {
byte[] data = new byte[byteBuf.readableBytes()];
byteBuf.readBytes(data);
String groupId = new String(data);
sendResponse(null, new OutputCreateGroupResult(groupId));
sendResponse(response, null, new OutputCreateGroupResult(groupId));
} else {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -26,13 +26,13 @@ import io.netty.util.internal.StringUtil;
public class DeleteCallbackAction extends RobotAction {
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
if(!StringUtil.isNullOrEmpty(robot.getCallback())) {
robot = robot.toBuilder().clearCallback().setState(0).build();
messagesStore.addRobot(robot);
}
setResponseContent(RestResult.ok());
setResponseContent(RestResult.ok(), response);
}
return true;
}
@@ -34,24 +34,24 @@ public class DismissGroupAction extends RobotAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputDismissGroup inputDismissGroup = getRequestBody(request.getNettyRequest(), InputDismissGroup.class);
inputDismissGroup.setOperator(robot.getUid());
if (inputDismissGroup.isValide()) {
sendApiRequest(IMTopic.DismissGroupTopic, inputDismissGroup.toProtoGroupRequest().toByteArray(), result -> {
sendApiRequest(response, IMTopic.DismissGroupTopic, inputDismissGroup.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
sendResponse(null, null);
sendResponse(response, null, null);
} else {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -29,11 +29,11 @@ import io.netty.util.internal.StringUtil;
public class GetCallbackAction extends RobotAction {
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
RobotCallbackPojo out = new RobotCallbackPojo();
out.setUrl(robot.getCallback());
setResponseContent(RestResult.ok(out));
setResponseContent(RestResult.ok(out), response);
}
return true;
}
@@ -34,7 +34,7 @@ public class GetGroupInfoAction extends RobotAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetGroup inputGetGroup = getRequestBody(request.getNettyRequest(), InputGetGroup.class);
if (inputGetGroup != null
@@ -52,11 +52,15 @@ public class GetGroupInfoAction extends RobotAction {
pojoGroupInfo.setPortrait(groupInfo.getPortrait());
pojoGroupInfo.setTarget_id(groupInfo.getTargetId());
pojoGroupInfo.setType(groupInfo.getType());
pojoGroupInfo.setMute(groupInfo.getMute());
pojoGroupInfo.setJoin_type(groupInfo.getJoinType());
pojoGroupInfo.setPrivate_chat(groupInfo.getPrivateChat());
pojoGroupInfo.setSearchable(groupInfo.getSearchable());
result = RestResult.ok(pojoGroupInfo);
}
setResponseContent(result);
setResponseContent(result, response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -39,7 +39,7 @@ public class GetGroupMembersAction extends RobotAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetGroup inputGetGroup = getRequestBody(request.getNettyRequest(), InputGetGroup.class);
String robotId = robot.getUid();
@@ -75,9 +75,9 @@ public class GetGroupMembersAction extends RobotAction {
result = RestResult.ok(out);
}
setResponseContent(result);
setResponseContent(result, response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -28,7 +28,7 @@ import cn.wildfirechat.common.ErrorCode;
public class GetUserAction extends RobotAction {
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputGetUserInfo inputUserId = getRequestBody(request.getNettyRequest(), InputGetUserInfo.class);
if (inputUserId != null
@@ -49,9 +49,9 @@ public class GetUserAction extends RobotAction {
} else {
result = RestResult.ok(InputOutputUserInfo.fromPbUser(user));
}
setResponseContent(result);
setResponseContent(result, response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -34,24 +34,24 @@ public class KickoffGroupMemberAction extends RobotAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputKickoffGroupMember inputKickoffGroupMember = getRequestBody(request.getNettyRequest(), InputKickoffGroupMember.class);
inputKickoffGroupMember.setOperator(robot.getUid());
if (inputKickoffGroupMember.isValide()) {
sendApiRequest(IMTopic.KickoffGroupMemberTopic, inputKickoffGroupMember.toProtoGroupRequest().toByteArray(), result -> {
sendApiRequest(response, IMTopic.KickoffGroupMemberTopic, inputKickoffGroupMember.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
sendResponse(null, null);
sendResponse(response, null, null);
} else {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -34,24 +34,24 @@ public class ModifyGroupInfoAction extends RobotAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputModifyGroupInfo inputAddGroupMember = getRequestBody(request.getNettyRequest(), InputModifyGroupInfo.class);
inputAddGroupMember.setOperator(robot.getUid());
if (inputAddGroupMember.isValide()) {
sendApiRequest(IMTopic.ModifyGroupInfoTopic, inputAddGroupMember.toProtoGroupRequest().toByteArray(), result -> {
sendApiRequest(response, IMTopic.ModifyGroupInfoTopic, inputAddGroupMember.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
sendResponse(null, null);
sendResponse(response, null, null);
} else {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -34,24 +34,24 @@ public class ModifyGroupMemberAliasAction extends RobotAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputSetGroupMemberAlias inputSetGroupMemberAlias = getRequestBody(request.getNettyRequest(), InputSetGroupMemberAlias.class);
inputSetGroupMemberAlias.setOperator(robot.getUid());
if (inputSetGroupMemberAlias.isValide()) {
sendApiRequest(IMTopic.ModifyGroupMemberAliasTopic, inputSetGroupMemberAlias.toProtoGroupRequest().toByteArray(), result -> {
sendApiRequest(response, IMTopic.ModifyGroupMemberAliasTopic, inputSetGroupMemberAlias.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
sendResponse(null, null);
sendResponse(response, null, null);
} else {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -34,24 +34,24 @@ public class QuitGroupMemberAction extends RobotAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputQuitGroup inputQuitGroup = getRequestBody(request.getNettyRequest(), InputQuitGroup.class);
inputQuitGroup.setOperator(robot.getUid());
if (inputQuitGroup.isValide()) {
sendApiRequest(IMTopic.QuitGroupTopic, inputQuitGroup.toProtoGroupRequest().toByteArray(), result -> {
sendApiRequest(response, IMTopic.QuitGroupTopic, inputQuitGroup.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
sendResponse(null, null);
sendResponse(response, null, null);
} else {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -95,7 +95,7 @@ abstract public class RobotAction extends Action {
return localSign.equals(sign) ? ErrorCode.ERROR_CODE_SUCCESS : ErrorCode.ERROR_CODE_AUTH_FAILURE;
}
protected void sendResponse(ErrorCode errorCode, Object data) {
protected void sendResponse(Response response, ErrorCode errorCode, Object data) {
response.setStatus(HttpResponseStatus.OK);
if (errorCode == null) {
errorCode = ErrorCode.ERROR_CODE_SUCCESS;
@@ -124,7 +124,7 @@ abstract public class RobotAction extends Action {
return null;
}
protected void sendApiRequest(String topic, byte[] message, Callback callback) {
protected void sendApiRequest(Response response, String topic, byte[] message, Callback callback) {
ServerAPIHelper.sendRequest(robot.getUid(), null, topic, message, new ServerAPIHelper.Callback() {
@Override
public void onSuccess(byte[] response) {
@@ -133,12 +133,12 @@ abstract public class RobotAction extends Action {
@Override
public void onError(ErrorCode errorCode) {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
@Override
public void onTimeout() {
sendResponse(ErrorCode.ERROR_CODE_TIMEOUT, null);
sendResponse(response, ErrorCode.ERROR_CODE_TIMEOUT, null);
}
@Override
@@ -35,26 +35,26 @@ public class SendMessageAction extends RobotAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
SendMessageData sendMessageData = getRequestBody(request.getNettyRequest(), SendMessageData.class);
sendMessageData.setSender(robot.getUid());
if (SendMessageData.isValide(sendMessageData)) {
sendApiRequest(IMTopic.SendMessageTopic, sendMessageData.toProtoMessage().toByteArray(), result -> {
sendApiRequest(response, IMTopic.SendMessageTopic, sendMessageData.toProtoMessage().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
long messageId = byteBuf.readLong();
long timestamp = byteBuf.readLong();
sendResponse(null, new SendMessageResult(messageId, timestamp));
sendResponse(response, null, new SendMessageResult(messageId, timestamp));
} else {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -27,7 +27,7 @@ import io.netty.util.internal.StringUtil;
public class SetCallbackAction extends RobotAction {
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
RobotCallbackPojo input = getRequestBody(request.getNettyRequest(), RobotCallbackPojo.class);
if(!StringUtil.isNullOrEmpty(input.getUrl())) {
@@ -35,9 +35,9 @@ public class SetCallbackAction extends RobotAction {
robot = robot.toBuilder().setCallback(input.getUrl()).setState(1).build();
messagesStore.addRobot(robot);
}
setResponseContent(RestResult.ok());
setResponseContent(RestResult.ok(), response);
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
@@ -34,24 +34,24 @@ public class TransferGroupAction extends RobotAction {
}
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
InputTransferGroup inputDismissGroup = getRequestBody(request.getNettyRequest(), InputTransferGroup.class);
inputDismissGroup.setOperator(robot.getUid());
if (inputDismissGroup.isValide()) {
sendApiRequest(IMTopic.TransferGroupTopic, inputDismissGroup.toProtoGroupRequest().toByteArray(), result -> {
sendApiRequest(response, IMTopic.TransferGroupTopic, inputDismissGroup.toProtoGroupRequest().toByteArray(), result -> {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeBytes(result);
ErrorCode errorCode = ErrorCode.fromCode(byteBuf.readByte());
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
sendResponse(null, null);
sendResponse(response, null, null);
} else {
sendResponse(errorCode, null);
sendResponse(response, errorCode, null);
}
});
return false;
} else {
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER));
setResponseContent(RestResult.resultOf(ErrorCode.INVALID_PARAMETER), response);
}
}
return true;
@@ -28,7 +28,7 @@ import static cn.wildfirechat.pojos.MyInfoType.*;
public class UpdateProfileAction extends RobotAction {
@Override
public boolean action(Request request) {
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
IntStringPairPojo input = getRequestBody(request.getNettyRequest(), IntStringPairPojo.class);
@@ -85,7 +85,7 @@ public class UpdateProfileAction extends RobotAction {
result.setErrorCode(ErrorCode.ERROR_CODE_SERVER_ERROR);
}
}
setResponseContent(result);
setResponseContent(result, response);
}
return true;
}
@@ -53,7 +53,7 @@ abstract public class ActionHandler extends SimpleChannelInboundHandler<FullHttp
Action errorAction = ServerSetting.getErrorAction(ServerSetting.MAPPING_ERROR);
request.putParam(UnknownErrorAction.ERROR_PARAM_NAME, e);
response.setContent(e.toString());
errorAction.doAction(request);
errorAction.doAction(request, response);
//如果发送请求未被触发,则触发之,否则跳过。
if(!response.isSent()){
@@ -134,9 +134,8 @@ abstract public class ActionHandler extends SimpleChannelInboundHandler<FullHttp
}
}
action.ctx = ctx;
action.response = response;
boolean isSync = action.doAction(request);
boolean isSync = action.doAction(request, response);
if(isSync) {
//如果发送请求未被触发,则触发之,否则跳过。
@@ -85,6 +85,8 @@ public final class BrokerConstants {
public static final String QINIU_BUCKET_FAVORITE_DOMAIN = "qiniu.bucket_favorite_domain";
public static final String FILE_STORAGE_ROOT = "local.media.storage.root";
public static final String FILE_STORAGE_REMOTE_SERVER_URL = "local.media.storage.remote_server_url";
public static final String USER_QINIU = "media.server.use_qiniu";
public static final String PUSH_ANDROID_SERVER_ADDRESS = "push.android.server.address";
@@ -155,6 +157,7 @@ public final class BrokerConstants {
public static final String GROUP_Visible_Quit_Kickoff_Notification = "group.visible_quit_or_kickoff_notification";
public static final String USER_HIDE_PROPERTIES = "user.hide_properties";
public static final String SYNC_Data_Part_Size = "sync.data_part_size";
public static final String MESSAGES_FORBIDDEN_CLIENT_SEND_TYPES = "message.forbidden_client_send_types";
public static final String MESSAGES_BLACKLIST_EXCEPTION_TYPES = "message.blacklist_exception_types";
@@ -10,12 +10,15 @@ package io.moquette.imhandler;
import cn.wildfirechat.common.ErrorCode;
import cn.wildfirechat.proto.WFCMessage;
import com.hazelcast.util.StringUtil;
import com.qiniu.util.Auth;
import com.xiaoleilu.loServer.action.UploadFileAction;
import io.moquette.server.config.MediaServerConfig;
import io.moquette.spi.impl.Qos1PublishHandler;
import io.netty.buffer.ByteBuf;
import static io.moquette.server.config.MediaServerConfig.FILE_STROAGE_REMOTE_SERVER_URL;
@Handler("GMUT")
public class GetMediaUploadTokenHandler extends IMHandler<WFCMessage.GetUploadTokenRequest> {
@Override
@@ -80,8 +83,12 @@ public class GetMediaUploadTokenHandler extends IMHandler<WFCMessage.GetUploadTo
resultBuilder.setPort(80);
} else {
token = UploadFileAction.getToken(type);
resultBuilder.setDomain("http://" + MediaServerConfig.SERVER_IP + ":" + MediaServerConfig.HTTP_SERVER_PORT)
.setServer(MediaServerConfig.SERVER_IP);
if(StringUtil.isNullOrEmpty(MediaServerConfig.FILE_STROAGE_REMOTE_SERVER_URL)) {
resultBuilder.setDomain("http://" + MediaServerConfig.SERVER_IP + ":" + MediaServerConfig.HTTP_SERVER_PORT);
} else {
resultBuilder.setDomain(MediaServerConfig.FILE_STROAGE_REMOTE_SERVER_URL);
}
resultBuilder.setServer(MediaServerConfig.SERVER_IP);
resultBuilder.setPort(MediaServerConfig.HTTP_SERVER_PORT);
}
@@ -154,6 +154,7 @@ public class MemoryMessagesStore implements IMessagesStore {
private String mChatroomMemberUpdateCallback;
private boolean mGroupAllowClientCustomOperationNotification;
private int mGroupVisibleQuitKickoffNotification;
private int mSyncDataPartSize = 0;
private Set<Integer> mUserHideProperties = new HashSet<>();
@@ -381,6 +382,12 @@ public class MemoryMessagesStore implements IMessagesStore {
}
try {
mSyncDataPartSize = Integer.parseInt(server.getConfig().getProperty(SYNC_Data_Part_Size, "0"));
} catch (Exception e) {
}
try {
String userHideStr = server.getConfig().getProperty(USER_HIDE_PROPERTIES);
@@ -2573,6 +2580,11 @@ public class MemoryMessagesStore implements IMessagesStore {
}
}
if(mSyncDataPartSize > 0 && out.size() > mSyncDataPartSize) {
out.sort(Comparator.comparingLong(FriendData::getTimestamp));
out = out.subList(0, mSyncDataPartSize);
}
return out;
}
@@ -2618,12 +2630,16 @@ public class MemoryMessagesStore implements IMessagesStore {
}
}
if(mSyncDataPartSize > 0 && out.size() > mSyncDataPartSize) {
out.sort(Comparator.comparingLong(WFCMessage.FriendRequest::getUpdateDt));
out = out.subList(0, mSyncDataPartSize);
}
return out;
}
@Override
public ErrorCode saveAddFriendRequest(String userId, WFCMessage.AddFriendRequest request, long[] head, boolean isAdmin) {
if (mDisableFriendRequest) {
if (!isAdmin && mDisableFriendRequest) {
return ErrorCode.ERROR_CODE_NOT_RIGHT;
}
@@ -3111,6 +3127,12 @@ public class MemoryMessagesStore implements IMessagesStore {
}
}
if(mSyncDataPartSize > 0 && ec == ErrorCode.ERROR_CODE_SUCCESS && builder.getEntryCount() > mSyncDataPartSize) {
List<WFCMessage.UserSettingEntry> list = new ArrayList<>(builder.getEntryList());
list.sort(Comparator.comparingLong(WFCMessage.UserSettingEntry::getUpdateDt));
list = list.subList(0, mSyncDataPartSize);
builder.clearEntry().addAllEntry(list);
}
return ec;
}
@@ -346,6 +346,7 @@ public class Server {
file.mkdirs();
}
ServerSetting.setRoot(file);
MediaServerConfig.FILE_STROAGE_REMOTE_SERVER_URL = config.getProperty(FILE_STORAGE_REMOTE_SERVER_URL);
MediaServerConfig.USER_QINIU = Integer.parseInt(config.getProperty(BrokerConstants.USER_QINIU)) > 0;
}
@@ -27,6 +27,7 @@ public class MediaServerConfig {
public static String SERVER_IP = "localhost";
public static int HTTP_SERVER_PORT = 8080;
public static String FILE_STROAGE_ROOT = "fs";
public static String FILE_STROAGE_REMOTE_SERVER_URL;
public static boolean USER_QINIU = false;
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>wildfirechat-parent</artifactId>
<groupId>cn.wildfirechat</groupId>
<version>0.63</version>
<version>0.65</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -70,6 +70,11 @@ public interface APIPath {
String Get_System_Setting = "/admin/system/get_setting";
String Put_System_Setting = "/admin/system/put_setting";
String Conference_List = "/admin/conference/list";
String Conference_List_Participant = "/admin/conference/list_participant";
String Conference_Create = "/admin/conference/create";
String Conference_Destroy = "/admin/conference/destroy";
String Channel_User_Info = "/channel/user_info";
String Channel_Update_Profile = "/channel/update_profile";
String Channel_Get_Profile = "/channel/get_profile";
@@ -38,6 +38,7 @@ public enum ErrorCode {
ERROR_CODE_NOT_IN_CHANNEL(21, "not in channel"),
ERROR_CODE_NOT_LICENSED(22, "not licensed"),
ERROR_CODE_ALREADY_FRIENDS(23, "already friends"),
ERROR_CODE_RECALL_TIME_EXPIRED(24, "time expired"),
@@ -50,7 +51,7 @@ public enum ErrorCode {
ERROR_CODE_SIGN_EXPIRED(243, "sign expired"),
ERROR_CODE_AUTH_FAILURE(244, "auth failure"),
ERROR_CODE_CLIENT_COUNT_OUT_OF_LIMIT(245, "client count out of limit"),
ERROR_CODE_IN_BLACK_LIST(246, "user in balck list"),
ERROR_CODE_IN_BLACK_LIST(246, "user in black list"),
ERROR_CODE_FORBIDDEN_SEND_MSG(247, "forbidden send msg globally"),
ERROR_CODE_NOT_RIGHT(248, "no right to operate"),
ERROR_CODE_TIMEOUT(249, "timeout"),
@@ -0,0 +1,13 @@
package cn.wildfirechat.pojos;
public class ConferenceCreateEvent {
public String userId;
public String roomId;
public String serverId;
public String description;
public String pin;
public int max_publishers;
public int bitrate;
public boolean advance;
public boolean recording;
}
@@ -0,0 +1,6 @@
package cn.wildfirechat.pojos;
public class ConferenceDestroyEvent {
public String userId;
public String roomId;
}
@@ -0,0 +1,6 @@
package cn.wildfirechat.pojos;
public class ConferenceJoinEvent {
public String userId;
public String roomId;
}
@@ -0,0 +1,6 @@
package cn.wildfirechat.pojos;
public class ConferenceLeaveEvent {
public String userId;
public String roomId;
}
@@ -0,0 +1,7 @@
package cn.wildfirechat.pojos;
public class ConferencePublishEvent {
public String userId;
public boolean video;
public String roomId;
}
@@ -0,0 +1,6 @@
package cn.wildfirechat.pojos;
public class ConferenceUnpublishEvent {
public String userId;
public String roomId;
}
@@ -27,6 +27,8 @@ public class InputDismissGroup extends InputGroupBase {
}
public boolean isValide() {
if (StringUtil.isNullOrEmpty(group_id) || StringUtil.isNullOrEmpty(operator))
return false;
return true;
}

Some files were not shown because too many files have changed in this diff Show More