summaryrefslogtreecommitdiff
path: root/src/login/app.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/login/app.rs')
-rw-r--r--src/login/app.rs22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/login/app.rs b/src/login/app.rs
index 37f1249..2f5896f 100644
--- a/src/login/app.rs
+++ b/src/login/app.rs
@@ -1,6 +1,10 @@
use sqlx::sqlite::SqlitePool;
-use super::{repo::Provider as _, Login, Password};
+use super::repo::Provider as _;
+
+#[cfg(test)]
+use super::{Login, Password};
+#[cfg(test)]
use crate::{
clock::DateTime,
event::{repo::Provider as _, Broadcaster, Event},
@@ -9,14 +13,22 @@ use crate::{
pub struct Logins<'a> {
db: &'a SqlitePool,
+ #[cfg(test)]
events: &'a Broadcaster,
}
impl<'a> Logins<'a> {
+ #[cfg(not(test))]
+ pub const fn new(db: &'a SqlitePool) -> Self {
+ Self { db }
+ }
+
+ #[cfg(test)]
pub const fn new(db: &'a SqlitePool, events: &'a Broadcaster) -> Self {
Self { db, events }
}
+ #[cfg(test)]
pub async fn create(
&self,
name: &Name,
@@ -35,6 +47,14 @@ impl<'a> Logins<'a> {
Ok(login.as_created())
}
+
+ pub async fn recanonicalize(&self) -> Result<(), sqlx::Error> {
+ let mut tx = self.db.begin().await?;
+ tx.logins().recanonicalize().await?;
+ tx.commit().await?;
+
+ Ok(())
+ }
}
#[derive(Debug, thiserror::Error)]