modifyTopicPermissionInPermissionGroup method

Future<V2TimValueCallback<List<V2TimTopicOperationResult>>> modifyTopicPermissionInPermissionGroup({
  1. required String groupID,
  2. required String permissionGroupID,
  3. required Map<String, int> topicPermissionMap,
})

Implementation

Future<V2TimValueCallback<List<V2TimTopicOperationResult>>>
    modifyTopicPermissionInPermissionGroup({
  required String groupID,
  required String permissionGroupID,
  required Map<String, int> topicPermissionMap,
}) async {
  if (!TIMManager.instance.isInitSDK()) {
    return V2TimValueCallback<List<V2TimTopicOperationResult>>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
  }

  String userData = Tools.generateUserData('modifyTopicPermissionInPermissionGroup');
  Completer<V2TimValueCallback<List<V2TimTopicOperationResult>>> completer = Completer();
  NativeLibraryManager.timValueCallback2Future(userData, completer);

  Pointer<Char> pGroupID = Tools.string2PointerChar(groupID);
  Pointer<Char> pPermissionGroupID = Tools.string2PointerChar(permissionGroupID);
  List<Map<String, dynamic>> jsonTopicPermissionList = Tools.map2JsonList(topicPermissionMap, 'topic_permission_key', 'topic_permission_value');
  Pointer<Char> pJsonTopicPermissionList = Tools.string2PointerChar(json.encode(jsonTopicPermissionList));
  Pointer<Void> pUserData = Tools.string2PointerVoid(userData);
  NativeLibraryManager.bindings.DartModifyTopicPermissionInPermissionGroup(pGroupID, pPermissionGroupID, pJsonTopicPermissionList, pUserData);

  return completer.future;
}