Added functionality to check if the song already exists when uploading

This commit is contained in:
kdeng00
2019-11-13 20:22:29 -05:00
parent 3b0f199dca
commit ca1fcb801d
5 changed files with 56 additions and 27 deletions
+27 -20
View File
@@ -23,8 +23,33 @@ namespace fs = std::filesystem;
namespace manager {
SongManager::SongManager(const model::BinaryPath& bConf)
: m_bConf(bConf)
{ }
: m_bConf(bConf) { }
std::pair<bool, type::SongUpload> SongManager::saveSong(model::Song& song)
{
saveSongTemp(song);
utility::MetadataRetriever meta;
auto data = std::move(song.data);
song = meta.retrieveMetadata(song);
song.data = std::move(data);
database::SongRepository songRepo(m_bConf);
if (songRepo.doesSongExist(song, type::SongFilter::titleAndArtist)) {
std::cout << "\ntitle: " << song.title << "\nartist: " << song.artist << "\n";
std::cout << "does not exist\n";
return std::make_pair(false, type::SongUpload::AlreadyExist);
}
saveMisc(song);
printSong(song);
songRepo.saveRecord(song);
song = songRepo.retrieveRecord(song, type::SongFilter::titleAndArtist);
return std::make_pair(true, type::SongUpload::Successful);
}
bool SongManager::didSongChange(const model::Song& updatedSong,
@@ -123,24 +148,6 @@ bool SongManager::updateSong(model::Song& updatedSong)
}
void SongManager::saveSong(model::Song& song)
{
saveSongTemp(song);
utility::MetadataRetriever meta;
auto data = std::move(song.data);
song = meta.retrieveMetadata(song);
song.data = std::move(data);
saveMisc(song);
printSong(song);
database::SongRepository songRepo(m_bConf);
songRepo.saveRecord(song);
song = songRepo.retrieveRecord(song, type::SongFilter::titleAndArtist);
}
void SongManager::printSong(const model::Song& song)
{
std::cout << "\nsong" << std::endl;