store token

This commit is contained in:
grimhilt
2023-10-24 15:32:51 +02:00
parent c6cf8a9730
commit f4a905c57f
3 changed files with 68 additions and 4 deletions

View File

@@ -35,7 +35,6 @@ impl ApiCall for Login {
},
None => "/ocs/v2.php/core/getapppassword".to_owned(),
};
dbg!(url.clone());
self.api_builder.set_url(Method::GET, &url);
self.api_builder.set_header("OCS-APIRequest", HeaderValue::from_str("true").unwrap());
self.api_builder.set_basic_auth(self.login.clone(), self.password.clone());
@@ -88,8 +87,8 @@ impl Login {
return text.clone();
}
}
Ok(XmlEvent::EndElement { name, .. }) => {
}
//Ok(XmlEvent::EndElement { name, .. }) => {
//}
Err(e) => {
eprintln!("err: parsing xml: {}", e);
break;

View File

@@ -3,6 +3,7 @@ use std::sync::Mutex;
use crate::services::login::Login;
use crate::commands::config;
use crate::store::gconfig;
use crate::commands::clone::get_url_props;
use crate::services::api_call::ApiCall;
@@ -55,14 +56,24 @@ impl RequestManager {
pub fn get_token(&mut self) -> String {
if self.token.is_none() {
// todo check in config
if let Some(token) = gconfig::read_token() {
if !token.is_empty() {
self.token = Some(token);
return self.token.clone().unwrap();
}
}
let get_token = Login::new()
.ask_auth()
.set_host(Some(self.get_host()))
.send_login();
// todo deal with error cases
self.token = Some(get_token.unwrap());
if let Err(err) = gconfig::write_token(&self.token.clone().unwrap()) {
eprintln!("err: failed to write token ({})", err);
}
}
self.token.clone().unwrap()
}