diff --git a/Cargo.lock b/Cargo.lock index 68df004..46554eb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -282,9 +282,9 @@ dependencies = [ [[package]] name = "axum-login" -version = "0.15.3" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4012877d9672b7902aa6567960208756f68a09de81e988fa18fe369e92f90471" +checksum = "5260ed0ecc8ace8e7e61a7406672faba598c8a86b8f4742fcdde0ddc979a318f" dependencies = [ "async-trait", "axum", @@ -314,9 +314,9 @@ dependencies = [ [[package]] name = "axum-valid" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf153a7451ae5606afd0262c06fc4d58517b70fdce82776e401281c76383170a" +checksum = "a4e346f07620b4cf0a81c8fa3157b7d3034517c28e8b215c8da49ed75d7cd05c" dependencies = [ "axum", "validator", @@ -769,9 +769,9 @@ dependencies = [ [[package]] name = "diesel_async_migrations" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b92dd60c54ac548b3a001a040e92abdca9b55c68136c8a641ef776dfeb133a52" +checksum = "b99915cbb9455e8fd56f12edc58f92bbdf8161e4363cb2000cf4308aa6358ff4" dependencies = [ "diesel", "diesel-async", @@ -1511,7 +1511,10 @@ version = "1.4.3" dependencies = [ "axum", "chrono", + "deadpool-diesel", "derive_more", + "diesel", + "diesel-async", "diesel-crud-derive", "diesel-crud-trait", "into-response-derive", @@ -2562,9 +2565,9 @@ checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" [[package]] name = "testcontainers" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f7d80fe0008971413157e67062150cbf508b92f0eb525b9f49de1aec4267f24" +checksum = "2ef8374cea2c164699681ecc39316c3e1d953831a7a5721e36c7736d974e15fa" dependencies = [ "async-trait", "bollard", @@ -2590,9 +2593,9 @@ dependencies = [ [[package]] name = "testcontainers-modules" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "868e8e818fe37b8ed4c21ac72185206b48e8767b5ad3836d7ec0e5c9386e19a2" +checksum = "359d9a225791e1b9f60aab01f9ae9471898b9b9904b5db192104a71e96785079" dependencies = [ "testcontainers", ] @@ -2675,9 +2678,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.3" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", @@ -2867,9 +2870,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tower-sessions" -version = "0.12.3" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50571505955aaa8b73f2f40489953d92b4d7ff9eb9b2a8b4e11fee0dcdb2760e" +checksum = "65856c81ee244e0f8a55ab0f7b769b72fbde387c235f0a73cd97c579818d05eb" dependencies = [ "async-trait", "http", @@ -2885,9 +2888,9 @@ dependencies = [ [[package]] name = "tower-sessions-core" -version = "0.12.3" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6293bf33f1977d5ef422c2e02f909eb2c3d7bf921d93557c40d4f1b130b84aa4" +checksum = "fb6abbfcaf6436ec5a772cd9f965401da12db793e404ae6134eac066fa5a04f3" dependencies = [ "async-trait", "axum-core", @@ -2906,9 +2909,9 @@ dependencies = [ [[package]] name = "tower-sessions-memory-store" -version = "0.12.3" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec5f88eeef0f036e6900217034efbce733cbdf0528a85204eaaed90bc34c354" +checksum = "7fad75660c8afbe74f4e7cbbe8e9090171a056b57370ea4d7d5e9eb3e4af3092" dependencies = [ "async-trait", "time", diff --git a/Cargo.toml b/Cargo.toml index ab09b8c..8996b1f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,11 +7,11 @@ edition = "2021" # API axum = { version = "0.7.5", features = ["macros"] } # Async -tokio = { version = "1.39.2", features = ["rt-multi-thread"] } +tokio = { version = "1.40", features = ["rt-multi-thread"] } futures = "0.3.30" # Auth -axum-login = "0.15.3" -tower-sessions = { version = "0.12.3", features = ["axum-core"] } +axum-login = "0.16.0" +tower-sessions = { version = "0.13.0", features = ["axum-core"] } # Cryptography sha2 = "0.10.8" digest = "0.10.7" @@ -39,16 +39,16 @@ bon = "2.0.0" # Validation validator = { version = "0.18.1", features = ["derive"] } -axum-valid = { version = "0.19.0", features = ["validator"] } +axum-valid = { version = "0.20.0", features = ["validator"] } lib = { path = "../lib", features = ["axum", "serde", "derive", "diesel", "time"] } #lib = { git = "https://github.com/emberal/rust-lib", tag = "1.4.3", features = ["axum", "serde", "derive"] } [dev-dependencies] rstest = "0.22.0" -testcontainers-modules = { version = "0.9.0", features = ["postgres"] } +testcontainers-modules = { version = "0.10.0", features = ["postgres"] } async-std = { version = "1.12.0", features = ["attributes"] } tower = { version = "0.5.0", features = ["util"] } mime = "0.3.17" -diesel_async_migrations = "0.14.0" +diesel_async_migrations = "0.15.0" hyper = "1.4.1" diff --git a/src/main.rs b/src/main.rs index 4976de5..aadd46b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -39,6 +39,7 @@ where let auth_layer = AuthManagerLayerBuilder::new(user_service.clone(), session_layer).build(); AppBuilder::new() .routes([ + routes::router(), routes::hotel::router() .with_state(pool.clone()) .login_required::(), diff --git a/src/routes/mod.rs b/src/routes/mod.rs index ef262ea..c2df5c4 100644 --- a/src/routes/mod.rs +++ b/src/routes/mod.rs @@ -1,6 +1,25 @@ +use lib::{router, routes}; + pub mod auth; pub mod hotel; pub mod reservation; pub mod room; pub mod task; pub mod user; + +router! { + "/", + routes! { + get "/" => home, + get "/health" => health, + } +} + +async fn home() -> &'static str { + "Hello, World!" // TODO inform the user about the API +} + +/// Health check endpoint +async fn health() -> &'static str { + "OK" +}