summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/channel/app.rs6
-rw-r--r--src/channel/mod.rs1
-rw-r--r--src/channel/repo.rs (renamed from src/repo/channel.rs)0
-rw-r--r--src/cli.rs4
-rw-r--r--src/db.rs (renamed from src/repo/pool.rs)24
-rw-r--r--src/event/app.rs6
-rw-r--r--src/event/repo/mod.rs3
-rw-r--r--src/event/repo/sequence.rs (renamed from src/repo/sequence.rs)0
-rw-r--r--src/lib.rs2
-rw-r--r--src/login/app.rs2
-rw-r--r--src/repo/error.rs23
-rw-r--r--src/repo/mod.rs4
-rw-r--r--src/test/fixtures/mod.rs4
-rw-r--r--src/token/app.rs2
14 files changed, 40 insertions, 41 deletions
diff --git a/src/channel/app.rs b/src/channel/app.rs
index 1422651..ef0a63f 100644
--- a/src/channel/app.rs
+++ b/src/channel/app.rs
@@ -2,11 +2,9 @@ use chrono::TimeDelta;
use sqlx::sqlite::SqlitePool;
use crate::{
- channel::Channel,
+ channel::{repo::Provider as _, Channel},
clock::DateTime,
- event::Sequence,
- event::{broadcaster::Broadcaster, types::ChannelEvent},
- repo::{channel::Provider as _, sequence::Provider as _},
+ event::{broadcaster::Broadcaster, repo::Provider as _, types::ChannelEvent, Sequence},
};
pub struct Channels<'a> {
diff --git a/src/channel/mod.rs b/src/channel/mod.rs
index 02d0ed4..2672084 100644
--- a/src/channel/mod.rs
+++ b/src/channel/mod.rs
@@ -2,6 +2,7 @@ use crate::{clock::DateTime, event::Sequence};
pub mod app;
mod id;
+pub mod repo;
mod routes;
pub use self::{id::Id, routes::router};
diff --git a/src/repo/channel.rs b/src/channel/repo.rs
index 18cd81f..18cd81f 100644
--- a/src/repo/channel.rs
+++ b/src/channel/repo.rs
diff --git a/src/cli.rs b/src/cli.rs
index ee95ea6..893fae2 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -10,7 +10,7 @@ use clap::Parser;
use sqlx::sqlite::SqlitePool;
use tokio::net;
-use crate::{app::App, channel, clock, event, expire, login, repo::pool};
+use crate::{app::App, channel, clock, db, event, expire, login};
/// Command-line entry point for running the `hi` server.
///
@@ -100,7 +100,7 @@ impl Args {
}
async fn pool(&self) -> sqlx::Result<SqlitePool> {
- pool::prepare(&self.database_url).await
+ db::prepare(&self.database_url).await
}
}
diff --git a/src/repo/pool.rs b/src/db.rs
index b4aa6fc..93a1169 100644
--- a/src/repo/pool.rs
+++ b/src/db.rs
@@ -16,3 +16,27 @@ async fn create(database_url: &str) -> sqlx::Result<SqlitePool> {
let pool = SqlitePoolOptions::new().connect_with(options).await?;
Ok(pool)
}
+
+pub trait NotFound {
+ type Ok;
+ fn not_found<E, F>(self, map: F) -> Result<Self::Ok, E>
+ where
+ E: From<sqlx::Error>,
+ F: FnOnce() -> E;
+}
+
+impl<T> NotFound for Result<T, sqlx::Error> {
+ type Ok = T;
+
+ fn not_found<E, F>(self, map: F) -> Result<T, E>
+ where
+ E: From<sqlx::Error>,
+ F: FnOnce() -> E,
+ {
+ match self {
+ Err(sqlx::Error::RowNotFound) => Err(map()),
+ Err(other) => Err(other.into()),
+ Ok(value) => Ok(value),
+ }
+ }
+}
diff --git a/src/event/app.rs b/src/event/app.rs
index b5f2ecc..3d35f1a 100644
--- a/src/event/app.rs
+++ b/src/event/app.rs
@@ -12,11 +12,11 @@ use super::{
types::{self, ChannelEvent},
};
use crate::{
- channel,
+ channel::{self, repo::Provider as _},
clock::DateTime,
- event::Sequence,
+ db::NotFound as _,
+ event::{repo::Provider as _, Sequence},
login::Login,
- repo::{channel::Provider as _, error::NotFound as _, sequence::Provider as _},
};
pub struct Events<'a> {
diff --git a/src/event/repo/mod.rs b/src/event/repo/mod.rs
index e216a50..cee840c 100644
--- a/src/event/repo/mod.rs
+++ b/src/event/repo/mod.rs
@@ -1 +1,4 @@
pub mod message;
+mod sequence;
+
+pub use self::sequence::Provider;
diff --git a/src/repo/sequence.rs b/src/event/repo/sequence.rs
index c985869..c985869 100644
--- a/src/repo/sequence.rs
+++ b/src/event/repo/sequence.rs
diff --git a/src/lib.rs b/src/lib.rs
index bbcb314..8ec13da 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -7,13 +7,13 @@ mod broadcast;
mod channel;
pub mod cli;
mod clock;
+mod db;
mod error;
mod event;
mod expire;
mod id;
mod login;
mod message;
-mod repo;
#[cfg(test)]
mod test;
mod token;
diff --git a/src/login/app.rs b/src/login/app.rs
index 69c1055..15adb31 100644
--- a/src/login/app.rs
+++ b/src/login/app.rs
@@ -1,6 +1,6 @@
use sqlx::sqlite::SqlitePool;
-use crate::{event::Sequence, repo::sequence::Provider as _};
+use crate::event::{repo::Provider as _, Sequence};
#[cfg(test)]
use super::{repo::Provider as _, Login, Password};
diff --git a/src/repo/error.rs b/src/repo/error.rs
deleted file mode 100644
index a5961e2..0000000
--- a/src/repo/error.rs
+++ /dev/null
@@ -1,23 +0,0 @@
-pub trait NotFound {
- type Ok;
- fn not_found<E, F>(self, map: F) -> Result<Self::Ok, E>
- where
- E: From<sqlx::Error>,
- F: FnOnce() -> E;
-}
-
-impl<T> NotFound for Result<T, sqlx::Error> {
- type Ok = T;
-
- fn not_found<E, F>(self, map: F) -> Result<T, E>
- where
- E: From<sqlx::Error>,
- F: FnOnce() -> E,
- {
- match self {
- Err(sqlx::Error::RowNotFound) => Err(map()),
- Err(other) => Err(other.into()),
- Ok(value) => Ok(value),
- }
- }
-}
diff --git a/src/repo/mod.rs b/src/repo/mod.rs
deleted file mode 100644
index 7abd46b..0000000
--- a/src/repo/mod.rs
+++ /dev/null
@@ -1,4 +0,0 @@
-pub mod channel;
-pub mod error;
-pub mod pool;
-pub mod sequence;
diff --git a/src/test/fixtures/mod.rs b/src/test/fixtures/mod.rs
index d1dd0c3..76467ab 100644
--- a/src/test/fixtures/mod.rs
+++ b/src/test/fixtures/mod.rs
@@ -1,6 +1,6 @@
use chrono::{TimeDelta, Utc};
-use crate::{app::App, clock::RequestedAt, repo::pool};
+use crate::{app::App, clock::RequestedAt, db};
pub mod channel;
pub mod filter;
@@ -10,7 +10,7 @@ pub mod login;
pub mod message;
pub async fn scratch_app() -> App {
- let pool = pool::prepare("sqlite::memory:")
+ let pool = db::prepare("sqlite::memory:")
.await
.expect("setting up in-memory sqlite database");
App::from(pool)
diff --git a/src/token/app.rs b/src/token/app.rs
index 1477a9f..030ec69 100644
--- a/src/token/app.rs
+++ b/src/token/app.rs
@@ -11,8 +11,8 @@ use super::{
};
use crate::{
clock::DateTime,
+ db::NotFound as _,
login::{repo::Provider as _, Login, Password},
- repo::error::NotFound as _,
};
pub struct Tokens<'a> {