diff options
Diffstat (limited to 'src/user/repo.rs')
| -rw-r--r-- | src/user/repo.rs | 47 |
1 files changed, 29 insertions, 18 deletions
diff --git a/src/user/repo.rs b/src/user/repo.rs index 0f67e9a..bfb603d 100644 --- a/src/user/repo.rs +++ b/src/user/repo.rs @@ -25,7 +25,7 @@ impl Users<'_> { pub async fn create( &mut self, name: &Name, - password_hash: &StoredHash, + password: &StoredHash, created: &Instant, ) -> Result<History, sqlx::Error> { let id = Id::generate(); @@ -34,14 +34,23 @@ impl Users<'_> { sqlx::query!( r#" - insert - into user (id, display_name, canonical_name, password_hash, created_sequence, created_at) - values ($1, $2, $3, $4, $5, $6) + insert into login (id, display_name, canonical_name, password) + values ($1, $2, $3, $4) "#, id, display_name, canonical_name, - password_hash, + password, + ) + .execute(&mut *self.0) + .await?; + + sqlx::query!( + r#" + insert into user (id, created_sequence, created_at) + values ($1, $2, $3) + "#, + id, created.sequence, created.at, ) @@ -68,8 +77,8 @@ impl Users<'_> { sqlx::query_scalar!( r#" - update user - set password_hash = $1 + update login + set password = $1 where id = $2 returning id as "id: Id" "#, @@ -87,13 +96,14 @@ impl Users<'_> { r#" select id as "id: Id", - display_name as "display_name: String", - canonical_name as "canonical_name: String", - created_sequence as "created_sequence: Sequence", - created_at as "created_at: DateTime" + login.display_name as "display_name: String", + login.canonical_name as "canonical_name: String", + user.created_sequence as "created_sequence: Sequence", + user.created_at as "created_at: DateTime" from user - where created_sequence <= $1 - order by canonical_name + join login using (id) + where user.created_sequence <= $1 + order by canonical_name "#, resume_at, ) @@ -119,12 +129,13 @@ impl Users<'_> { r#" select id as "id: Id", - display_name as "display_name: String", - canonical_name as "canonical_name: String", - created_sequence as "created_sequence: Sequence", - created_at as "created_at: DateTime" + login.display_name as "display_name: String", + login.canonical_name as "canonical_name: String", + user.created_sequence as "created_sequence: Sequence", + user.created_at as "created_at: DateTime" from user - where created_sequence > $1 + join login using (id) + where user.created_sequence > $1 "#, resume_at, ) |
