parseOnboardingPromptOption method

OnboardingPromptOption parseOnboardingPromptOption(
  1. Map<String, Object?> raw,
  2. {Snowflake? guildId}
)

Parse an OnboardingPromptOption from raw.

Implementation

OnboardingPromptOption parseOnboardingPromptOption(Map<String, Object?> raw, {Snowflake? guildId}) {
  Emoji? emoji;
  final rawEmoji = raw['emoji'] as Map<String, Object?>;

  // Discord passes an "empty" emoji object when unset instead of null
  if (rawEmoji['id'] != null || rawEmoji['name'] != null) {
    emoji = client.guilds[guildId ?? Snowflake.zero].emojis.parse(raw['emoji'] as Map<String, Object?>);
  }

  return OnboardingPromptOption(
    manager: this,
    id: Snowflake.parse(raw['id']!),
    channelIds: parseMany(raw['channel_ids'] as List, Snowflake.parse),
    roleIds: parseMany(raw['role_ids'] as List, Snowflake.parse),
    emoji: emoji,
    title: raw['title'] as String,
    description: raw['description'] as String?,
  );
}