diff options
Diffstat (limited to 'server/src/routes/api/mod.rs')
-rw-r--r-- | server/src/routes/api/mod.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/server/src/routes/api/mod.rs b/server/src/routes/api/mod.rs index b39950c..84dd6a8 100644 --- a/server/src/routes/api/mod.rs +++ b/server/src/routes/api/mod.rs @@ -9,6 +9,7 @@ use super::ui::{ error::MyResult, }; use crate::database::Database; +use reqwest::Client; use rocket::{get, post, response::Redirect, serde::json::Json, State}; use serde_json::{json, Value}; @@ -27,3 +28,26 @@ pub fn r_api_account_login(database: &State<Database>, data: Json<LoginForm>) -> let token = login_logic(database, &data.username, &data.password)?; Ok(json!(token)) } +pub async fn c_api_account_login( + host: &str, + tls: bool, + username: String, + password: String, + expire: u64, +) -> MyResult<String> { + Ok(Client::builder() + .build()? + .post(format!( + "{}://{host}/api/account/login", + if tls { "https" } else { "http" } + )) + .body(serde_json::to_string(&LoginForm { + expire, + password, + username, + })?) + .send() + .await? + .json() + .await?) +} |