refuseGroupApplication method

Future<V2TimCallback> refuseGroupApplication({
  1. required String groupID,
  2. String? reason,
  3. required String fromUser,
  4. required String toUser,
  5. required int addTime,
  6. required GroupApplicationTypeEnum type,
  7. V2TimGroupApplication? application,
})

Implementation

Future<V2TimCallback> refuseGroupApplication({
  required String groupID,
  String? reason,
  required String fromUser,
  required String toUser,
  required int addTime,
  required GroupApplicationTypeEnum type,
  V2TimGroupApplication? application,
}) async {
  if (!TIMManager.instance.isInitSDK()) {
    return V2TimCallback(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
  }

  String userData = Tools.generateUserData('refuseGroupApplication');

  V2TimGroupApplication adjustApplication = V2TimGroupApplication(groupID: groupID, fromUser: fromUser, toUser: toUser, addTime: addTime, type: type.index, handleStatus: 0, handleResult: 0);
  if (application != null && application.authentication.isNotEmpty) {
    adjustApplication = application;
    adjustApplication.groupID = groupID;
    adjustApplication.fromUser = fromUser;
    adjustApplication.toUser = toUser;
    adjustApplication.addTime = addTime;
    adjustApplication.type = type.index;

    Completer<V2TimCallback> completer = Completer();
    NativeLibraryManager.timCallback2Future(userData, completer);

    V2TimGroupHandleApplicationParam param = V2TimGroupHandleApplicationParam(isAccept: false, reason: reason ?? '', application: adjustApplication);
    Pointer<Char> pParam = Tools.string2PointerChar(json.encode(param.toJson()));
    Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
    NativeLibraryManager.bindings.DartHandleGroupPendency(pParam, pUserData);

    return completer.future;
  }

  // 兼容旧版本的处理
  return handleGroupApplication(groupID: groupID, fromUser: fromUser, toUser: toUser, addTime: addTime, type: type, isAccept: false, userData: userData);
}