handleGroupApplication method
Implementation
Future<V2TimCallback> handleGroupApplication({
required String groupID,
String? reason,
required String fromUser,
required String toUser,
required int addTime,
required GroupApplicationTypeEnum? type,
required bool isAccept,
required String userData,
}) async {
var result = await getGroupApplicationList();
if (result.code != TIMErrCode.ERR_SUCC.value) {
return V2TimCallback(code: result.code, desc: "get group application list failed");
}
var targetApplication = result.data?.groupApplicationList?.firstWhere((element) => element?.groupID == groupID && element?.fromUser == fromUser);
if (targetApplication == null) {
return V2TimCallback(code: TIMErrCode.ERR_INVALID_PARAMETERS.value, desc: "find group application failed");
}
Completer<V2TimCallback> completer = Completer();
NativeLibraryManager.timCallback2Future(userData, completer);
V2TimGroupHandleApplicationParam param = V2TimGroupHandleApplicationParam(isAccept: isAccept, reason: reason ?? '', application: targetApplication);
Pointer<Char> pParam = Tools.string2PointerChar(json.encode(param.toJson()));
Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
NativeLibraryManager.bindings.DartHandleGroupPendency(pParam, pUserData);
return completer.future;
}