hammond-data: Add a source_exists query.

This commit is contained in:
Jordan Petridis 2018-01-27 14:23:19 +02:00
parent 18e55e23ee
commit 77a52bdc8c
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6

View File

@ -1,9 +1,12 @@
//! Random CRUD helper functions.
use chrono::prelude::*;
use diesel;
use diesel::prelude::*;
use diesel;
use diesel::dsl::exists;
use diesel::select;
use database::connection;
use errors::*;
use models::*;
@ -266,9 +269,18 @@ fn delete_podcast_episodes(con: &SqliteConnection, parent_id: i32) -> QueryResul
diesel::delete(episode.filter(podcast_id.eq(parent_id))).execute(con)
}
pub fn source_exists(url: &str) -> Result<bool> {
use schema::source::dsl::*;
let db = connection();
let con = db.get()?;
select(exists(source.filter(uri.eq(url))))
.get_result(&con)
.map_err(From::from)
}
pub(crate) fn podcast_exists(source_id_: i32) -> Result<bool> {
use diesel::dsl::exists;
use diesel::select;
use schema::podcast::dsl::*;
let db = connection();
@ -282,8 +294,6 @@ pub(crate) fn podcast_exists(source_id_: i32) -> Result<bool> {
#[cfg_attr(rustfmt, rustfmt_skip)]
pub(crate) fn episode_exists(title_: &str, podcast_id_: i32) -> Result<bool> {
use schema::episode::dsl::*;
use diesel::select;
use diesel::dsl::exists;
let db = connection();
let con = db.get()?;