Skip to content

Commit 093f648

Browse files
committed
feat: account v1 api
1 parent e7a02c1 commit 093f648

21 files changed

+688
-10
lines changed

src/main/java/com/netease/nim/im/server/sdk/v1/account/AccountV1Service.java

Lines changed: 133 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package com.netease.nim.im.server.sdk.v1.account;
22

3+
import com.alibaba.fastjson2.JSONArray;
34
import com.alibaba.fastjson2.JSONObject;
45
import com.netease.nim.im.server.sdk.core.exception.YunxinSdkException;
56
import com.netease.nim.im.server.sdk.core.Result;
67
import com.netease.nim.im.server.sdk.core.YunxinApiHttpClient;
78
import com.netease.nim.im.server.sdk.core.YunxinApiResponse;
8-
import com.netease.nim.im.server.sdk.v1.account.request.CreateAccountRequestV1;
9-
import com.netease.nim.im.server.sdk.v1.account.response.CreateAccountResponseV1;
9+
import com.netease.nim.im.server.sdk.v1.account.request.*;
10+
import com.netease.nim.im.server.sdk.v1.account.response.*;
1011
import com.netease.nim.im.server.sdk.v1.annotation.YunxinParamUtils;
1112

13+
import java.util.ArrayList;
14+
import java.util.List;
1215
import java.util.Map;
1316

