feat(gpodder): add paginated sessions function
This commit is contained in:
parent
bf132f93dc
commit
823133c034
4 changed files with 45 additions and 0 deletions
|
|
@ -65,3 +65,9 @@ pub struct Subscription {
|
|||
pub url: String,
|
||||
pub time_changed: DateTime<Utc>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
pub struct Page {
|
||||
pub page: u32,
|
||||
pub per_page: u32,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,14 @@ impl GpodderRepository {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn paginated_sessions(
|
||||
&self,
|
||||
user: &models::User,
|
||||
page: models::Page,
|
||||
) -> Result<Vec<models::Session>, AuthErr> {
|
||||
self.store.paginated_sessions(user, page)
|
||||
}
|
||||
|
||||
pub fn get_user(&self, username: &str) -> Result<models::User, AuthErr> {
|
||||
self.store.get_user(username)?.ok_or(AuthErr::UnknownUser)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,6 +38,10 @@ pub trait AuthStore {
|
|||
/// Retrieve the session with the given session ID
|
||||
fn get_session(&self, session_id: i64) -> Result<Option<Session>, AuthErr>;
|
||||
|
||||
/// Retrieve a paginated list of the given user's sessions, ordered descending by the last seen
|
||||
/// value.
|
||||
fn paginated_sessions(&self, user: &User, page: Page) -> Result<Vec<Session>, AuthErr>;
|
||||
|
||||
/// Retrieve the user with the given username
|
||||
fn get_user(&self, username: &str) -> Result<Option<User>, AuthErr>;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue