Unverified Commit da6af4d8 authored by Yang Libin's avatar Yang Libin Committed by GitHub

feat(account): implement core logic (#8)

parent c146fd04
...@@ -3,6 +3,7 @@ target/ ...@@ -3,6 +3,7 @@ target/
!.mvn/wrapper/maven-wrapper.jar !.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/ !**/src/main/**/target/
!**/src/test/**/target/ !**/src/test/**/target/
/src/main/resources/app.properties
### STS ### ### STS ###
.apt_generated .apt_generated
......
package com.qcloud.im.core; package com.qcloud.im.core;
import com.qcloud.im.IMClient; import com.qcloud.im.IMClient;
import com.qcloud.im.model.request.AccountImportRequest; import com.qcloud.im.model.request.*;
import com.qcloud.im.model.response.AccountImportResult; import com.qcloud.im.model.response.*;
import com.qcloud.im.util.HttpUtil; import com.qcloud.im.util.HttpUtil;
import com.qcloud.im.util.JsonUtil; import com.qcloud.im.util.JsonUtil;
...@@ -13,18 +13,54 @@ import java.io.IOException; ...@@ -13,18 +13,54 @@ import java.io.IOException;
* @since 2021/07/29 14:52 * @since 2021/07/29 14:52
*/ */
public class Account { public class Account {
private final String SERVICE_NAME = "im_open_login_svc"; private static final String SERVICE_NAME = "im_open_login_svc";
private final String ACCOUNT_IMPORT_COMMAND = "account_import"; private static final String SERVICE_NAME_OPEN_IM = "openim";
private static final String ACCOUNT_IMPORT_COMMAND = "account_import";
private static final String MULTI_ACCOUNT_IMPORT_COMMAND = "multiaccount_import";
private static final String ACCOUNT_DELETE = "account_delete";
private static final String ACCOUNT_CHECK = "account_check";
private static final String KICK = "kick";
private static final String QUERY_STATE = "querystate";
private IMClient imClient; private IMClient imClient;
public Account(IMClient imClient) {
this.imClient = imClient;
}
public AccountImportResult accountImport(AccountImportRequest accountImportRequest) throws IOException { public AccountImportResult accountImport(AccountImportRequest accountImportRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, ACCOUNT_IMPORT_COMMAND); String url = imClient.getUrl(SERVICE_NAME, ACCOUNT_IMPORT_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(accountImportRequest), null); String result = HttpUtil.post(url, JsonUtil.obj2Str(accountImportRequest), null);
return JsonUtil.str2Obj(result, AccountImportResult.class); return JsonUtil.str2Obj(result, AccountImportResult.class);
} }
public Account(IMClient imClient) { public MultiAccountImportResult multiAccountImport(MultiAccountImportRequest multiAccountImportRequest) throws IOException {
this.imClient = imClient; String url = imClient.getUrl(SERVICE_NAME, MULTI_ACCOUNT_IMPORT_COMMAND);
String result = HttpUtil.post(url, JsonUtil.obj2Str(multiAccountImportRequest), null);
return JsonUtil.str2Obj(result, MultiAccountImportResult.class);
}
public AccountDeleteResult accountDelete(AccountDeleteRequest accountDeleteRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, ACCOUNT_DELETE);
String result = HttpUtil.post(url, JsonUtil.obj2Str(accountDeleteRequest), null);
return JsonUtil.str2Obj(result, AccountDeleteResult.class);
}
public AccountCheckResult accountCheck(AccountCheckRequest accountCheckRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, ACCOUNT_CHECK);
String result = HttpUtil.post(url, JsonUtil.obj2Str(accountCheckRequest), null);
return JsonUtil.str2Obj(result, AccountCheckResult.class);
}
public KickResult kick(KickRequest kickRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME, KICK);
String result = HttpUtil.post(url, JsonUtil.obj2Str(kickRequest), null);
return JsonUtil.str2Obj(result, KickResult.class);
}
public QueryStateResult queryState(QueryStateRequest queryStateRequest) throws IOException {
String url = imClient.getUrl(SERVICE_NAME_OPEN_IM, QUERY_STATE);
String result = HttpUtil.post(url, JsonUtil.obj2Str(queryStateRequest), null);
return JsonUtil.str2Obj(result, QueryStateResult.class);
} }
} }
...@@ -15,9 +15,9 @@ import java.io.IOException; ...@@ -15,9 +15,9 @@ import java.io.IOException;
* @since 2021/07/29 10:28 * @since 2021/07/29 10:28
*/ */
public class Message { public class Message {
private final String SERVICE_NAME = "openim"; private static final String SERVICE_NAME = "openim";
private final String SEND_MSG_COMMAND = "sendmsg"; private static final String SEND_MSG_COMMAND = "sendmsg";
private final String IMPORT_MSG_COMMAND = "importmsg"; private static final String IMPORT_MSG_COMMAND = "importmsg";
private IMClient imClient; private IMClient imClient;
......
...@@ -13,8 +13,8 @@ import java.io.IOException; ...@@ -13,8 +13,8 @@ import java.io.IOException;
* @since 2021/07/29 15:11 * @since 2021/07/29 15:11
*/ */
public class Profile { public class Profile {
private final String SERVICE_NAME = "profile"; private static final String SERVICE_NAME = "profile";
private final String PORTRAIT_SET_COMMAND = "portrait_set"; private static final String PORTRAIT_SET_COMMAND = "portrait_set";
private IMClient imClient; private IMClient imClient;
......
...@@ -13,8 +13,8 @@ import java.io.IOException; ...@@ -13,8 +13,8 @@ import java.io.IOException;
* @since 2021/07/29 15:11 * @since 2021/07/29 15:11
*/ */
public class SNS { public class SNS {
private final String SERVICE_NAME = "sns"; private static final String SERVICE_NAME = "sns";
private final String FRIEND_IMPORT_COMMAND = "friend_import"; private static final String FRIEND_IMPORT_COMMAND = "friend_import";
private IMClient imClient; private IMClient imClient;
......
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author bingo
* @since 2021/7/30 17:27
*/
public class AccountCheckItem {
@JsonProperty("UserID")
private String userId;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
}
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
/**
* @author bingo
* @since 2021/7/30 17:26
*/
public class AccountCheckRequest extends GenericRequest {
@JsonProperty("CheckItem")
private List<AccountCheckItem> checkItemList;
public List<AccountCheckItem> getCheckItemList() {
return checkItemList;
}
public void setCheckItemList(List<AccountCheckItem> checkItemList) {
this.checkItemList = checkItemList;
}
}
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author bingo
* @since 2021/7/30 17:09
*/
public class AccountDeleteItem {
@JsonProperty("UserID")
private String userId;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
}
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
/**
* @author bingo
* @since 2021/7/30 17:08
*/
public class AccountDeleteRequest extends GenericRequest {
@JsonProperty("DeleteItem")
private List<AccountDeleteItem> deleteItemList;
public List<AccountDeleteItem> getDeleteItemList() {
return deleteItemList;
}
public void setDeleteItemList(List<AccountDeleteItem> deleteItemList) {
this.deleteItemList = deleteItemList;
}
}
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author bingo
* @since 2021/7/30 17:31
*/
public class KickRequest extends GenericRequest {
@JsonProperty("Identifier")
private String identifier;
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
}
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
/**
* @author bingo
* @since 2021/7/30 17:07
*/
public class MultiAccountImportRequest extends GenericRequest {
@JsonProperty("Accounts")
private List<String> accounts;
public List<String> getAccounts() {
return accounts;
}
public void setAccounts(List<String> accounts) {
this.accounts = accounts;
}
}
package com.qcloud.im.model.request;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
/**
* @author bingo
* @since 2021/7/30 17:35
*/
public class QueryStateRequest extends GenericRequest {
@JsonProperty("IsNeedDetail")
private Integer isNeedDetail;
@JsonProperty("To_Account")
private List<String> toAccount;
public Integer getIsNeedDetail() {
return isNeedDetail;
}
public void setIsNeedDetail(Integer isNeedDetail) {
this.isNeedDetail = isNeedDetail;
}
public List<String> getToAccount() {
return toAccount;
}
public void setToAccount(List<String> toAccount) {
this.toAccount = toAccount;
}
}
...@@ -19,4 +19,11 @@ public class AccountCheckResult extends GenericResult { ...@@ -19,4 +19,11 @@ public class AccountCheckResult extends GenericResult {
public void setResultItems(List<AccountCheckResultItem> resultItems) { public void setResultItems(List<AccountCheckResultItem> resultItems) {
this.resultItems = resultItems; this.resultItems = resultItems;
} }
@Override
public String toString() {
return "AccountCheckResult{" +
"resultItems=" + resultItems +
'}';
}
} }
...@@ -50,4 +50,14 @@ public class AccountCheckResultItem { ...@@ -50,4 +50,14 @@ public class AccountCheckResultItem {
public void setAccountStatus(String accountStatus) { public void setAccountStatus(String accountStatus) {
this.accountStatus = accountStatus; this.accountStatus = accountStatus;
} }
@Override
public String toString() {
return "AccountCheckResultItem{" +
"resultCode=" + resultCode +
", resultInfo='" + resultInfo + '\'' +
", userId='" + userId + '\'' +
", accountStatus='" + accountStatus + '\'' +
'}';
}
} }
...@@ -19,4 +19,11 @@ public class AccountDeleteResult extends GenericResult { ...@@ -19,4 +19,11 @@ public class AccountDeleteResult extends GenericResult {
public void setResultItems(List<AccountDeleteResultItem> resultItems) { public void setResultItems(List<AccountDeleteResultItem> resultItems) {
this.resultItems = resultItems; this.resultItems = resultItems;
} }
@Override
public String toString() {
return "AccountDeleteResult{" +
"resultItems=" + resultItems +
'}';
}
} }
...@@ -39,4 +39,13 @@ public class AccountDeleteResultItem { ...@@ -39,4 +39,13 @@ public class AccountDeleteResultItem {
public void setUserId(String userId) { public void setUserId(String userId) {
this.userId = userId; this.userId = userId;
} }
@Override
public String toString() {
return "AccountDeleteResultItem{" +
"resultCode=" + resultCode +
", resultInfo='" + resultInfo + '\'' +
", userId='" + userId + '\'' +
'}';
}
} }
...@@ -4,5 +4,5 @@ package com.qcloud.im.model.response; ...@@ -4,5 +4,5 @@ package com.qcloud.im.model.response;
* @author hyh * @author hyh
* @since 2021/07/28 20:32 * @since 2021/07/28 20:32
*/ */
public class AdminMsgWithdrawResult extends GenericResult{ public class AdminMsgWithdrawResult extends GenericResult {
} }
...@@ -4,5 +4,5 @@ package com.qcloud.im.model.response; ...@@ -4,5 +4,5 @@ package com.qcloud.im.model.response;
* @author hyh * @author hyh
* @since 2021/07/28 20:32 * @since 2021/07/28 20:32
*/ */
public class AdminSetMsgRead extends GenericResult{ public class AdminSetMsgRead extends GenericResult {
} }
...@@ -19,4 +19,11 @@ public class MultiAccountImportResult extends GenericResult { ...@@ -19,4 +19,11 @@ public class MultiAccountImportResult extends GenericResult {
public void setFailAccounts(List<String> failAccounts) { public void setFailAccounts(List<String> failAccounts) {
this.failAccounts = failAccounts; this.failAccounts = failAccounts;
} }
@Override
public String toString() {
return "MultiAccountImportResult{" +
"failAccounts=" + failAccounts +
'}';
}
} }
...@@ -28,4 +28,12 @@ public class QueryStateErrorItem { ...@@ -28,4 +28,12 @@ public class QueryStateErrorItem {
public void setErrorCode(Integer errorCode) { public void setErrorCode(Integer errorCode) {
this.errorCode = errorCode; this.errorCode = errorCode;
} }
@Override
public String toString() {
return "QueryStateErrorItem{" +
"toAccount='" + toAccount + '\'' +
", errorCode=" + errorCode +
'}';
}
} }
...@@ -30,4 +30,12 @@ public class QueryStateResult extends GenericResult { ...@@ -30,4 +30,12 @@ public class QueryStateResult extends GenericResult {
public void setQueryStateErrorList(List<QueryStateErrorItem> queryStateErrorList) { public void setQueryStateErrorList(List<QueryStateErrorItem> queryStateErrorList) {
this.queryStateErrorList = queryStateErrorList; this.queryStateErrorList = queryStateErrorList;
} }
@Override
public String toString() {
return "QueryStateResult{" +
"queryStateResult=" + queryStateResult +
", queryStateErrorList=" + queryStateErrorList +
'}';
}
} }
...@@ -28,4 +28,12 @@ public class QueryStateResultItem { ...@@ -28,4 +28,12 @@ public class QueryStateResultItem {
public void setStatus(String status) { public void setStatus(String status) {
this.status = status; this.status = status;
} }
@Override
public String toString() {
return "QueryStateResultItem{" +
"toAccount='" + toAccount + '\'' +
", status='" + status + '\'' +
'}';
}
} }
package com.qcloud.im; package com.qcloud.im;
import com.qcloud.im.model.request.AccountImportRequest; import com.qcloud.im.model.request.*;
import com.qcloud.im.model.response.AccountImportResult; import com.qcloud.im.model.response.*;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.Properties;
/** /**
* @author bingo * @author bingo
* @since 2021/7/30 16:17 * @since 2021/7/30 16:17
*/ */
public class AccountTest { public class AccountTest {
private static Properties properties = new Properties();
private static IMClient client;
static {
InputStream resourceAsStream = AccountTest.class.getClassLoader().getResourceAsStream("app.properties");
try {
properties.load(resourceAsStream);
} catch (IOException e) {
e.printStackTrace();
}
String key = properties.getProperty("key");
String identifier = properties.getProperty("identifier");
Long appId = Long.parseLong(properties.getProperty("appId"));
client = IMClient.getInstance(appId, identifier, key);
}
@Test @Test
public void testAccountImport() throws IOException { public void testAccountImport() throws IOException {
long appId = 11212L;
String key = "xxx";
String userId = "test";
IMClient client = IMClient.getInstance(appId, userId, key);
AccountImportRequest request = new AccountImportRequest(); AccountImportRequest request = new AccountImportRequest();
request.setFaceUrl("http://www.qq.com"); request.setFaceUrl("http://www.qq.com");
request.setIdentifier("bingo123"); request.setIdentifier("test1");
request.setNick("bingo"); request.setNick("bingo");
AccountImportResult accountImportResult = client.account.accountImport(request); AccountImportResult result = client.account.accountImport(request);
Assert.assertEquals(accountImportResult.getActionStatus(), "OK"); System.out.println(result);
Assert.assertEquals("OK", result.getActionStatus());
}
@Test
public void testMultiAccountImport() throws IOException {
MultiAccountImportRequest request = new MultiAccountImportRequest();
request.setAccounts(Arrays.asList("test1", "test2", "bingo"));
MultiAccountImportResult result = client.account.multiAccountImport(request);
System.out.println(result);
Assert.assertEquals("OK", result.getActionStatus());
}
@Test
public void testAccountDelete() throws IOException {
AccountDeleteRequest request = new AccountDeleteRequest();
AccountDeleteItem item1 = new AccountDeleteItem();
item1.setUserId("acbin");
AccountDeleteItem item2 = new AccountDeleteItem();
item2.setUserId("test1");
request.setDeleteItemList(Arrays.asList(item1, item2));
AccountDeleteResult result = client.account.accountDelete(request);
System.out.println(result);
Assert.assertEquals("OK", result.getActionStatus());
}
@Test
public void testAccountCheck() throws IOException {
AccountCheckRequest request = new AccountCheckRequest();
AccountCheckItem item1 = new AccountCheckItem();
item1.setUserId("user1");
AccountCheckItem item2 = new AccountCheckItem();
item2.setUserId("test1");
request.setCheckItemList(Arrays.asList(item1, item2));
AccountCheckResult result = client.account.accountCheck(request);
System.out.println(result);
Assert.assertEquals("OK", result.getActionStatus());
}
@Test
public void testKick() throws IOException {
KickRequest request = new KickRequest();
request.setIdentifier("test1");
KickResult result = client.account.kick(request);
System.out.println(result);
Assert.assertEquals("OK", result.getActionStatus());
}
@Test
public void testQueryState() throws IOException {
QueryStateRequest request = new QueryStateRequest();
request.setIsNeedDetail(1);
request.setToAccount(Arrays.asList("test1", "test2", "user1"));
QueryStateResult result = client.account.queryState(request);
System.out.println(result);
Assert.assertEquals("OK", result.getActionStatus());
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment