Skip to content

Commit

Permalink
Add support for the preferred_locale field (#701)
Browse files Browse the repository at this point in the history
Closes #696
  • Loading branch information
Erk- authored and arqunis committed Aug 30, 2019
1 parent 445810f commit 2d3e585
Show file tree
Hide file tree
Showing 9 changed files with 26 additions and 11 deletions.
1 change: 1 addition & 0 deletions src/cache/mod.rs
Expand Up @@ -1007,6 +1007,7 @@ mod test {
premium_subscription_count: 0,
banner: None,
vanity_url_code: Some("bruhmoment".to_string()),
preferred_locale: "en-US".to_string(),
_nonexhaustive: (),
},
_nonexhaustive: (),
Expand Down
17 changes: 13 additions & 4 deletions src/model/guild/mod.rs
Expand Up @@ -152,16 +152,19 @@ pub struct Guild {
pub voice_states: HashMap<UserId, VoiceState>,
/// The server's description
pub description: Option<String>,
/// The server's premium boosting level
/// The server's premium boosting level.
#[serde(default)]
pub premium_tier: PremiumTier,
/// The total number of users currently boosting this server
/// The total number of users currently boosting this server.
#[serde(default)]
pub premium_subscription_count: u64,
/// The server's banner
/// The server's banner.
pub banner: Option<String>,
/// The vanity url code for the guild
/// The vanity url code for the guild.
pub vanity_url_code: Option<String>,
/// The preferred locale of this guild only set if guild has the "DISCOVERABLE"
/// feature, defaults to en-US.
pub preferred_locale: String,
#[serde(skip)]
pub(crate) _nonexhaustive: (),
}
Expand Down Expand Up @@ -1848,6 +1851,10 @@ impl<'de> Deserialize<'de> for Guild {
Some(v) => Option::<String>::deserialize(v).map_err(DeError::custom)?,
None => None,
};
let preferred_locale = map.remove("preferred_locale")
.ok_or_else(|| DeError::custom("expected preferred locale"))
.and_then(String::deserialize)
.map_err(DeError::custom)?;

Ok(Self {
afk_channel_id,
Expand Down Expand Up @@ -1879,6 +1886,7 @@ impl<'de> Deserialize<'de> for Guild {
premium_subscription_count,
banner,
vanity_url_code,
preferred_locale,
_nonexhaustive: (),
})
}
Expand Down Expand Up @@ -2310,6 +2318,7 @@ mod test {
premium_subscription_count: 12,
banner: None,
vanity_url_code: Some("bruhmoment".to_string()),
preferred_locale: "en-US".to_string(),
_nonexhaustive: (),
}
}
Expand Down
1 change: 1 addition & 0 deletions src/utils/mod.rs
Expand Up @@ -922,6 +922,7 @@ mod test {
premium_subscription_count: 0,
banner: None,
vanity_url_code: Some("bruhmoment1".to_string()),
preferred_locale: "en-US".to_string(),
_nonexhaustive: (),
};

Expand Down
3 changes: 2 additions & 1 deletion tests/resources/guild_-1_role_position.json
Expand Up @@ -271,5 +271,6 @@
"description": "Hmmmmmmmmm",
"premium_tier": 0,
"premium_subscription_count": 0,
"banner": null
"banner": null,
"preferred_locale": "en-US"
}
2 changes: 1 addition & 1 deletion tests/resources/guild_create_1.json

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions tests/resources/guild_create_2.json
Expand Up @@ -28,5 +28,6 @@
"description": "Hmmmmmmmmm",
"premium_tier": 0,
"premium_subscription_count": 0,
"banner": null
}
"banner": null,
"preferred_locale": "en-US"
}
3 changes: 2 additions & 1 deletion tests/resources/guild_create_features.json
Expand Up @@ -32,5 +32,6 @@
"description": "Hmmmmmmmmm",
"premium_tier": 0,
"premium_subscription_count": 0,
"banner": null
"banner": null,
"preferred_locale" : "en-US"
}
2 changes: 1 addition & 1 deletion tests/resources/guild_some_application_id.json
@@ -1 +1 @@
{"afk_channel_id":null,"afk_timeout":300,"application_id":"245571012924538880","channels":[{"guild_id":334866293213888514,"id":"334866293213888514","last_message_id":"334866823763722242","name":"general","permission_overwrites":[],"position":0,"topic":null,"type":0},{"bitrate":64000,"guild_id":334866293213888514,"id":"334866293213888515","name":"General","permission_overwrites":[],"position":0,"type":2,"user_limit":0}],"default_message_notifications":0,"emojis":[],"explicit_content_filter":0,"features":[],"icon":null,"id":"334866293213888514","joined_at":"2017-07-13T01:19:05.876000+00:00","large":false,"member_count":1,"members":[{"deaf":false,"guild_id":334866293213888514,"joined_at":"2017-07-13T01:19:05.876000+00:00","mute":false,"roles":[],"user":{"avatar":"96fd89e899fbb203b9851df3e7dcbf5d","bot":true,"discriminator":"9653","id":"245571012924538880","username":"nano"}}],"mfa_level":0,"name":"helo","owner_id":"245571012924538880","presences":[{"game":{"name":"nano help [1/1]","type":0},"status":"online","user":{"id":"245571012924538880"}}],"region":"eu-central","roles":[{"color":0,"hoist":false,"id":"334866293213888514","managed":false,"mentionable":false,"name":"@everyone","permissions":104324161,"position":0}],"splash":null,"system_channel_id":null,"verification_level":0,"voice_states":[], "description": "Hmmmmmmmmm", "premium_tier": 0, "premium_subscription_count": 0, "banner": null}
{"afk_channel_id":null,"afk_timeout":300,"application_id":"245571012924538880","channels":[{"guild_id":334866293213888514,"id":"334866293213888514","last_message_id":"334866823763722242","name":"general","permission_overwrites":[],"position":0,"topic":null,"type":0},{"bitrate":64000,"guild_id":334866293213888514,"id":"334866293213888515","name":"General","permission_overwrites":[],"position":0,"type":2,"user_limit":0}],"default_message_notifications":0,"emojis":[],"explicit_content_filter":0,"features":[],"icon":null,"id":"334866293213888514","joined_at":"2017-07-13T01:19:05.876000+00:00","large":false,"member_count":1,"members":[{"deaf":false,"guild_id":334866293213888514,"joined_at":"2017-07-13T01:19:05.876000+00:00","mute":false,"roles":[],"user":{"avatar":"96fd89e899fbb203b9851df3e7dcbf5d","bot":true,"discriminator":"9653","id":"245571012924538880","username":"nano"}}],"mfa_level":0,"name":"helo","owner_id":"245571012924538880","presences":[{"game":{"name":"nano help [1/1]","type":0},"status":"online","user":{"id":"245571012924538880"}}],"region":"eu-central","roles":[{"color":0,"hoist":false,"id":"334866293213888514","managed":false,"mentionable":false,"name":"@everyone","permissions":104324161,"position":0}],"splash":null,"system_channel_id":null,"verification_level":0,"voice_states":[], "description": "Hmmmmmmmmm", "premium_tier": 0, "premium_subscription_count": 0, "banner": null, "preferred_locale": "en-US"}
3 changes: 2 additions & 1 deletion tests/resources/guild_system_channel_id_missing.json
Expand Up @@ -23,5 +23,6 @@
"description": "Hmmmmmmmmm",
"premium_tier": 0,
"premium_subscription_count": 0,
"banner": null
"banner": null,
"preferred_locale": "en-US"
}

0 comments on commit 2d3e585

Please sign in to comment.