添加获取两个用户好友关系的接口

This commit is contained in:
imhao183
2021-02-09 14:58:07 +08:00
parent dd4cdb4bc4
commit 9fa1370219
5 changed files with 90 additions and 4 deletions
@@ -0,0 +1,61 @@
/*
* This file is part of the Wildfire Chat package.
* (c) Heavyrain2012 <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
package com.xiaoleilu.loServer.action.admin;
import cn.wildfirechat.common.APIPath;
import cn.wildfirechat.pojos.InputUserId;
import cn.wildfirechat.pojos.OutputStringList;
import cn.wildfirechat.pojos.RelationPojo;
import cn.wildfirechat.pojos.StringPairPojo;
import com.google.gson.Gson;
import com.xiaoleilu.loServer.RestResult;
import com.xiaoleilu.loServer.annotation.HttpMethod;
import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import com.xiaoleilu.loServer.handler.Response;
import com.xiaoleilu.loServer.model.FriendData;
import io.netty.handler.codec.http.FullHttpRequest;
import io.netty.handler.codec.http.HttpResponseStatus;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
@Route(APIPath.Relation_Get)
@HttpMethod("POST")
public class RelationGetAction extends AdminAction {
@Override
public boolean isTransactionAction() {
return true;
}
@Override
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());
RelationPojo out = new RelationPojo();
out.userId = input.getFirst();
out.targetId = input.getSecond();
if(data != null ) {
out.isFriend = data.getState() == 0;
out.isBlacked = data.getBlacked() == 1;
out.alias = data.getAlias();
out.extra = data.getExtra();
}
response.setStatus(HttpResponseStatus.OK);
RestResult result = RestResult.ok(out);
response.setContent(new Gson().toJson(result));
}
return true;
}
}
@@ -40,6 +40,7 @@ public interface APIPath {
String Friend_Set_Alias = "/admin/friend/set_alias";
String Friend_Send_Request = "/admin/friend/send_request";
String Friend_Get_Requests = "/admin/friend/get_requests";
String Relation_Get = "/admin/relation/get";
String Msg_Send = "/admin/message/send";
String Msg_Recall = "/admin/message/recall";
@@ -0,0 +1,10 @@
package cn.wildfirechat.pojos;
public class RelationPojo {
public String userId;
public String targetId;
public boolean isFriend;
public boolean isBlacked;
public String alias;
public String extra;
}
@@ -331,17 +331,25 @@ public class Main {
String alias = "hello" + System.currentTimeMillis();
IMResult<Void> updateFriendAlias = RelationAdmin.updateFriendAlias("ff1", "ff2", alias);
if (updateFriendAlias != null && updateFriendAlias.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
System.out.println("update friend status success");
System.out.println("update friend alias success");
} else {
System.out.println("update friend status failure");
System.out.println("update friend alias failure");
System.exit(-1);
}
IMResult<OutputGetAlias> getFriendAlias = RelationAdmin.getFriendAlias("ff1", "ff2");
if (getFriendAlias != null && getFriendAlias.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS && getFriendAlias.getResult().getAlias().equals(alias)) {
System.out.println("update friend status success");
System.out.println("get friend alias success");
} else {
System.out.println("update friend status failure");
System.out.println("get friend alias failure");
System.exit(-1);
}
IMResult<RelationPojo> getRelation = RelationAdmin.getRelation("ff1", "ff2");
if (getRelation != null && getRelation.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) {
System.out.println("get friend relation success");
} else {
System.out.println("get friend relation failure");
System.exit(-1);
}
}
@@ -65,4 +65,10 @@ public class RelationAdmin {
input.setForce(force);
return AdminHttpUtils.httpJsonPost(path, input, Void.class);
}
public static IMResult<RelationPojo> getRelation(String userId, String targetId) throws Exception {
String path = APIPath.Relation_Get;
StringPairPojo input = new StringPairPojo(userId, targetId);
return AdminHttpUtils.httpJsonPost(path, input, RelationPojo.class);
}
}