#include "UserManager.h" #include #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> 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> 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> result) { if (arguments) { auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID"))); auto userIDList = value_2_json(arguments->at(flutter::EncodableValue("userIDList"))); char* operationID_cs = const_cast(operationID.c_str()); char* userIDList_cs = const_cast(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> 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(operationID.c_str()); char* userInfo_cs = const_cast(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> result) { if (arguments) { auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID"))); char* operationID_cs = const_cast(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> result) { if (arguments) { auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID"))); auto userIDs = value_2_json(arguments->at(flutter::EncodableValue("userIDs"))); char* operationID_cs = const_cast(operationID.c_str()); char* userIDs_cs = const_cast(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> result) { if (arguments) { auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID"))); auto userIDs = value_2_json(arguments->at(flutter::EncodableValue("userIDs"))); char* operationID_cs = const_cast(operationID.c_str()); char* userIDs_cs = const_cast(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> result) { if (arguments) { auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID"))); char* operationID_cs = const_cast(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> result) { if (arguments) { auto operationID = zego_value_get_string(arguments->at(flutter::EncodableValue("operationID"))); auto userIDs = value_2_json(arguments->at(flutter::EncodableValue("userIDs"))); char* operationID_cs = const_cast(operationID.c_str()); char* userIDs_cs = const_cast(userIDs.c_str()); get_user_status(NewBaseCallBack(result), operationID_cs, userIDs_cs); } else { result->Error("INVALID_ARGUMENT", "Arguments cannot be null"); } }