bindClientToProvider method

void bindClientToProvider(
  1. String clientId,
  2. String providerName, {
  3. DomainConfiguration? config,
  4. String? parentDomainId,
})

Implementation

void bindClientToProvider(
  String clientId,
  String providerName, {
  DomainConfiguration? config,
  String? parentDomainId,
}) {
  final domainConfig = config ?? DomainConfiguration(name: clientId);

  if (!domainConfig.validate()) {
    throw DomainValidationException('Invalid domain configuration');
  }

  Domain? parentDomain;
  if (parentDomainId != null) {
    parentDomain = _domains[parentDomainId];
    if (parentDomain == null) {
      throw DomainValidationException('Parent domain not found');
    }
  }

  final domain = Domain(
    clientId,
    providerName,
    config: domainConfig,
    parent: parentDomain,
  );

  _domains[clientId] = domain;
  _clientDomainBindings[clientId] = providerName;
  _domainUpdates.add(domain);
}