1417
/**
@@ -31,12 +34,135 @@ public Result<CreateAccountResponseV1> createAccount(CreateAccountRequestV1 requ
3134
if (code != 200) {
3235
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), object.getString("desc"), null);
3336
}
34-
CreateAccountResponseV1 response = new CreateAccountResponseV1();
35-
JSONObject info = object.getJSONObject("info");
36-
response.setAccid(info.getString("accid"));
37-
response.setName(info.getString("name"));
38-
response.setToken(info.getString("token"));
37+
CreateAccountResponseV1 response = object.getObject("info", CreateAccountResponseV1.class);
3938
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), null, response);
4039
}
4140

41+
@Override
42+
public Result<UpdateTokenResponseV1> updateToken(UpdateTokenRequestV1 request) throws YunxinSdkException {
43+
Map<String, String> paramMap = YunxinParamUtils.convert(request);
44+
YunxinApiResponse apiResponse = httpClient.executeV1Api("/user/update.action", paramMap);
45+
JSONObject object = JSONObject.parseObject(apiResponse.getData());
46+
int code = object.getIntValue("code");
47+
if (code != 200) {
48+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), object.getString("desc"), null);
49+
}
50+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), null, new UpdateTokenResponseV1());
51+
}
52+
53+
@Override
54+
public Result<RefreshTokenResponseV1> refreshToken(RefreshTokenRequestV1 request) throws YunxinSdkException {
55+
Map<String, String> paramMap = YunxinParamUtils.convert(request);
56+
YunxinApiResponse apiResponse = httpClient.executeV1Api("/user/refreshToken.action", paramMap);
57+
JSONObject object = JSONObject.parseObject(apiResponse.getData());
58+
int code = object.getIntValue("code");
59+
if (code != 200) {
60+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), object.getString("desc"), null);
61+
}
62+
RefreshTokenResponseV1 response = object.getObject("info", RefreshTokenResponseV1.class);
63+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), null, response);
64+
}
65+
66+
@Override
67+
public Result<BlockAccountResponseV1> block(BlockAccountRequestV1 request) throws YunxinSdkException {
68+
Map<String, String> paramMap = YunxinParamUtils.convert(request);
69+
YunxinApiResponse apiResponse = httpClient.executeV1Api("/user/block.action", paramMap);
70+
JSONObject object = JSONObject.parseObject(apiResponse.getData());
71+
int code = object.getIntValue("code");
72+
if (code != 200) {
73+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), object.getString("desc"), null);
74+
}
75+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), null, new BlockAccountResponseV1());
76+
}
77+
78+
@Override
79+
public Result<UnBlockAccountResponseV1> unblock(UnBlockAccountRequestV1 request) throws YunxinSdkException {
80+
Map<String, String> paramMap = YunxinParamUtils.convert(request);
81+
YunxinApiResponse apiResponse = httpClient.executeV1Api("/user/unblock.action", paramMap);
82+
JSONObject object = JSONObject.parseObject(apiResponse.getData());
83+
int code = object.getIntValue("code");
84+
if (code != 200) {
85+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), object.getString("desc"), null);
86+
}
87+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), null, new UnBlockAccountResponseV1());
88+
}
89+
90+
@Override
91+
public Result<MuteAccountResponseV1> mute(MuteAccountRequestV1 request) throws YunxinSdkException {
92+
Map<String, String> paramMap = YunxinParamUtils.convert(request);
93+
YunxinApiResponse apiResponse = httpClient.executeV1Api("/user/mute.action", paramMap);
94+
JSONObject object = JSONObject.parseObject(apiResponse.getData());
95+
int code = object.getIntValue("code");
96+
if (code != 200) {
97+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), object.getString("desc"), null);
98+
}
99+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), null, new MuteAccountResponseV1());
100+
}
101+
102+
@Override
103+
public Result<MuteModuleResponseV1> muteModule(MuteModuleRequestV1 request) throws YunxinSdkException {
104+
Map<String, String> paramMap = YunxinParamUtils.convert(request);
105+
YunxinApiResponse apiResponse = httpClient.executeV1Api("/user/muteModule.action", paramMap);
106+
JSONObject object = JSONObject.parseObject(apiResponse.getData());
107+
int code = object.getIntValue("code");
108+
if (code != 200) {
109+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), object.getString("desc"), null);
110+
}
111+
MuteModuleResponseV1 response = object.getObject("data", MuteModuleResponseV1.class);
112+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), null, response);
113+
}
114+
115+
@Override
116+
public Result<SetDonnopResponseV1> setDonnop(SetDonnopRequestV1 request) throws YunxinSdkException {
117+
Map<String, String> paramMap = YunxinParamUtils.convert(request);
118+
YunxinApiResponse apiResponse = httpClient.executeV1Api("/user/setDonnop.action", paramMap);
119+
JSONObject object = JSONObject.parseObject(apiResponse.getData());
120+
int code = object.getIntValue("code");
121+
if (code != 200) {
122+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), object.getString("desc"), null);
123+
}
124+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), null, new SetDonnopResponseV1());
125+
}
126+
127+
@Override
128+
public Result<QueryAccountOnlineStatusResponseV1> queryOnlineStatus(QueryAccountOnlineStatusRequestV1 request) throws YunxinSdkException {
129+
Map<String, String> paramMap = YunxinParamUtils.convert(request);
130+
YunxinApiResponse apiResponse = httpClient.executeV1Api("/user/userOnlineStatus.action", paramMap);
131+
JSONObject object = JSONObject.parseObject(apiResponse.getData());
132+
int code = object.getIntValue("code");
133+
if (code != 200) {
134+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), object.getString("desc"), null);
135+
}
136+
QueryAccountOnlineStatusResponseV1 response = new QueryAccountOnlineStatusResponseV1();
137+
JSONArray jsonArray = object.getJSONArray("invalidAccids");
138+
List<String> invalidAccids = new ArrayList<>();
139+
if (jsonArray != null) {
140+
for (Object o : jsonArray) {
141+
invalidAccids.add(String.valueOf(o));
142+
}
143+
}
144+
response.setInvalidAccids(invalidAccids);
145+
146+
List<QueryAccountOnlineStatusResponseV1.OnlineStatus> onlineStatusList = new ArrayList<>();
147+
JSONObject statusJson = object.getJSONObject("status");
148+
if (statusJson != null) {
149+
for (Map.Entry<String, Object> entry : statusJson.entrySet()) {
150+
QueryAccountOnlineStatusResponseV1.OnlineStatus onlineStatus = new QueryAccountOnlineStatusResponseV1.OnlineStatus();
151+
onlineStatus.setAccid(entry.getKey());
152+
List<QueryAccountOnlineStatusResponseV1.Status> statusList = new ArrayList<>();
153+
JSONArray array = (JSONArray)entry.getValue();
154+
for (Object o : array) {
155+
JSONObject json = (JSONObject) o;
156+
QueryAccountOnlineStatusResponseV1.Status status = new QueryAccountOnlineStatusResponseV1.Status();
157+
status.setClientType(json.getIntValue("clientType"));
158+
status.setLoginTime(json.getLongValue("loginTime"));
159+
statusList.add(status);
160+
}
161+
onlineStatus.setStatusList(statusList);
162+
onlineStatusList.add(onlineStatus);
163+
}
164+
}
165+
response.setOnlineStatusList(onlineStatusList);
166+
return new Result<>(apiResponse.getEndpoint(), code, apiResponse.getTraceId(), null, response);
167+
}
42168
}

src/main/java/com/netease/nim/im/server/sdk/v1/account/IAccountV1Service.java

Lines changed: 66 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import com.netease.nim.im.server.sdk.core.exception.YunxinSdkException;
44
import com.netease.nim.im.server.sdk.core.Result;
5-
import com.netease.nim.im.server.sdk.v1.account.request.CreateAccountRequestV1;
6-
import com.netease.nim.im.server.sdk.v1.account.response.CreateAccountResponseV1;
5+
import com.netease.nim.im.server.sdk.v1.account.request.*;
6+
import com.netease.nim.im.server.sdk.v1.account.response.*;
77

88
/**
99
* Created by caojiajun on 2024/12/11
@@ -18,4 +18,68 @@ public interface IAccountV1Service {
1818
*/
1919
Result<CreateAccountResponseV1> createAccount(CreateAccountRequestV1 request) throws YunxinSdkException;
2020

