1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
use crate::core::engine::Engine; use crate::http::path::Path; use serde_json::{Value, Result}; pub struct BasicAuth <'a> { pub engine: &'a mut Engine, pub username: String, pub password: String, } impl <'a> BasicAuth <'a> { pub fn new(engine: &'a mut Engine) -> Self { BasicAuth { engine: engine, username: "".to_owned(), password: "".to_owned(), } } pub fn username(&mut self, username: String) -> &mut Self { self.username = username; self } pub fn password(&mut self, password: String) -> &mut Self { self.password = password; self } pub fn auth(&mut self) -> Result<Value> { let path = Path::new().slash(&"users".to_owned()).slash(&self.username).ok(); self.engine.engine.username(&self.username).unwrap(); self.engine.engine.password(&self.password).unwrap(); self.engine.get(&path) } }