In place update a podcast row instead of replace.
This commit is contained in:
parent
f83f894e44
commit
2f801043c1
3
.gitignore
vendored
3
.gitignore
vendored
@ -7,6 +7,7 @@ Cargo.lock
|
|||||||
_build
|
_build
|
||||||
vendor/
|
vendor/
|
||||||
.flatpak-builder/
|
.flatpak-builder/
|
||||||
|
flatpak-build/
|
||||||
flatpak-repo/
|
flatpak-repo/
|
||||||
|
repo/
|
||||||
Makefile
|
Makefile
|
||||||
hammond-repo/
|
|
||||||
|
|||||||
@ -235,3 +235,10 @@ pub fn replace_episode(con: &SqliteConnection, ep: &NewEpisode) -> QueryResult<u
|
|||||||
|
|
||||||
diesel::replace_into(episode).values(ep).execute(&*con)
|
diesel::replace_into(episode).values(ep).execute(&*con)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn update_podcast(con: &SqliteConnection, pd_id: i32, pd: &NewPodcast) -> QueryResult<usize> {
|
||||||
|
use schema::podcast::dsl::*;
|
||||||
|
diesel::update(podcast.filter(id.eq(pd_id)))
|
||||||
|
.set(pd)
|
||||||
|
.execute(&*con)
|
||||||
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ use diesel::prelude::*;
|
|||||||
|
|
||||||
use schema::{episode, podcast, source};
|
use schema::{episode, podcast, source};
|
||||||
use models::{Episode, Podcast, Source};
|
use models::{Episode, Podcast, Source};
|
||||||
|
|
||||||
use utils::url_cleaner;
|
use utils::url_cleaner;
|
||||||
use errors::*;
|
use errors::*;
|
||||||
|
|
||||||
@ -79,6 +80,7 @@ impl NewEpisode {
|
|||||||
if foo.title() != self.title.as_ref().map(|x| x.as_str())
|
if foo.title() != self.title.as_ref().map(|x| x.as_str())
|
||||||
|| foo.published_date() != self.published_date.as_ref().map(|x| x.as_str())
|
|| foo.published_date() != self.published_date.as_ref().map(|x| x.as_str())
|
||||||
{
|
{
|
||||||
|
// TODO: Update instead of replace
|
||||||
dbqueries::replace_episode(con, self)?;
|
dbqueries::replace_episode(con, self)?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -90,7 +92,7 @@ impl NewEpisode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Insertable)]
|
#[derive(Insertable, AsChangeset)]
|
||||||
#[table_name = "podcast"]
|
#[table_name = "podcast"]
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct NewPodcast {
|
pub struct NewPodcast {
|
||||||
@ -116,13 +118,13 @@ impl NewPodcast {
|
|||||||
match pd {
|
match pd {
|
||||||
Ok(foo) => {
|
Ok(foo) => {
|
||||||
if foo.source_id() != self.source_id {
|
if foo.source_id() != self.source_id {
|
||||||
error!("NPD sid: {}, PD sid: {}", self.source_id, foo.source_id());
|
error!("NSPD sid: {}, SPD sid: {}", self.source_id, foo.source_id());
|
||||||
};
|
};
|
||||||
|
|
||||||
if (foo.link() != self.link) || (foo.title() != self.title)
|
if (foo.link() != self.link) || (foo.title() != self.title)
|
||||||
|| (foo.image_uri() != self.image_uri.as_ref().map(|x| x.as_str()))
|
|| (foo.image_uri() != self.image_uri.as_ref().map(|x| x.as_str()))
|
||||||
{
|
{
|
||||||
dbqueries::replace_podcast(&con, self)?;
|
dbqueries::update_podcast(&con, *foo.id(), self)?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user