parseGuildTemplate method
Parse a GuildTemplate from raw
.
Implementation
GuildTemplate parseGuildTemplate(Map<String, Object?> raw) {
final sourceGuildId = Snowflake.parse(raw['source_guild_id']!);
return GuildTemplate(
code: raw['code'] as String,
manager: this,
name: raw['name'] as String,
description: raw['description'] as String?,
usageCount: raw['usage_count'] as int,
creatorId: Snowflake.parse(raw['creator_id']!),
creator: client.users.parse(raw['creator'] as Map<String, Object?>),
createdAt: DateTime.parse(raw['created_at'] as String),
updatedAt: DateTime.parse(raw['updated_at'] as String),
sourceGuildId: sourceGuildId,
// Add synthetic fields so we can parse the (mostly complete) partial guild as a full guild
serializedSourceGuild: parse({
'id': sourceGuildId.toString(),
'owner_id': Snowflake.zero.toString(),
'features': [],
'mfa_level': MfaLevel.none.value,
'premium_tier': PremiumTier.none.value,
'nsfw_level': NsfwLevel.unset.value,
'premium_progress_bar_enabled': false,
'emojis': [],
...(raw['serialized_source_guild'] as Map<String, Object?>),
'roles': [
for (final role in ((raw['serialized_source_guild'] as Map<String, Object?>)['roles'] as List).cast<Map<String, Object?>>())
{
'position': 0,
'flags': 0,
...role,
},
],
}),
isDirty: raw['is_dirty'] as bool?,
);
}