working login system
This commit is contained in:
parent
908ead5b11
commit
f6db6992a0
@ -12,9 +12,6 @@ use crate::utils::api::ApiProps;
|
|||||||
use crate::commands::config;
|
use crate::commands::config;
|
||||||
use crate::commands::clone::get_url_props;
|
use crate::commands::clone::get_url_props;
|
||||||
use crate::services::request_manager::get_request_manager;
|
use crate::services::request_manager::get_request_manager;
|
||||||
use crate::services::api_call::ApiCall;
|
|
||||||
|
|
||||||
use super::login::Login;
|
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
static ref HTTP_TOKEN: Mutex<String> = Mutex::new(String::new());
|
static ref HTTP_TOKEN: Mutex<String> = Mutex::new(String::new());
|
||||||
@ -103,28 +100,17 @@ impl ApiBuilder {
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_auth(&mut self) -> &mut ApiBuilder {
|
pub fn set_token(&mut self, token: String) {
|
||||||
// check .config
|
match self.request.take() {
|
||||||
//let config_file = PathBuf::from("~/.nextsync/config");
|
None => {
|
||||||
//if config_file.exists() {
|
eprintln!("fatal: incorrect request");
|
||||||
//
|
std::process::exit(1);
|
||||||
//} else {
|
},
|
||||||
// let res = Login::new()
|
Some(req) => {
|
||||||
// .set_host(self.host.clone())
|
self.request = Some(req.bearer_auth(token));
|
||||||
// .ask_auth()
|
}
|
||||||
// .send_with_err();
|
}
|
||||||
|
self.auth_set = true;
|
||||||
// if let Err(err) = res {
|
|
||||||
// eprintln!("fatal: authentification failed");
|
|
||||||
// std::process::exit(1);
|
|
||||||
// }
|
|
||||||
|
|
||||||
//}
|
|
||||||
//// todo if not exist
|
|
||||||
//dotenv().ok();
|
|
||||||
//let password = env::var("PASSWORD").unwrap();
|
|
||||||
//let username = env::var("USERNAME").unwrap();
|
|
||||||
self
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_xml(&mut self, xml_payload: String) -> &mut ApiBuilder {
|
pub fn set_xml(&mut self, xml_payload: String) -> &mut ApiBuilder {
|
||||||
@ -174,22 +160,28 @@ impl ApiBuilder {
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn send(&mut self, need_text: bool) -> Result<Option<String>, ApiError> {
|
fn set_request_manager(&mut self) {
|
||||||
let mut request_manager = get_request_manager().lock().unwrap();
|
let mut request_manager = get_request_manager().lock().unwrap();
|
||||||
let request_manager = request_manager.as_mut().unwrap();
|
let request_manager = request_manager.as_mut().unwrap();
|
||||||
|
|
||||||
if !self.host.is_none()
|
if !self.host.is_none()
|
||||||
{
|
{
|
||||||
request_manager.set_host(self.host.clone().unwrap());
|
request_manager.set_host(self.host.clone().unwrap().replace("https://", ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
if !self.auth_set {
|
if !self.auth_set {
|
||||||
|
self.set_token(request_manager.get_token());
|
||||||
//self.set_auth();
|
//self.set_auth();
|
||||||
self.set_header("TOKEN", HeaderValue::from_str(&request_manager.get_token()).unwrap());
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn send(&mut self, need_text: bool) -> Result<Option<String>, ApiError> {
|
||||||
|
if !self.host.is_none() || !self.auth_set {
|
||||||
|
self.set_request_manager();
|
||||||
|
}
|
||||||
|
|
||||||
tokio::runtime::Runtime::new().unwrap().block_on(async {
|
let res = tokio::runtime::Runtime::new().unwrap().block_on(async {
|
||||||
let res = match self.request.take() {
|
match self.request.take() {
|
||||||
None => {
|
None => {
|
||||||
eprintln!("fatal: incorrect request");
|
eprintln!("fatal: incorrect request");
|
||||||
std::process::exit(1);
|
std::process::exit(1);
|
||||||
@ -197,16 +189,19 @@ impl ApiBuilder {
|
|||||||
Some(req) => {
|
Some(req) => {
|
||||||
if let Some(headers) = &self.headers {
|
if let Some(headers) = &self.headers {
|
||||||
req.headers(headers.clone())
|
req.headers(headers.clone())
|
||||||
.send().await.map_err(ApiError::RequestError)?
|
.send().await
|
||||||
} else {
|
} else {
|
||||||
req.send().await.map_err(ApiError::RequestError)?
|
req.send().await
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
}
|
||||||
|
}).map_err(ApiError::RequestError)?;
|
||||||
|
|
||||||
if res.status().is_success() {
|
if res.status().is_success() {
|
||||||
if need_text {
|
if need_text {
|
||||||
let body = res.text().await.map_err(|err| ApiError::EmptyError(err))?;
|
let body = tokio::runtime::Runtime::new().unwrap().block_on(async {
|
||||||
|
res.text().await
|
||||||
|
}).map_err(|err| ApiError::EmptyError(err))?;
|
||||||
Ok(Some(body))
|
Ok(Some(body))
|
||||||
} else {
|
} else {
|
||||||
Ok(None)
|
Ok(None)
|
||||||
@ -214,7 +209,6 @@ impl ApiBuilder {
|
|||||||
} else {
|
} else {
|
||||||
Err(ApiError::IncorrectRequest(res))
|
Err(ApiError::IncorrectRequest(res))
|
||||||
}
|
}
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn old_send(&mut self) -> Result<Response, Error> {
|
pub async fn old_send(&mut self) -> Result<Response, Error> {
|
||||||
@ -227,7 +221,7 @@ impl ApiBuilder {
|
|||||||
|
|
||||||
if !self.auth_set {
|
if !self.auth_set {
|
||||||
//self.set_auth();
|
//self.set_auth();
|
||||||
self.set_header("TOKEN", HeaderValue::from_str(&request_manager.get_token()).unwrap());
|
self.set_token(request_manager.get_token());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user