summaryrefslogtreecommitdiff
path: root/src/user
diff options
context:
space:
mode:
Diffstat (limited to 'src/user')
-rw-r--r--src/user/repo.rs47
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,
)