#![cfg_attr(feature = "cargo-clippy", allow(let_and_return))] use diesel::prelude::*; use models::{Episode, Podcast, Source}; pub fn get_sources(con: &SqliteConnection) -> QueryResult> { use schema::source::dsl::*; let s = source.load::(con); s } pub fn get_podcasts(con: &SqliteConnection) -> QueryResult> { use schema::podcast::dsl::*; let pds = podcast.load::(con); pds } // Maybe later. // pub fn get_podcasts_ids(con: &SqliteConnection) -> QueryResult> { // use schema::podcast::dsl::*; // let pds = podcast.select(id).load::(con); // pds // } pub fn get_episodes(con: &SqliteConnection) -> QueryResult> { use schema::episode::dsl::*; let eps = episode.order(epoch.desc()).load::(con); eps } pub fn get_episodes_with_limit(con: &SqliteConnection, limit: u32) -> QueryResult> { use schema::episode::dsl::*; let eps = episode .order(epoch.desc()) .limit(limit as i64) .load::(con); eps } pub fn get_podcast(con: &SqliteConnection, parent: &Source) -> QueryResult> { let pd = Podcast::belonging_to(parent).load::(con); // debug!("Returned Podcasts:\n{:?}", pds); pd } pub fn get_pd_episodes(con: &SqliteConnection, parent: &Podcast) -> QueryResult> { use schema::episode::dsl::*; let eps = Episode::belonging_to(parent) .order(epoch.desc()) .load::(con); eps } pub fn get_pd_episodes_limit( con: &SqliteConnection, parent: &Podcast, limit: u32, ) -> QueryResult> { use schema::episode::dsl::*; let eps = Episode::belonging_to(parent) .order(epoch.desc()) .limit(limit as i64) .load::(con); eps } pub fn load_source(con: &SqliteConnection, uri_: &str) -> QueryResult { use schema::source::dsl::*; let s = source.filter(uri.eq(uri_)).get_result::(con); s } pub fn load_podcast(con: &SqliteConnection, title_: &str) -> QueryResult { use schema::podcast::dsl::*; let pd = podcast.filter(title.eq(title_)).get_result::(con); pd } pub fn load_episode(con: &SqliteConnection, uri_: &str) -> QueryResult { use schema::episode::dsl::*; let ep = episode.filter(uri.eq(uri_)).get_result::(con); ep }