You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
6.0 KiB
150 lines
6.0 KiB
#include "UserManager.h"
|
|
#include <libopenimsdk.h>
|
|
#include "../NimResult.h"
|
|
#include "../ZegoDataUtils.h"
|
|
#include "ConstDefine.h"
|
|
#include "Listen.h"
|
|
|
|
UserManagerService::UserManagerService() {
|
|
m_serviceName = "userManager";
|
|
}
|
|
|
|
void UserManagerService::onMethodCalled(
|
|
const std::string& method,
|
|
const flutter::EncodableMap* arguments,
|
|
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
|
|
if (method == "setUserListener") {
|
|
setUserListener(arguments, result);
|
|
} else if (method == "getUsersInfo") {
|
|
getUsersInfo(arguments, result);
|
|
} else if (method == "setSelfInfo") {
|
|
setSelfInfo(arguments, result);
|
|
} else if (method == "getSelfUserInfo") {
|
|
getSelfUserInfo(arguments, result);
|
|
} else if (method == "subscribeUsersStatus") {
|
|
subscribeUsersStatus(arguments, result);
|
|
} else if (method == "unsubscribeUsersStatus") {
|
|
unsubscribeUsersStatus(arguments, result);
|
|
} else if (method == "getSubscribeUsersStatus") {
|
|
getSubscribeUsersStatus(arguments, result);
|
|
} else if (method == "getUserStatus") {
|
|
getUserStatus(arguments, result);
|
|
} else {
|
|
result->NotImplemented();
|
|
}
|
|
}
|
|
|
|
void UserManagerService::setUserListener(
|
|
const flutter::EncodableMap* arguments,
|
|
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
|
|
if (arguments) {
|
|
set_user_listener(NewUserListenCallBack());
|
|
result->Success(flutter::EncodableValue());
|
|
} else {
|
|
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
|
|
}
|
|
}
|
|
|
|
void UserManagerService::getUsersInfo(
|
|
const flutter::EncodableMap* arguments,
|
|
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
|
|
if (arguments) {
|
|
auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID")));
|
|
auto userIDList = zego_value_get_string(arguments->at(flutter::EncodableValue("userIDList")));
|
|
char* operationID_cs = const_cast<char*>(operationID.c_str());
|
|
char* userIDList_cs = const_cast<char*>(userIDList.c_str());
|
|
|
|
get_users_info(NewBaseCallBack(result), operationID_cs, userIDList_cs);
|
|
} else {
|
|
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
|
|
}
|
|
}
|
|
|
|
void UserManagerService::setSelfInfo(
|
|
const flutter::EncodableMap* arguments,
|
|
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
|
|
if (arguments) {
|
|
auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID")));
|
|
auto userInfo = map_2_json(*arguments);
|
|
char* operationID_cs = const_cast<char*>(operationID.c_str());
|
|
char* userInfo_cs = const_cast<char*>(userInfo.c_str());
|
|
|
|
set_self_info(NewBaseCallBack(result), operationID_cs, userInfo_cs);
|
|
} else {
|
|
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
|
|
}
|
|
}
|
|
|
|
void UserManagerService::getSelfUserInfo(
|
|
const flutter::EncodableMap* arguments,
|
|
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
|
|
if (arguments) {
|
|
auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID")));
|
|
char* operationID_cs = const_cast<char*>(operationID.c_str());
|
|
|
|
get_self_user_info(NewBaseCallBack(result), operationID_cs);
|
|
} else {
|
|
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
|
|
}
|
|
}
|
|
|
|
void UserManagerService::subscribeUsersStatus(
|
|
const flutter::EncodableMap* arguments,
|
|
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
|
|
if (arguments) {
|
|
auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID")));
|
|
auto userIDs = zego_value_get_string(arguments->at(flutter::EncodableValue("userIDs")));
|
|
char* operationID_cs = const_cast<char*>(operationID.c_str());
|
|
char* userIDs_cs = const_cast<char*>(userIDs.c_str());
|
|
|
|
subscribe_users_status(NewBaseCallBack(result), operationID_cs, userIDs_cs);
|
|
} else {
|
|
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
|
|
}
|
|
}
|
|
|
|
void UserManagerService::unsubscribeUsersStatus(
|
|
const flutter::EncodableMap* arguments,
|
|
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
|
|
if (arguments) {
|
|
auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID")));
|
|
auto userIDs = zego_value_get_string(arguments->at(flutter::EncodableValue("userIDs")));
|
|
char* operationID_cs = const_cast<char*>(operationID.c_str());
|
|
char* userIDs_cs = const_cast<char*>(userIDs.c_str());
|
|
|
|
unsubscribe_users_status(NewBaseCallBack(result), operationID_cs, userIDs_cs);
|
|
} else {
|
|
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
|
|
}
|
|
}
|
|
|
|
void UserManagerService::getSubscribeUsersStatus(
|
|
const flutter::EncodableMap* arguments,
|
|
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
|
|
if (arguments) {
|
|
auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID")));
|
|
char* operationID_cs = const_cast<char*>(operationID.c_str());
|
|
|
|
get_subscribe_users_status(NewBaseCallBack(result), operationID_cs);
|
|
} else {
|
|
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
|
|
}
|
|
}
|
|
|
|
void UserManagerService::getUserStatus(
|
|
const flutter::EncodableMap* arguments,
|
|
std::shared_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
|
|
if (arguments) {
|
|
auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID")));
|
|
auto userIDs = zego_value_get_string(arguments->at(flutter::EncodableValue("userIDs")));
|
|
char* operationID_cs = const_cast<char*>(operationID.c_str());
|
|
char* userIDs_cs = const_cast<char*>(userIDs.c_str());
|
|
|
|
get_user_status(NewBaseCallBack(result), operationID_cs, userIDs_cs);
|
|
} else {
|
|
result->Error("INVALID_ARGUMENT", "Arguments cannot be null");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|