subscribeForRelationsChanges<T> static method

Future<RTSubscription?> subscribeForRelationsChanges<T>(
  1. String event,
  2. String tableName,
  3. String relationColumnName,
  4. void callback(
    1. T? response
    ), {
  5. String? whereClause,
  6. List<String>? parentObjectIds,
})

Implementation

static Future<RTSubscription?> subscribeForRelationsChanges<T>(
    String event,
    String tableName,
    String relationColumnName,
    void Function(T? response) callback,
    {String? whereClause,
    List<String>? parentObjectIds}) async {
  if (RTListener.clientNull ?? true) {
    clientInstance = RTClient<T>._();
    RTListener.clientNull = false;
  }

  if (!clientInstance!.socketConnected) {
    await clientInstance?.connectSocket(() {});
  }

  var options = <String, dynamic>{
    'tableName': tableName,
    'event': event,
    'relationColumnName': relationColumnName
  };

  if (parentObjectIds?.isNotEmpty ?? false) {
    options['parentObjectIds'] = parentObjectIds!;
  }

  if (whereClause?.isNotEmpty ?? false) options['whereClause'] = whereClause!;

  var subscription = await clientInstance?.createSubscription<T>(
      SubscriptionNames.RELATIONS_CHANGES.toShortString(), options, callback);

  return subscription;
}