types.rs (2122B)
1 pub mod create_room; 2 3 use arbitrary::Arbitrary; 4 use fuzzcheck::DefaultMutator; 5 use serde::{Deserialize, Serialize}; 6 7 #[derive(Debug, Serialize, Deserialize)] 8 pub struct LoginGet { 9 pub flows: Vec<Flow>, 10 } 11 12 #[derive(Debug, Serialize, Deserialize, PartialEq, Eq)] 13 pub struct Flow { 14 #[serde(rename = "type")] 15 pub type_: String, 16 } 17 18 #[derive(Debug, Serialize, Deserialize)] 19 pub struct LoginPost { 20 pub user_id: String, 21 pub access_token: String, 22 pub home_server: String, 23 } 24 25 #[derive(Debug, Clone, Serialize, Deserialize, DefaultMutator, Arbitrary)] 26 pub struct LoginPostReq { 27 #[serde(skip_serializing_if = "Option::is_none")] 28 pub address: Option<String>, 29 #[serde(skip_serializing_if = "Option::is_none")] 30 pub device_id: Option<String>, 31 #[serde(skip_serializing_if = "Option::is_none")] 32 pub identifier: Option<Identifier>, 33 #[serde(skip_serializing_if = "Option::is_none")] 34 pub initial_device_display_name: Option<String>, 35 #[serde(skip_serializing_if = "Option::is_none")] 36 pub medium: Option<String>, 37 //#[serde(skip_serializing_if = "Option::is_none")] 38 //pub password: Option<String>, 39 #[serde(skip_serializing_if = "Option::is_none")] 40 pub refresh_token: Option<bool>, 41 // We assume token login where this is a required field 42 pub token: String, 43 #[serde(rename = "type")] 44 pub _type: String, 45 #[serde(skip_serializing_if = "Option::is_none")] 46 pub user: Option<String>, 47 } 48 49 #[derive(Debug, Clone, Serialize, Deserialize, DefaultMutator, Arbitrary)] 50 pub struct Identifier { 51 #[serde(rename = "type")] 52 pub _type: String, 53 // We assume password login or token login where this is a required field 54 pub user: String, 55 #[serde(skip_serializing_if = "Option::is_none")] 56 pub medium: Option<String>, 57 #[serde(skip_serializing_if = "Option::is_none")] 58 pub address: Option<String>, 59 #[serde(skip_serializing_if = "Option::is_none")] 60 pub country: Option<String>, 61 #[serde(skip_serializing_if = "Option::is_none")] 62 pub phone: Option<String>, 63 }