Skip to content

Commit b52042a

Browse files
authored
feat: support importing multiple accounts with new parameters (#206)
1 parent b399460 commit b52042a

File tree

3 files changed

+110
-0
lines changed

3 files changed

+110
-0
lines changed

src/main/java/io/github/doocs/im/core/Account.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,23 @@ public MultiAccountImportResult multiAccountImport(MultiAccountImportRequest mul
7070
return HttpUtil.post(url, multiAccountImportRequest, MultiAccountImportResult.class, imClient.getConfig());
7171
}
7272

73+
/**
74+
* 导入多个账号(新版本,支持昵称和头像)
75+
*
76+
* @param multiAccountImportNewRequest 请求参数
77+
* @return 结果
78+
* @throws IOException 异常
79+
*/
80+
public MultiAccountImportResult multiAccountImportNew(MultiAccountImportNewRequest multiAccountImportNewRequest) throws IOException {
81+
String url = imClient.getUrl(SERVICE_NAME, MULTI_ACCOUNT_IMPORT_COMMAND);
82+
return HttpUtil.post(url, multiAccountImportNewRequest, MultiAccountImportResult.class, imClient.getConfig());
83+
}
84+
85+
public MultiAccountImportResult multiAccountImportNew(MultiAccountImportNewRequest multiAccountImportNewRequest, long random) throws IOException {
86+
String url = imClient.getUrl(SERVICE_NAME, MULTI_ACCOUNT_IMPORT_COMMAND, random);
87+
return HttpUtil.post(url, multiAccountImportNewRequest, MultiAccountImportResult.class, imClient.getConfig());
88+
}
89+
7390
/**
7491
* 删除账号
7592
*
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package io.github.doocs.im.model.request;
2+
3+
import com.fasterxml.jackson.annotation.JsonInclude;
4+
import com.fasterxml.jackson.annotation.JsonProperty;
5+
6+
import java.io.Serializable;
7+
import java.util.List;
8+
9+
/**
10+
* 导入多个账号-请求参数
11+
*
12+
* @author dileex
13+
* @since 2024/12/19
14+
*/
15+
@JsonInclude(JsonInclude.Include.NON_NULL)
16+
public class MultiAccountImportNewRequest extends GenericRequest implements Serializable {
17+
private static final long serialVersionUID = 1096507781689811276L;
18+
19+
/**
20+
* 待导入的用户列表,单次最多导入100个用户
21+
*/
22+
@JsonProperty("AccountList")
23+
private List<AccountImportRequest> accountList;
24+
25+
public MultiAccountImportNewRequest() {
26+
}
27+
28+
public MultiAccountImportNewRequest(List<AccountImportRequest> accountList) {
29+
this.accountList = accountList;
30+
}
31+
32+
private MultiAccountImportNewRequest(Builder builder) {
33+
this.accountList = builder.accountList;
34+
}
35+
36+
public static Builder builder() {
37+
return new Builder();
38+
}
39+
40+
public List<AccountImportRequest> getAccountList() {
41+
return accountList;
42+
}
43+
44+
public void setAccountList(List<AccountImportRequest> accountList) {
45+
this.accountList = accountList;
46+
}
47+
48+
public static final class Builder {
49+
private List<AccountImportRequest> accountList;
50+
51+
private Builder() {
52+
}
53+
54+
public MultiAccountImportNewRequest build() {
55+
return new MultiAccountImportNewRequest(this);
56+
}
57+
58+
public Builder accountList(List<AccountImportRequest> accountList) {
59+
this.accountList = accountList;
60+
return this;
61+
}
62+
}
63+
}

src/test/java/io/github/doocs/im/core/AccountTest.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,36 @@ void testMultiAccountImport() throws IOException {
5858
Assertions.assertEquals(ActionStatus.OK, result.getActionStatus());
5959
}
6060

61+
@Test
62+
void testMultiAccountImportNew() throws IOException {
63+
List<AccountImportRequest> accountList = new ArrayList<>();
64+
65+
// 创建第一个账号信息
66+
AccountImportRequest account1 = AccountImportRequest.builder()
67+
.userId("UserID_001")
68+
.nick("Nick_001")
69+
.faceUrl("https://avatars.githubusercontent.com/u/43716716?s=200&v=4")
70+
.build();
71+
72+
// 创建第二个账号信息
73+
AccountImportRequest account2 = AccountImportRequest.builder()
74+
.userId("UserID_002")
75+
.nick("Nick_002")
76+
.faceUrl("https://avatars.githubusercontent.com/u/43716716?s=200&v=4")
77+
.build();
78+
79+
accountList.add(account1);
80+
accountList.add(account2);
81+
82+
MultiAccountImportNewRequest request = MultiAccountImportNewRequest.builder()
83+
.accountList(accountList)
84+
.build();
85+
86+
MultiAccountImportResult result = client.account.multiAccountImportNew(request);
87+
System.out.println(result);
88+
Assertions.assertEquals(ActionStatus.OK, result.getActionStatus());
89+
}
90+
6191
@Test
6292
void testAccountDelete() throws IOException {
6393
AccountDeleteItem item1 = AccountDeleteItem.builder().userId("user1").build();

0 commit comments

Comments
 (0)