From 7de48973640f68432b0fce415dd34227a6b05957 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sun, 15 Jun 2025 14:31:36 +0200 Subject: [PATCH] refactor(gpodder): rename store trait --- gpodder/src/lib.rs | 3 ++- gpodder/src/repository.rs | 6 +++--- gpodder/src/store.rs | 17 +++++++++-------- gpodder_sqlite/src/repository/auth.rs | 2 +- gpodder_sqlite/src/repository/device.rs | 2 +- gpodder_sqlite/src/repository/episode_action.rs | 2 +- gpodder_sqlite/src/repository/subscription.rs | 2 +- 7 files changed, 18 insertions(+), 16 deletions(-) diff --git a/gpodder/src/lib.rs b/gpodder/src/lib.rs index 0f31248..c106184 100644 --- a/gpodder/src/lib.rs +++ b/gpodder/src/lib.rs @@ -5,5 +5,6 @@ mod store; pub use models::*; pub use repository::GpodderRepository; pub use store::{ - AuthErr, AuthStore, DeviceRepository, EpisodeActionRepository, Store, SubscriptionRepository, + AuthErr, GpodderAuthStore, GpodderDeviceStore, GpodderEpisodeActionStore, GpodderStore, + GpodderSubscriptionStore, }; diff --git a/gpodder/src/repository.rs b/gpodder/src/repository.rs index 5b4f8e2..5c086e6 100644 --- a/gpodder/src/repository.rs +++ b/gpodder/src/repository.rs @@ -6,18 +6,18 @@ use rand::{Rng, rngs::OsRng}; use crate::{ models, - store::{AuthErr, Store}, + store::{AuthErr, GpodderStore}, }; const MAX_SESSION_AGE: i64 = 60 * 60 * 24 * 7; #[derive(Clone)] pub struct GpodderRepository { - store: Arc, + store: Arc, } impl GpodderRepository { - pub fn new(store: impl Store + Send + Sync + 'static) -> Self { + pub fn new(store: impl GpodderStore + Send + Sync + 'static) -> Self { Self { store: Arc::new(store), } diff --git a/gpodder/src/store.rs b/gpodder/src/store.rs index d5fc371..4b60b24 100644 --- a/gpodder/src/store.rs +++ b/gpodder/src/store.rs @@ -24,17 +24,18 @@ impl Display for AuthErr { impl std::error::Error for AuthErr {} -pub trait Store: - AuthStore + DeviceRepository + SubscriptionRepository + EpisodeActionRepository +/// API abstraction providing methods for serving the Gpodder API +pub trait GpodderStore: + GpodderAuthStore + GpodderDeviceStore + GpodderSubscriptionStore + GpodderEpisodeActionStore { } -impl Store for T where - T: AuthStore + DeviceRepository + SubscriptionRepository + EpisodeActionRepository +impl GpodderStore for T where + T: GpodderAuthStore + GpodderDeviceStore + GpodderSubscriptionStore + GpodderEpisodeActionStore { } -pub trait AuthStore { +pub trait GpodderAuthStore { /// Retrieve the session with the given session ID fn get_session(&self, session_id: i64) -> Result, AuthErr>; @@ -63,7 +64,7 @@ pub trait AuthStore { fn remove_old_sessions(&self, min_last_seen: DateTime) -> Result; } -pub trait DeviceRepository { +pub trait GpodderDeviceStore { /// Return all devices associated with the user fn devices_for_user(&self, user: &User) -> Result, AuthErr>; @@ -108,7 +109,7 @@ pub trait DeviceRepository { ) -> Result<(Vec, Vec>), AuthErr>; } -pub trait SubscriptionRepository { +pub trait GpodderSubscriptionStore { /// Return the subscriptions for the given device fn subscriptions_for_device( &self, @@ -149,7 +150,7 @@ pub trait SubscriptionRepository { ) -> Result<(Vec, Vec), AuthErr>; } -pub trait EpisodeActionRepository { +pub trait GpodderEpisodeActionStore { /// Insert the given episode actions into the datastore. fn add_episode_actions( &self, diff --git a/gpodder_sqlite/src/repository/auth.rs b/gpodder_sqlite/src/repository/auth.rs index dbe648d..e32ff85 100644 --- a/gpodder_sqlite/src/repository/auth.rs +++ b/gpodder_sqlite/src/repository/auth.rs @@ -22,7 +22,7 @@ impl From for gpodder::User { } } -impl gpodder::AuthStore for SqliteRepository { +impl gpodder::GpodderAuthStore for SqliteRepository { fn get_user(&self, username: &str) -> Result, AuthErr> { Ok(users::table .select(User::as_select()) diff --git a/gpodder_sqlite/src/repository/device.rs b/gpodder_sqlite/src/repository/device.rs index bd461b9..98ffc12 100644 --- a/gpodder_sqlite/src/repository/device.rs +++ b/gpodder_sqlite/src/repository/device.rs @@ -38,7 +38,7 @@ impl From for DeviceType { } } -impl gpodder::DeviceRepository for SqliteRepository { +impl gpodder::GpodderDeviceStore for SqliteRepository { fn devices_for_user( &self, user: &gpodder::User, diff --git a/gpodder_sqlite/src/repository/episode_action.rs b/gpodder_sqlite/src/repository/episode_action.rs index 8581bd4..4664e05 100644 --- a/gpodder_sqlite/src/repository/episode_action.rs +++ b/gpodder_sqlite/src/repository/episode_action.rs @@ -71,7 +71,7 @@ fn to_gpodder_action( } } -impl gpodder::EpisodeActionRepository for SqliteRepository { +impl gpodder::GpodderEpisodeActionStore for SqliteRepository { fn add_episode_actions( &self, user: &gpodder::User, diff --git a/gpodder_sqlite/src/repository/subscription.rs b/gpodder_sqlite/src/repository/subscription.rs index 03cc666..975d372 100644 --- a/gpodder_sqlite/src/repository/subscription.rs +++ b/gpodder_sqlite/src/repository/subscription.rs @@ -172,7 +172,7 @@ pub fn update_subscriptions_for_single_device( Ok(()) } -impl gpodder::SubscriptionRepository for SqliteRepository { +impl gpodder::GpodderSubscriptionStore for SqliteRepository { fn subscriptions_for_user( &self, user: &gpodder::User,