Skip to content
Snippets Groups Projects
Commit f193eb99 authored by Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen
Browse files

Movie: Allow deletion by a media ID

refs #297
parent 7b1f7b05
No related branches found
No related tags found
No related merge requests found
......@@ -152,4 +152,10 @@ MoviePtr Movie::fromMedia( MediaLibraryPtr ml, int64_t mediaId )
return fetch( ml, req, mediaId );
}
bool Movie::deleteByMediaId( MediaLibraryPtr ml, int64_t mediaId )
{
const std::string req = "DELETE FROM " + Table::Name + " WHERE media_id = ?";
return sqlite::Tools::executeDelete( ml->getConn(), req, mediaId );
}
}
......@@ -60,6 +60,7 @@ class Movie : public IMovie, public DatabaseHelpers<Movie>
static bool checkDbModel( MediaLibraryPtr ml );
static std::shared_ptr<Movie> create( MediaLibraryPtr ml, int64_t mediaId );
static MoviePtr fromMedia( MediaLibraryPtr ml, int64_t mediaId );
static bool deleteByMediaId( MediaLibraryPtr ml, int64_t mediaId );
private:
MediaLibraryPtr m_ml;
......
......@@ -103,3 +103,19 @@ TEST_F( Movies, CheckDbModel )
auto res = Movie::checkDbModel( ml.get() );
ASSERT_TRUE( res );
}
TEST_F( Movies, DeleteByMediaId )
{
auto media1 = std::static_pointer_cast<Media>( ml->addMedia( "movie.mkv", IMedia::Type::Video ) );
auto media2 = std::static_pointer_cast<Media>( ml->addMedia( "movie2.mkv", IMedia::Type::Video ) );
auto movie1 = ml->createMovie( *media1 );
auto movie2 = ml->createMovie( *media2 );
ASSERT_NE( movie1, nullptr );
ASSERT_NE( movie2, nullptr );
Movie::deleteByMediaId( ml.get(), media1->id() );
movie1 = std::static_pointer_cast<Movie>( ml->movie( movie1->id() ) );
ASSERT_EQ( nullptr, movie1 );
movie2 = std::static_pointer_cast<Movie>( ml->movie( movie2->id() ) );
ASSERT_NE( nullptr, movie2 );
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment