fromJson static method
Returns a new ChannelConfig instance and imports its values from
value
if it's a Map, null otherwise.
Implementation
// ignore: prefer_constructors_over_static_methods
static ChannelConfig? fromJson(dynamic value) {
if (value is Map) {
final json = value.cast<String, dynamic>();
// Ensure that the map contains the required keys.
// Note 1: the values aren't checked for validity beyond being non-null.
// Note 2: this code is stripped in release mode!
assert(() {
requiredKeys.forEach((key) {
assert(json.containsKey(key), 'Required key "ChannelConfig[$key]" is missing from JSON.');
assert(json[key] != null, 'Required key "ChannelConfig[$key]" has a null value in JSON.');
});
return true;
}());
return ChannelConfig(
allowedFlagReasons: json[r'allowed_flag_reasons'] is Iterable
? (json[r'allowed_flag_reasons'] as Iterable).cast<String>().toList(growable: false)
: const [],
automod: ChannelConfigAutomodEnum.fromJson(json[r'automod'])!,
automodBehavior: ChannelConfigAutomodBehaviorEnum.fromJson(json[r'automod_behavior'])!,
automodThresholds: Thresholds.fromJson(json[r'automod_thresholds']),
blocklist: mapValueOfType<String>(json, r'blocklist'),
blocklistBehavior: ChannelConfigBlocklistBehaviorEnum.fromJson(json[r'blocklist_behavior']),
blocklists: BlockListOptions.listFromJson(json[r'blocklists']),
commands: json[r'commands'] is Iterable
? (json[r'commands'] as Iterable).cast<String>().toList(growable: false)
: const [],
connectEvents: mapValueOfType<bool>(json, r'connect_events')!,
createdAt: mapDateTime(json, r'created_at', r'')!,
customEvents: mapValueOfType<bool>(json, r'custom_events')!,
markMessagesPending: mapValueOfType<bool>(json, r'mark_messages_pending')!,
maxMessageLength: mapValueOfType<int>(json, r'max_message_length')!,
mutes: mapValueOfType<bool>(json, r'mutes')!,
name: mapValueOfType<String>(json, r'name')!,
partitionSize: mapValueOfType<int>(json, r'partition_size'),
partitionTtl: mapValueOfType<int>(json, r'partition_ttl'),
polls: mapValueOfType<bool>(json, r'polls')!,
pushNotifications: mapValueOfType<bool>(json, r'push_notifications')!,
quotes: mapValueOfType<bool>(json, r'quotes')!,
reactions: mapValueOfType<bool>(json, r'reactions')!,
readEvents: mapValueOfType<bool>(json, r'read_events')!,
reminders: mapValueOfType<bool>(json, r'reminders')!,
replies: mapValueOfType<bool>(json, r'replies')!,
search: mapValueOfType<bool>(json, r'search')!,
typingEvents: mapValueOfType<bool>(json, r'typing_events')!,
updatedAt: mapDateTime(json, r'updated_at', r'')!,
uploads: mapValueOfType<bool>(json, r'uploads')!,
urlEnrichment: mapValueOfType<bool>(json, r'url_enrichment')!,
);
}
return null;
}