diff --git a/Cargo.lock b/Cargo.lock index 33b9250007983a0d0b84bcb792033f96c66e168f..e539c0ca5f3db25b696f21f8e3e46f9d4e82a314 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -592,8 +592,7 @@ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "schmfy" version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258529f4dfcece66eff7179d53246cdf5eab89acf586d76ec129b13ab827f0c" +source = "git+https://gitlab.fachschaften.org/skadic/schmfy#2a7a7768c6377d03cd59d5e7a661d89957e5868e" [[package]] name = "schmfy_express" diff --git a/Cargo.toml b/Cargo.toml index bfb8982ab49e5e021732b77d7b964676030aa02b..52797104908ef7062431f43fc3f1e937b493a51c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "schmfy_express" -version = "0.2.0" +version = "0.2.1" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -10,7 +10,7 @@ axum = "0.7.5" dotenvy = "0.15.7" futures = "0.3.30" miette = { version = "7.2.0", features = ["fancy"] } -schmfy = "0.2.1" +schmfy = { git = "https://gitlab.fachschaften.org/skadic/schmfy"} serde = { version = "1.0.200", features = ["derive"] } tokio = { version = "1.37.0", features = ["rt-multi-thread", "macros", "signal"] } tracing = "0.1.40" diff --git a/src/main.rs b/src/main.rs index cb32bbbe9bd93d6b006fa34143c2179982a1b8c5..9062108996fc33af3b6d1ddbea4cb154748be1c1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -use axum::{extract::Query, response::Html, routing::get, Router}; +use axum::{extract::Query, response::Html, routing::get, Json, Router}; use dotenvy::dotenv; use miette::{Context, IntoDiagnostic}; use std::net::Ipv4Addr; @@ -18,7 +18,7 @@ async fn main() -> miette::Result<()> { } let router = Router::<()>::new() .route("/", get(home)) - .route("/schmfy", get(schmfy)); + .route("/schmfy", get(schmfy).post(schmfy_post)); let address = std::env::var(SCHMFY_HOST) .into_diagnostic() @@ -64,6 +64,10 @@ async fn schmfy(Query(Input { input }): Query<Input>) -> String { schmfy::schmfy(input.as_str()) } +async fn schmfy_post(Json(Input { input }): Json<Input>) -> String { + schmfy::schmfy(input.as_str()) +} + async fn shutdown_signal() { let ctrl_c = async { signal::ctrl_c()