createMetaData method

Future<Map<String, String>> createMetaData(
  1. Map<String, String> metaData
)

Creates meta data. This can be used to customize the channel.

Implementation

Future<Map<String, String>> createMetaData(
  Map<String, String> metaData,
) async {
  sbLog.i(StackTrace.current, 'metaData: $metaData');
  checkUnsupportedAction();

  if (metaData.isEmpty) {
    throw InvalidParameterException();
  }

  final result = await chat.apiClient.send<MetaDataResponse>(
    ChannelMetaDataCreateRequest(
      chat,
      channelType: channelType,
      channelUrl: channelUrl,
      metaData: metaData,
    ),
  );

  final cachedMetaData =
      chat.channelCache.find<MetaDataCache>(channelKey: channelUrl) ??
          MetaDataCache<String>(
            channelType: channelType,
            channelUrl: channelUrl,
            timestamp: result.ts,
          );
  cachedMetaData.addMap(result.metadata, result.ts);
  cachedMetaData.saveToCache(chat);

  return result.metadata;
}