diff options
Diffstat (limited to 'src/invite')
| -rw-r--r-- | src/invite/repo.rs | 58 | ||||
| -rw-r--r-- | src/invite/routes/invite/post.rs | 6 | ||||
| -rw-r--r-- | src/invite/routes/post.rs | 10 |
3 files changed, 38 insertions, 36 deletions
diff --git a/src/invite/repo.rs b/src/invite/repo.rs index 02f4e42..5f86e49 100644 --- a/src/invite/repo.rs +++ b/src/invite/repo.rs @@ -29,13 +29,13 @@ impl<'c> Invites<'c> { let invite = sqlx::query_as!( Invite, r#" - insert into invite (id, issuer, issued_at) - values ($1, $2, $3) - returning - id as "id: Id", - issuer as "issuer: login::Id", - issued_at as "issued_at: DateTime" - "#, + insert into invite (id, issuer, issued_at) + values ($1, $2, $3) + returning + id as "id: Id", + issuer as "issuer: login::Id", + issued_at as "issued_at: DateTime" + "#, id, issuer.id, issued_at @@ -50,13 +50,13 @@ impl<'c> Invites<'c> { let invite = sqlx::query_as!( Invite, r#" - select - id as "id: Id", - issuer as "issuer: login::Id", - issued_at as "issued_at: DateTime" - from invite - where id = $1 - "#, + select + id as "id: Id", + issuer as "issuer: login::Id", + issued_at as "issued_at: DateTime" + from invite + where id = $1 + "#, invite, ) .fetch_one(&mut *self.0) @@ -68,15 +68,15 @@ impl<'c> Invites<'c> { pub async fn summary(&mut self, invite: &Id) -> Result<Summary, sqlx::Error> { let invite = sqlx::query!( r#" - select + select invite.id as "invite_id: Id", - issuer.id as "issuer_id: login::Id", - issuer.display_name as "issuer_name: nfc::String", - invite.issued_at as "invite_issued_at: DateTime" - from invite - join login as issuer on (invite.issuer = issuer.id) - where invite.id = $1 - "#, + issuer.id as "issuer_id: login::Id", + issuer.display_name as "issuer_name: nfc::String", + invite.issued_at as "invite_issued_at: DateTime" + from invite + join login as issuer on (invite.issuer = issuer.id) + where invite.id = $1 + "#, invite, ) .map(|row| Summary { @@ -93,10 +93,10 @@ impl<'c> Invites<'c> { pub async fn accept(&mut self, invite: &Invite) -> Result<(), sqlx::Error> { sqlx::query_scalar!( r#" - delete from invite - where id = $1 - returning 1 as "deleted: bool" - "#, + delete from invite + where id = $1 + returning 1 as "deleted: bool" + "#, invite.id, ) .fetch_one(&mut *self.0) @@ -108,9 +108,9 @@ impl<'c> Invites<'c> { pub async fn expire(&mut self, expire_at: &DateTime) -> Result<(), sqlx::Error> { sqlx::query!( r#" - delete from invite - where issued_at < $1 - "#, + delete from invite + where issued_at < $1 + "#, expire_at, ) .execute(&mut *self.0) diff --git a/src/invite/routes/invite/post.rs b/src/invite/routes/invite/post.rs index a41207a..3ca4e6b 100644 --- a/src/invite/routes/invite/post.rs +++ b/src/invite/routes/invite/post.rs @@ -11,16 +11,16 @@ use crate::{ invite::app, login::{Login, Password}, name::Name, - token::extract::IdentityToken, + token::extract::IdentityCookie, }; pub async fn handler( State(app): State<App>, RequestedAt(accepted_at): RequestedAt, - identity: IdentityToken, + identity: IdentityCookie, Path(invite): Path<super::PathInfo>, Json(request): Json<Request>, -) -> Result<(IdentityToken, Json<Login>), Error> { +) -> Result<(IdentityCookie, Json<Login>), Error> { let (login, secret) = app .invites() .accept(&invite, &request.name, &request.password, &accepted_at) diff --git a/src/invite/routes/post.rs b/src/invite/routes/post.rs index 80b1c27..eb7d706 100644 --- a/src/invite/routes/post.rs +++ b/src/invite/routes/post.rs @@ -1,17 +1,19 @@ use axum::extract::{Json, State}; -use crate::{app::App, clock::RequestedAt, error::Internal, invite::Invite, login::Login}; +use crate::{ + app::App, clock::RequestedAt, error::Internal, invite::Invite, token::extract::Identity, +}; pub async fn handler( State(app): State<App>, RequestedAt(issued_at): RequestedAt, - login: Login, - // Require `{}` as the only valid request for this endpoint. + identity: Identity, _: Json<Request>, ) -> Result<Json<Invite>, Internal> { - let invite = app.invites().create(&login, &issued_at).await?; + let invite = app.invites().create(&identity.login, &issued_at).await?; Ok(Json(invite)) } +// Require `{}` as the only valid request for this endpoint. #[derive(Default, serde::Deserialize)] pub struct Request {} |
