Files
soaricarus_api/src/manager/YearManager.cpp
T
2019-11-17 13:33:58 -05:00

72 lines
1.9 KiB
C++

#include "manager/YearManager.h"
#include <iostream>
#include "database/YearRepository.h"
#include "type/YearFilter.h"
namespace manager {
YearManager::YearManager(const model::BinaryPath& bConf) : m_bConf(bConf) { }
model::Year YearManager::retrieveYear(model::Year& year) {
database::YearRepository yearRepo(m_bConf);
year = yearRepo.retrieveRecord(year, type::YearFilter::year);
return year;
}
model::Year YearManager::saveYear(const model::Song& song) {
model::Year year;
year.year = song.year;
database::YearRepository yearRepo(m_bConf);
if (!yearRepo.doesYearExist(year, type::YearFilter::year)) {
yearRepo.saveRecord(year);
} else {
std::cout << "year record already exists in the database\n";
}
return year;
}
void YearManager::deleteYear(const model::Song& song) {
model::Year year(song);
database::YearRepository yrRepo(m_bConf);
auto yrWSC = yrRepo.retrieveRecordWithSongCount(year, type::YearFilter::id);
if (yrWSC.second > 1) {
std::cout << "year still contain songs related to it";
std::cout << ", will not delete\n";
return;
}
std::cout << "safe to delete the year record\n";
yrRepo.deleteYear(year, type::YearFilter::id);
}
void YearManager::updateYear(model::Song& updatedSong,
const model::Song& currSong) {
model::Year year;
year.year = updatedSong.year;
database::YearRepository albRepo(m_bConf);
if (!albRepo.doesYearExist(year, type::YearFilter::year)) {
std::cout << "year record does not exist\n";
albRepo.saveRecord(year);
} else {
std::cout << "year record already exists\n";
}
year = albRepo.retrieveRecord(year, type::YearFilter::year);
updatedSong.yearId = year.id;
}
void YearManager::printYear(const model::Year& year) {
std::cout << "\nyear record\n";
std::cout << "id: " << year.id << "\n";
std::cout << "year: " << year.year << "\n";
}
}