diff options
Diffstat (limited to 'src/invite')
| -rw-r--r-- | src/invite/handlers/accept/mod.rs (renamed from src/invite/routes/invite/post.rs) | 7 | ||||
| -rw-r--r-- | src/invite/handlers/accept/test.rs (renamed from src/invite/routes/invite/test/post.rs) | 30 | ||||
| -rw-r--r-- | src/invite/handlers/get/mod.rs (renamed from src/invite/routes/invite/get.rs) | 7 | ||||
| -rw-r--r-- | src/invite/handlers/get/test.rs (renamed from src/invite/routes/invite/test/get.rs) | 12 | ||||
| -rw-r--r-- | src/invite/handlers/issue/mod.rs (renamed from src/invite/routes/post.rs) | 3 | ||||
| -rw-r--r-- | src/invite/handlers/issue/test.rs (renamed from src/invite/routes/test.rs) | 5 | ||||
| -rw-r--r-- | src/invite/handlers/mod.rs | 9 | ||||
| -rw-r--r-- | src/invite/mod.rs | 2 | ||||
| -rw-r--r-- | src/invite/routes/invite/mod.rs | 6 | ||||
| -rw-r--r-- | src/invite/routes/invite/test/mod.rs | 2 | ||||
| -rw-r--r-- | src/invite/routes/mod.rs | 4 |
11 files changed, 44 insertions, 43 deletions
diff --git a/src/invite/routes/invite/post.rs b/src/invite/handlers/accept/mod.rs index 58d15c2..0d5f08a 100644 --- a/src/invite/routes/invite/post.rs +++ b/src/invite/handlers/accept/mod.rs @@ -8,17 +8,20 @@ use crate::{ app::App, clock::RequestedAt, error::{Internal, NotFound}, - invite::app, + invite::{app, handlers::PathInfo}, name::Name, token::extract::IdentityCookie, user::{Password, User}, }; +#[cfg(test)] +mod test; + pub async fn handler( State(app): State<App>, RequestedAt(accepted_at): RequestedAt, identity: IdentityCookie, - Path(invite): Path<super::PathInfo>, + Path(invite): Path<PathInfo>, Json(request): Json<Request>, ) -> Result<(IdentityCookie, Json<User>), Error> { let (login, secret) = app diff --git a/src/invite/routes/invite/test/post.rs b/src/invite/handlers/accept/test.rs index b204b32..cb13900 100644 --- a/src/invite/routes/invite/test/post.rs +++ b/src/invite/handlers/accept/test.rs @@ -1,10 +1,6 @@ use axum::extract::{Json, Path, State}; -use crate::{ - invite::{app::AcceptError, routes::invite::post}, - name::Name, - test::fixtures, -}; +use crate::{invite::app::AcceptError, name::Name, test::fixtures}; #[tokio::test] async fn valid_invite() { @@ -18,11 +14,11 @@ async fn valid_invite() { let (name, password) = fixtures::user::propose(); let identity = fixtures::cookie::not_logged_in(); - let request = post::Request { + let request = super::Request { name: name.clone(), password: password.clone(), }; - let (identity, Json(response)) = post::handler( + let (identity, Json(response)) = super::handler( State(app.clone()), fixtures::now(), identity, @@ -70,11 +66,11 @@ async fn nonexistent_invite() { let (name, password) = fixtures::user::propose(); let identity = fixtures::cookie::not_logged_in(); - let request = post::Request { + let request = super::Request { name: name.clone(), password: password.clone(), }; - let post::Error(error) = post::handler( + let super::Error(error) = super::handler( State(app.clone()), fixtures::now(), identity, @@ -106,11 +102,11 @@ async fn expired_invite() { let (name, password) = fixtures::user::propose(); let identity = fixtures::cookie::not_logged_in(); - let request = post::Request { + let request = super::Request { name: name.clone(), password: password.clone(), }; - let post::Error(error) = post::handler( + let super::Error(error) = super::handler( State(app.clone()), fixtures::now(), identity, @@ -143,11 +139,11 @@ async fn accepted_invite() { let (name, password) = fixtures::user::propose(); let identity = fixtures::cookie::not_logged_in(); - let request = post::Request { + let request = super::Request { name: name.clone(), password: password.clone(), }; - let post::Error(error) = post::handler( + let super::Error(error) = super::handler( State(app.clone()), fixtures::now(), identity, @@ -186,11 +182,11 @@ async fn conflicting_name() { let password = fixtures::user::propose_password(); let identity = fixtures::cookie::not_logged_in(); - let request = post::Request { + let request = super::Request { name: conflicting_name.clone(), password: password.clone(), }; - let post::Error(error) = post::handler( + let super::Error(error) = super::handler( State(app.clone()), fixtures::now(), identity, @@ -220,11 +216,11 @@ async fn invalid_name() { let name = fixtures::user::propose_invalid_name(); let password = fixtures::user::propose_password(); let identity = fixtures::cookie::not_logged_in(); - let request = post::Request { + let request = super::Request { name: name.clone(), password: password.clone(), }; - let post::Error(error) = post::handler( + let super::Error(error) = super::handler( State(app.clone()), fixtures::now(), identity, diff --git a/src/invite/routes/invite/get.rs b/src/invite/handlers/get/mod.rs index f862833..bb72586 100644 --- a/src/invite/routes/invite/get.rs +++ b/src/invite/handlers/get/mod.rs @@ -6,12 +6,15 @@ use axum::{ use crate::{ app::App, error::{Internal, NotFound}, - invite::{Id, Summary}, + invite::{Id, Summary, handlers::PathInfo}, }; +#[cfg(test)] +mod test; + pub async fn handler( State(app): State<App>, - Path(invite): Path<super::PathInfo>, + Path(invite): Path<PathInfo>, ) -> Result<Json<Summary>, Error> { app.invites() .get(&invite) diff --git a/src/invite/routes/invite/test/get.rs b/src/invite/handlers/get/test.rs index 0dc8a79..0f2f725 100644 --- a/src/invite/routes/invite/test/get.rs +++ b/src/invite/handlers/get/test.rs @@ -1,6 +1,6 @@ use axum::extract::{Json, Path, State}; -use crate::{invite::routes::invite::get, test::fixtures}; +use crate::test::fixtures; #[tokio::test] async fn valid_invite() { @@ -12,7 +12,7 @@ async fn valid_invite() { // Call endpoint - let Json(response) = get::handler(State(app), Path(invite.id)) + let Json(response) = super::handler(State(app), Path(invite.id)) .await .expect("get for an existing invite succeeds"); @@ -31,13 +31,13 @@ async fn nonexistent_invite() { // Call endpoint let invite = fixtures::invite::fictitious(); - let error = get::handler(State(app), Path(invite.clone())) + let error = super::handler(State(app), Path(invite.clone())) .await .expect_err("get for a nonexistent invite fails"); // Verify response - assert!(matches!(error, get::Error::NotFound(error_id) if invite == error_id)); + assert!(matches!(error, super::Error::NotFound(error_id) if invite == error_id)); } #[tokio::test] @@ -55,11 +55,11 @@ async fn expired_invite() { // Call endpoint - let error = get::handler(State(app), Path(invite.id.clone())) + let error = super::handler(State(app), Path(invite.id.clone())) .await .expect_err("get for an expired invite fails"); // Verify response - assert!(matches!(error, get::Error::NotFound(error_id) if invite.id == error_id)); + assert!(matches!(error, super::Error::NotFound(error_id) if invite.id == error_id)); } diff --git a/src/invite/routes/post.rs b/src/invite/handlers/issue/mod.rs index f7ca76c..6085f7a 100644 --- a/src/invite/routes/post.rs +++ b/src/invite/handlers/issue/mod.rs @@ -4,6 +4,9 @@ use crate::{ app::App, clock::RequestedAt, error::Internal, invite::Invite, token::extract::Identity, }; +#[cfg(test)] +mod test; + pub async fn handler( State(app): State<App>, RequestedAt(issued_at): RequestedAt, diff --git a/src/invite/routes/test.rs b/src/invite/handlers/issue/test.rs index 4ea8a3d..2bf5400 100644 --- a/src/invite/routes/test.rs +++ b/src/invite/handlers/issue/test.rs @@ -1,6 +1,5 @@ use axum::extract::{Json, State}; -use super::post; use crate::test::fixtures; #[tokio::test] @@ -13,11 +12,11 @@ async fn create_invite() { // Call the endpoint - let Json(invite) = post::handler( + let Json(invite) = super::handler( State(app), issued_at.clone(), issuer.clone(), - Json(post::Request {}), + Json(super::Request {}), ) .await .expect("creating an invite always succeeds"); diff --git a/src/invite/handlers/mod.rs b/src/invite/handlers/mod.rs new file mode 100644 index 0000000..07a2bbe --- /dev/null +++ b/src/invite/handlers/mod.rs @@ -0,0 +1,9 @@ +mod accept; +mod get; +mod issue; + +type PathInfo = crate::invite::Id; + +pub use accept::handler as accept; +pub use get::handler as get; +pub use issue::handler as issue; diff --git a/src/invite/mod.rs b/src/invite/mod.rs index 3932eea..74b9ceb 100644 --- a/src/invite/mod.rs +++ b/src/invite/mod.rs @@ -1,9 +1,9 @@ use crate::{clock::DateTime, normalize::nfc, user}; pub mod app; +pub mod handlers; mod id; mod repo; -pub mod routes; pub use self::id::Id; diff --git a/src/invite/routes/invite/mod.rs b/src/invite/routes/invite/mod.rs deleted file mode 100644 index c22029a..0000000 --- a/src/invite/routes/invite/mod.rs +++ /dev/null @@ -1,6 +0,0 @@ -pub mod get; -pub mod post; -#[cfg(test)] -pub mod test; - -type PathInfo = crate::invite::Id; diff --git a/src/invite/routes/invite/test/mod.rs b/src/invite/routes/invite/test/mod.rs deleted file mode 100644 index d6c1f06..0000000 --- a/src/invite/routes/invite/test/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -mod get; -mod post; diff --git a/src/invite/routes/mod.rs b/src/invite/routes/mod.rs deleted file mode 100644 index 8747a4e..0000000 --- a/src/invite/routes/mod.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub mod invite; -pub mod post; -#[cfg(test)] -mod test; |
