summaryrefslogtreecommitdiff
path: root/src/setup/app.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/setup/app.rs')
-rw-r--r--src/setup/app.rs21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/setup/app.rs b/src/setup/app.rs
index 1856519..c1c53c5 100644
--- a/src/setup/app.rs
+++ b/src/setup/app.rs
@@ -6,7 +6,7 @@ use crate::{
event::Broadcaster,
name::Name,
password::Password,
- token::{Secret, repo::Provider as _},
+ token::{Secret, Token, repo::Provider as _},
user::create::{self, Create},
};
@@ -31,17 +31,20 @@ impl<'a> Setup<'a> {
let validated = create.validate()?;
let mut tx = self.db.begin().await?;
- let stored = if tx.setup().completed().await? {
- Err(Error::SetupCompleted)?
+ if tx.setup().completed().await? {
+ Err(Error::SetupCompleted)
} else {
- validated.store(&mut tx).await?
- };
- let secret = tx.tokens().issue(stored.user(), created_at).await?;
- tx.commit().await?;
+ let stored = validated.store(&mut tx).await?;
+ let user = stored.user().as_created();
+
+ let (token, secret) = Token::generate(&user, created_at);
+ tx.tokens().create(&token, &secret).await?;
+ tx.commit().await?;
- stored.publish(self.events);
+ stored.publish(self.events);
- Ok(secret)
+ Ok(secret)
+ }
}
pub async fn completed(&self) -> Result<bool, sqlx::Error> {