From 1c2ab9e7686d6deb054d1fd84c0a96a318b0a157 Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 13 Feb 2020 23:12:51 +0000 Subject: [PATCH] Fix r0::session::get_login_types::Response The previous version was expecting one level of nesting too many, i.e.: {"type": {"type": "m.login.password"}} This is a breaking change, so bump the version number too. --- CHANGELOG.md | 4 ++++ src/r0/session/get_login_types.rs | 25 +++++++++++++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fc9a730..f13b2663 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # [unreleased] +Breaking changes: + +* Fix `r0::session::get_login_types` + # 0.6.0 Breaking changes: diff --git a/src/r0/session/get_login_types.rs b/src/r0/session/get_login_types.rs index ba891343..764a3b25 100644 --- a/src/r0/session/get_login_types.rs +++ b/src/r0/session/get_login_types.rs @@ -17,19 +17,11 @@ ruma_api! { response { /// The homeserver's supported login types. - pub flows: Vec + pub flows: Vec } } -/// A supported login type in a homeserver -#[derive(Clone, Copy, Debug, Deserialize, Serialize)] -pub struct LoginFlow { - /// The login type. - #[serde(rename = "type")] - pub login_type: LoginType, -} - -/// The authentication mechanism. +/// An authentication mechanism. #[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize, Serialize)] #[serde(tag = "type")] pub enum LoginType { @@ -40,3 +32,16 @@ pub enum LoginType { #[serde(rename = "m.login.token")] Token, } + +#[cfg(test)] +mod tests { + use super::LoginType; + + #[test] + fn deserialize_login_type() { + assert_eq!( + serde_json::from_str::(r#" {"type": "m.login.password"} "#).unwrap(), + LoginType::Password, + ); + } +}