updateConsumingDomains function

void updateConsumingDomains(
  1. UpdateConsumingDomainsOptions options
)

Updates consuming domains based on the provided options.

This function updates consuming domains by invoking getDomains and connectIps functions based on the provided parameters.

@param UpdateConsumingDomainsOptions options - The options for updating consuming domains.

  • domains: List of primary domains.
  • altDomains: Alternative domains map.
  • apiUserName: API username for authorization.
  • apiKey: API key for secure access.
  • apiToken: API token for secure access.
  • parameters: UpdateConsumingDomainsParameters instance with required parameters and functions.

Example usage:

final options = UpdateConsumingDomainsOptions(
  domains: ["domain1.com", "domain2.com"],
  altDomains: AltDomains(altDomains: {"domain1.com": ["alt1.com"]}),
  apiUserName: "myApiUser",
  apiKey: "myApiKey",
  apiToken: "myApiToken",
  parameters: UpdateConsumingDomainsParameters(
    participants: [Participant(id: "user1", name: "User 1")],
    consumeSockets: [ConsumeSocket(id: "socket1", isConnected: true)],
    connectIps: (options) async => print("Connecting IPs"),
    getDomains: (options) async => print("Getting Domains"),
  ),
);
await updateConsumingDomains(options);

Implementation

void updateConsumingDomains(UpdateConsumingDomainsOptions options) async {
  try {
    // Access latest parameters
    final updatedParams = options.parameters.getUpdatedAllParams();

    // Check if participants list is non-empty
    if (updatedParams.participants.isNotEmpty) {
      // Check if altDomains has entries
      if (options.altDomains.altDomains.isNotEmpty) {
        final optionsGet = GetDomainsOptions(
          domains: options.domains,
          altDomains: options.altDomains,
          apiUserName: options.apiUserName,
          apiKey: options.apiKey,
          apiToken: options.apiToken,
          parameters: updatedParams,
        );
        await updatedParams.getDomains(
          optionsGet,
        );
      } else {
        final optionsConnect = ConnectIpsOptions(
          consumeSockets: updatedParams.consumeSockets,
          remIP: options.domains,
          apiUserName: options.apiUserName,
          apiKey: options.apiKey,
          apiToken: options.apiToken,
          parameters: updatedParams,
        );
        await updatedParams.connectIps(
          optionsConnect,
        );
      }
    }
  } catch (error) {
    if (kDebugMode) {
      print("Error in updateConsumingDomains: $error");
    }
  }
}