21+
22+
/**
23+
* update token
24+
* @param request request
25+
* @return result
26+
* @throws YunxinSdkException exception
27+
*/
28+
Result<UpdateTokenResponseV1> updateToken(UpdateTokenRequestV1 request) throws YunxinSdkException;
29+
30+
/**
31+
* refresh token
32+
* @param request request
33+
* @return result
34+
* @throws YunxinSdkException exception
35+
*/
36+
Result<RefreshTokenResponseV1> refreshToken(RefreshTokenRequestV1 request) throws YunxinSdkException;
37+
38+
/**
39+
* block account
40+
* @param request request
41+
* @return result
42+
* @throws YunxinSdkException exception
43+
*/
44+
Result<BlockAccountResponseV1> block(BlockAccountRequestV1 request) throws YunxinSdkException;
45+
46+
/**
47+
* unblock account
48+
* @param request request
49+
* @return result
50+
* @throws YunxinSdkException exception
51+
*/
52+
Result<UnBlockAccountResponseV1> unblock(UnBlockAccountRequestV1 request) throws YunxinSdkException;
53+
54+
/**
55+
* mute account
56+
* @param request request
57+
* @return result
58+
* @throws YunxinSdkException exception
59+
*/
60+
Result<MuteAccountResponseV1> mute(MuteAccountRequestV1 request) throws YunxinSdkException;
61+
62+
/**
63+
* mute module of account
64+
* @param request request
65+
* @return result
66+
* @throws YunxinSdkException exception
67+
*/
68+
Result<MuteModuleResponseV1> muteModule(MuteModuleRequestV1 request) throws YunxinSdkException;
69+
70+
/**
71+
* set donnop of account
72+
* @param request request
73+
* @return result
74+
* @throws YunxinSdkException exception
75+
*/
76+
Result<SetDonnopResponseV1> setDonnop(SetDonnopRequestV1 request) throws YunxinSdkException;
77+
78+
/**
79+
* query online status of accounts
80+
* @param request request
81+
* @return result
82+
* @throws YunxinSdkException exception
83+
*/
84+
Result<QueryAccountOnlineStatusResponseV1> queryOnlineStatus(QueryAccountOnlineStatusRequestV1 request) throws YunxinSdkException;
2185
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.netease.nim.im.server.sdk.v1.account.request;
2+
3+
import com.netease.nim.im.server.sdk.v1.annotation.YunxinParam;
4+
5+
/**
6+
* Created by caojiajun on 2024/12/26
7+
*/
8+
public class BlockAccountRequestV1 {
9+
10+
@YunxinParam("accid")
11+
private String accid;
12+
13+
@YunxinParam("needkick")
14+
private Boolean needKick;
15+
16+
@YunxinParam("kickNotifyExt")
17+
private String kickNotifyExt;
18+
19+
@YunxinParam("needUnbindPushToken")
20+
private Boolean needUnbindPushToken;
21+
22+
public String getAccid() {
23+
return accid;
24+
}
25+
26+
public void setAccid(String accid) {
27+
this.accid = accid;
28+
}
29+
30+
public Boolean getNeedKick() {
31+
return needKick;
32+
}
33+
34+
public void setNeedKick(Boolean needKick) {
35+
this.needKick = needKick;
36+
}
37+
38+
public String getKickNotifyExt() {
39+
return kickNotifyExt;
40+
}
41+
42+
public void setKickNotifyExt(String kickNotifyExt) {
43+
this.kickNotifyExt = kickNotifyExt;
44+
}
45+
46+
public Boolean getNeedUnbindPushToken() {
47+
return needUnbindPushToken;
48+
}
49+
50+
public void setNeedUnbindPushToken(Boolean needUnbindPushToken) {
51+
this.needUnbindPushToken = needUnbindPushToken;
52+
}
53+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.netease.nim.im.server.sdk.v1.account.request;
2+
3+
import com.netease.nim.im.server.sdk.v1.annotation.YunxinParam;
4+
5+
/**
6+
* Created by caojiajun on 2024/12/26
7+
*/
8+
public class MuteAccountRequestV1 {
9+
10+
@YunxinParam("accid")
11+
private String accid;
12+
13+
@YunxinParam("mute")
14+
private Boolean mute;
15+
16+
public String getAccid() {
17+
return accid;
18+
}
19+
20+
public void setAccid(String accid) {
21+
this.accid = accid;
22+
}
23+
24+
public Boolean getMute() {
25+
return mute;
26+
}
27+
28+
public void setMute(Boolean mute) {
29+
this.mute = mute;
30+
}
31+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.netease.nim.im.server.sdk.v1.account.request;
2+
3+
import com.netease.nim.im.server.sdk.v1.annotation.YunxinParam;
4+
5+
/**
6+
* Created by caojiajun on 2024/12/26
7+
*/
8+
public class MuteModuleRequestV1 {
9+
10+
@YunxinParam("accid")
11+
private String accid;
12+
13+
@YunxinParam("muteP2P")
14+
private Boolean muteP2P;
15+
16+
@YunxinParam("muteTeam")
17+
private Boolean muteTeam;
18+
19+
@YunxinParam("muteRoom")
20+
private Boolean muteRoom;
21+
22+
@YunxinParam("muteQChat")
23+
private Boolean muteQChat;
24+
25+
public String getAccid() {
26+
return accid;
27+
}
28+
29+
public void setAccid(String accid) {
30+
this.accid = accid;
31+
}
32+
33+
public Boolean getMuteP2P() {
34+
return muteP2P;
35+
}
36+
37+
public void setMuteP2P(Boolean muteP2P) {
38+
this.muteP2P = muteP2P;
39+
}
40+
41+
public Boolean getMuteTeam() {
42+
return muteTeam;
43+
}
44+
45+
public void setMuteTeam(Boolean muteTeam) {
46+
this.muteTeam = muteTeam;
47+
}
48+
49+
public Boolean getMuteRoom() {
50+
return muteRoom;
51+
}
52+
53+
public void setMuteRoom(Boolean muteRoom) {
54+
this.muteRoom = muteRoom;
55+
}
56+
57+
public Boolean getMuteQChat() {
58+
return muteQChat;
59+
}
60+
61+
public void setMuteQChat(Boolean muteQChat) {
62+
this.muteQChat = muteQChat;
63+
}
64+
}

0 commit comments

Comments
 (0)