aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/api/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/routes/api/mod.rs')
-rw-r--r--server/src/routes/api/mod.rs24
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?)
+}