summaryrefslogtreecommitdiffstats
path: root/src/api.rs
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2024-04-11 22:44:07 -0500
committerToby Vincent <tobyv@tobyvin.dev>2024-04-11 23:51:19 -0500
commita20f3667a88affa0498e564cea17e9e795162bb8 (patch)
tree29797241f1bce86193a733f8cfdc49121f91ddad /src/api.rs
parent61acc1f6e418d1d6947658424115af994a2689dd (diff)
feat: impl auth and modularize routers
Diffstat (limited to 'src/api.rs')
-rw-r--r--src/api.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/api.rs b/src/api.rs
new file mode 100644
index 0000000..0a6b8e0
--- /dev/null
+++ b/src/api.rs
@@ -0,0 +1,45 @@
+use axum::{response::IntoResponse, routing::get};
+
+use crate::state::AppState;
+
+mod users;
+
+pub fn router(state: AppState) -> axum::Router {
+ axum::Router::new()
+ .merge(users::router())
+ .route("/healthcheck", get(healthcheck))
+ .with_state(state)
+}
+
+pub async fn healthcheck() -> impl IntoResponse {
+ "success"
+}
+
+#[cfg(test)]
+mod tests {
+ use crate::tests::{setup_test_env, TestResult};
+
+ use super::*;
+
+ use axum::{
+ body::Body,
+ http::{Request, StatusCode},
+ };
+ use sqlx::PgPool;
+ use tower::ServiceExt;
+
+ #[sqlx::test]
+ async fn test_healthcheck_ok(pool: PgPool) -> TestResult {
+ setup_test_env();
+
+ let router = router(AppState { pool });
+
+ let request = Request::builder().uri("/healthcheck").body(Body::empty())?;
+
+ let response = router.oneshot(request).await?;
+
+ assert_eq!(StatusCode::OK, response.status());
+
+ Ok(())
+ }
+}