diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2022-10-21 17:53:20 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2022-10-21 17:53:20 +0200 |
commit | ad92a218c34a08d33cd82ed2c339276b663e0060 (patch) | |
tree | 0badca1a247922ba95cfa710dab5d151d33cb960 | |
parent | e524ba7744f74856645e081f77d3ba9c09c862ca (diff) |
add login call
-rw-r--r-- | Cargo.toml | 1 | ||||
-rw-r--r-- | src/call/account.rs | 20 | ||||
-rw-r--r-- | src/call/mod.rs | 1 | ||||
-rw-r--r-- | src/lib.rs | 1 |
4 files changed, 23 insertions, 0 deletions
@@ -8,3 +8,4 @@ edition = "2021" [dependencies] reqwest = { version = "0.11", features = ["blocking", "cookies"] } url = "2.2.2" +xmlrpc = "0.15.1" diff --git a/src/call/account.rs b/src/call/account.rs new file mode 100644 index 0000000..c2434a7 --- /dev/null +++ b/src/call/account.rs @@ -0,0 +1,20 @@ +use std::collections::BTreeMap; + +// Contains login information. Used to create an API session. +pub(crate) struct Login<'a> { + pub(crate) user: &'a str, + pub(crate) pass: &'a str, + pub(crate) case_insensitive: bool, +} + +impl From<Login<'_>> for xmlrpc::Value { + fn from(login: Login<'_>) -> Self { + let mut map = BTreeMap::new(); + + map.insert("user".into(), login.user.into()); + map.insert("pass".into(), login.pass.into()); + map.insert("case-insensitive".into(), login.case_insensitive.into()); + + xmlrpc::Value::Struct(map) + } +} diff --git a/src/call/mod.rs b/src/call/mod.rs new file mode 100644 index 0000000..b0edc6c --- /dev/null +++ b/src/call/mod.rs @@ -0,0 +1 @@ +pub mod account; @@ -1,3 +1,4 @@ +pub mod call; pub mod client; pub mod error; |