summaryrefslogtreecommitdiff
path: root/src/invite
diff options
context:
space:
mode:
Diffstat (limited to 'src/invite')
-rw-r--r--src/invite/repo.rs58
-rw-r--r--src/invite/routes/invite/post.rs6
-rw-r--r--src/invite/routes/post.rs10
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 {}