Skip to content

Commit e1be13a

Browse files
committed
feat: add/update some api implements
1 parent 31f2bc4 commit e1be13a

12 files changed

Lines changed: 853 additions & 3 deletions

File tree

src/main/java/com/netease/nim/server/sdk/im/v2/account/request/CreateAccountRequestV2.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,8 @@ public static class UserInformation {
197197
@JSONField(name = "extension")
198198
private String extension;
199199

200-
200+
@JSONField(name = "email_validation_mode")
201+
private Integer emailValidationMode;
201202

202203
public String getName() {
203204
return name;
@@ -263,6 +264,12 @@ public void setExtension(String extension) {
263264
this.extension = extension;
264265
}
265266

267+
public Integer getEmailValidationMode() {
268+
return emailValidationMode;
269+
}
266270

271+
public void setEmailValidationMode(Integer emailValidationMode) {
272+
this.emailValidationMode = emailValidationMode;
273+
}
267274
}
268275
}

src/main/java/com/netease/nim/server/sdk/im/v2/account/request/UpdateAccountRequestV2.java

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ public class UpdateAccountRequestV2 {
2222
@JSONField(name = "kick_notify_extension")
2323
private String kickNotifyExtension;
2424

25+
@JSONField(name = "user_information")
26+
private UserInformation userInformation;
27+
2528
public static class Configuration {
2629

2730
@JSONField(name = "enabled")
@@ -130,4 +133,114 @@ public String getKickNotifyExtension() {
130133
public void setKickNotifyExtension(String kickNotifyExtension) {
131134
this.kickNotifyExtension = kickNotifyExtension;
132135
}
136+
137+
public UserInformation getUserInformation() {
138+
return userInformation;
139+
}
140+
141+
public void setUserInformation(UserInformation userInformation) {
142+
this.userInformation = userInformation;
143+
}
144+
145+
public static class UserInformation {
146+
147+
@JSONField(name = "name")
148+
private String name;
149+
150+
@JSONField(name = "avatar")
151+
private String avatar;
152+
153+
@JSONField(name = "sign")
154+
private String sign;
155+
156+
@JSONField(name = "email")
157+
private String email;
158+
159+
@JSONField(name = "birthday")
160+
private String birthday;
161+
162+
@JSONField(name = "mobile")
163+
private String mobile;
164+
165+
@JSONField(name = "gender")
166+
private Integer gender;
167+
168+
@JSONField(name = "extension")
169+
private String extension;
170+
171+
@JSONField(name = "email_validation_mode")
172+
private Integer emailValidationMode;
173+
174+
public String getName() {
175+
return name;
176+
}
177+
178+
public void setName(String name) {
179+
this.name = name;
180+
}
181+
182+
public String getAvatar() {
183+
return avatar;
184+
}
185+
186+
public void setAvatar(String avatar) {
187+
this.avatar = avatar;
188+
}
189+
190+
public String getSign() {
191+
return sign;
192+
}
193+
194+
public void setSign(String sign) {
195+
this.sign = sign;
196+
}
197+
198+
public String getEmail() {
199+
return email;
200+
}
201+
202+
public void setEmail(String email) {
203+
this.email = email;
204+
}
205+
206+
public String getBirthday() {
207+
return birthday;
208+
}
209+
210+
public void setBirthday(String birthday) {
211+
this.birthday = birthday;
212+
}
213+
214+
public String getMobile() {
215+
return mobile;
216+
}
217+
218+
public void setMobile(String mobile) {
219+
this.mobile = mobile;
220+
}
221+
222+
public Integer getGender() {
223+
return gender;
224+
}
225+
226+
public void setGender(Integer gender) {
227+
this.gender = gender;
228+
}
229+
230+
public String getExtension() {
231+
return extension;
232+
}
233+
234+
public void setExtension(String extension) {
235+
this.extension = extension;
236+
}
237+
238+
public Integer getEmailValidationMode() {
239+
return emailValidationMode;
240+
}
241+
242+
public void setEmailValidationMode(Integer emailValidationMode) {
243+
this.emailValidationMode = emailValidationMode;
244+
}
245+
}
133246
}

src/main/java/com/netease/nim/server/sdk/im/v2/chatroom_member/ChatroomMemberV2Service.java

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.netease.nim.server.sdk.im.v2.chatroom_member.request.BatchQueryChatroomMembersRequestV2;
1111
import com.netease.nim.server.sdk.im.v2.chatroom_member.request.ClearVirtualMembersRequestV2;
1212
import com.netease.nim.server.sdk.im.v2.chatroom_member.request.DeleteVirtualMembersRequestV2;
13+
import com.netease.nim.server.sdk.im.v2.chatroom_member.request.KickChatRoomMemberRequestV2;
1314
import com.netease.nim.server.sdk.im.v2.chatroom_member.request.ListTaggedMembersRequestV2;
1415
import com.netease.nim.server.sdk.im.v2.chatroom_member.request.ModifyMemberTagsRequestV2;
1516
import com.netease.nim.server.sdk.im.v2.chatroom_member.request.QueryChatBannedRequestV2;
@@ -26,6 +27,7 @@
2627
import com.netease.nim.server.sdk.im.v2.chatroom_member.response.BatchQueryChatroomMembersResponseV2;
2728
import com.netease.nim.server.sdk.im.v2.chatroom_member.response.ClearVirtualMembersResponseV2;
2829
import com.netease.nim.server.sdk.im.v2.chatroom_member.response.DeleteVirtualMembersResponseV2;
30+
import com.netease.nim.server.sdk.im.v2.chatroom_member.response.KickChatRoomMemberResponseV2;
2931
import com.netease.nim.server.sdk.im.v2.chatroom_member.response.ListTaggedMembersResponseV2;
3032
import com.netease.nim.server.sdk.im.v2.chatroom_member.response.ModifyMemberTagsResponseV2;
3133
import com.netease.nim.server.sdk.im.v2.chatroom_member.response.QueryChatBannedResponseV2;
@@ -41,7 +43,6 @@
4143
import com.netease.nim.server.sdk.im.v2.util.ResultUtils;
4244

4345
import java.util.HashMap;
44-
import java.util.List;
4546
import java.util.Map;
4647

4748
public class ChatroomMemberV2Service implements IChatroomMemberV2Service {
@@ -554,4 +555,37 @@ public Result<QueryChatBannedResponseV2> queryChatBanned(QueryChatBannedRequestV
554555
);
555556
return ResultUtils.convert(apiResponse, QueryChatBannedResponseV2.class);
556557
}
558+
559+
@Override
560+
public Result<KickChatRoomMemberResponseV2> kickMember(KickChatRoomMemberRequestV2 request) throws YunxinSdkException {
561+
// Validate required parameters
562+
if (request.getAccountId() == null || request.getAccountId().isEmpty()) {
563+
throw new IllegalArgumentException("Account ID cannot be null or empty");
564+
}
565+
566+
if (request.getRoomId() == null) {
567+
throw new IllegalArgumentException("Room ID cannot be null");
568+
}
569+
570+
if (request.getOperatorAccountId() == null || request.getOperatorAccountId().isEmpty()) {
571+
throw new IllegalArgumentException("Operator account ID cannot be null or empty");
572+
}
573+
574+
// Replace the path parameter in the URL
575+
String path = ChatroomMemberV2UrlContext.KICK_MEMBER.replace("{account_id}", request.getAccountId());
576+
577+
// Convert the request to JSON string
578+
String requestBody = JSONObject.toJSONString(request);
579+
580+
// Execute API call
581+
YunxinApiResponse apiResponse = httpClient.executeV2Api(
582+
HttpMethod.PATCH,
583+
ChatroomMemberV2UrlContext.KICK_MEMBER,
584+
path,
585+
null, // No query parameters
586+
requestBody
587+
);
588+
589+
return ResultUtils.convert(apiResponse, KickChatRoomMemberResponseV2.class);
590+
}
557591
}

src/main/java/com/netease/nim/server/sdk/im/v2/chatroom_member/ChatroomMemberV2UrlContext.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,9 @@ public class ChatroomMemberV2UrlContext {
8989
* Query chat banned members endpoint
9090
*/
9191
static final String QUERY_CHAT_BANNED = "/im/v2.1/room_members/{room_id}/actions/chat_banned";
92+
93+
/**
94+
* Kick member out of chatroom endpoint
95+
*/
96+
static final String KICK_MEMBER = "/im/v2.1/room_members/{account_id}/actions/kicked";
9297
}

src/main/java/com/netease/nim/server/sdk/im/v2/chatroom_member/IChatroomMemberV2Service.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import com.netease.nim.server.sdk.im.v2.chatroom_member.response.DeleteVirtualMembersResponseV2;
3535
import com.netease.nim.server.sdk.im.v2.chatroom_member.request.ClearVirtualMembersRequestV2;
3636
import com.netease.nim.server.sdk.im.v2.chatroom_member.response.ClearVirtualMembersResponseV2;
37+
import com.netease.nim.server.sdk.im.v2.chatroom_member.request.KickChatRoomMemberRequestV2;
38+
import com.netease.nim.server.sdk.im.v2.chatroom_member.response.KickChatRoomMemberResponseV2;
3739

3840
public interface IChatroomMemberV2Service {
3941

@@ -68,4 +70,6 @@ public interface IChatroomMemberV2Service {
6870
Result<QueryVirtualMembersResponseV2> queryVirtualMembers(QueryVirtualMembersRequestV2 request) throws YunxinSdkException;
6971

7072
Result<QueryChatBannedResponseV2> queryChatBanned(QueryChatBannedRequestV2 request) throws YunxinSdkException;
73+
74+
Result<KickChatRoomMemberResponseV2> kickMember(KickChatRoomMemberRequestV2 request) throws YunxinSdkException;
7175
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.netease.nim.server.sdk.im.v2.chatroom_member.request;
2+
3+
import com.alibaba.fastjson2.annotation.JSONField;
4+
5+
/**
6+
* Request for kicking a member out of chatroom.
7+
*/
8+
public class KickChatRoomMemberRequestV2 {
9+
10+
private String accountId;
11+
12+
@JSONField(name = "room_id")
13+
private Long roomId;
14+
15+
@JSONField(name = "operator_account_id")
16+
private String operatorAccountId;
17+
18+
@JSONField(name = "notification_enabled")
19+
private Boolean notificationEnabled;
20+
21+
@JSONField(name = "notification_extension")
22+
private String notificationExtension;
23+
24+
public String getAccountId() {
25+
return accountId;
26+
}
27+
28+
public void setAccountId(String accountId) {
29+
this.accountId = accountId;
30+
}
31+
32+
public Long getRoomId() {
33+
return roomId;
34+
}
35+
36+
public void setRoomId(Long roomId) {
37+
this.roomId = roomId;
38+
}
39+
40+
public String getOperatorAccountId() {
41+
return operatorAccountId;
42+
}
43+
44+
public void setOperatorAccountId(String operatorAccountId) {
45+
this.operatorAccountId = operatorAccountId;
46+
}
47+
48+
public Boolean getNotificationEnabled() {
49+
return notificationEnabled;
50+
}
51+
52+
public void setNotificationEnabled(Boolean notificationEnabled) {
53+
this.notificationEnabled = notificationEnabled;
54+
}
55+
56+
public String getNotificationExtension() {
57+
return notificationExtension;
58+
}
59+
60+
public void setNotificationExtension(String notificationExtension) {
61+
this.notificationExtension = notificationExtension;
62+
}
63+
}
64+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.netease.nim.server.sdk.im.v2.chatroom_member.response;
2+
3+
/**
4+
* Response for kicking a member out of chatroom.
5+
*/
6+
public class KickChatRoomMemberResponseV2 {
7+
// Empty response body, only contains code and msg in the outer Result
8+
}
9+

src/main/java/com/netease/nim/server/sdk/im/v2/friend/response/ListFriendsResponseV2.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ public class ListFriendsResponseV2 {
1616
@JSONField(name = "items")
1717
private List<FriendItemV2> items;
1818

19+
@JSONField(name = "total")
20+
private Integer total;
21+
1922
public Boolean getHasMore() {
2023
return hasMore;
2124
}
@@ -40,7 +43,14 @@ public void setItems(List<FriendItemV2> items) {
4043
this.items = items;
4144
}
4245

43-
46+
public Integer getTotal() {
47+
return total;
48+
}
49+
50+
public void setTotal(Integer total) {
51+
this.total = total;
52+
}
53+
4454
public static class FriendItemV2 {
4555

4656
@JSONField(name = "friend_account_id")

0 commit comments

Comments
 (0)