From e764bc45dec135db760bdb7ba489875edef72b59 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Tue, 22 Oct 2019 20:30:43 -0400 Subject: [PATCH] When song is uploaded the response returned is info about the song and a response --- include/controller/SongController.hpp | 26 +++++--------------------- include/manager/SongManager.h | 3 +-- src/dto/conversion/DtoConversions.cpp | 1 + src/manager/SongManager.cpp | 1 + 4 files changed, 8 insertions(+), 23 deletions(-) diff --git a/include/controller/SongController.hpp b/include/controller/SongController.hpp index 1aab05d..4514e2c 100644 --- a/include/controller/SongController.hpp +++ b/include/controller/SongController.hpp @@ -21,6 +21,7 @@ #include "callback/StreamCallback.h" #include "database/SongRepository.h" #include "dto/SongDto.hpp" +#include "dto/conversion/DtoConversions.h" #include "manager/SongManager.h" #include "manager/TokenManager.h" #include "model/Models.h" @@ -74,8 +75,9 @@ public: manager::SongManager songMgr(m_bConf); songMgr.saveSong(sng); + auto songDto = dto::conversion::DtoConversions::toSongDto(sng); - return createResponse(Status::CODE_200, "OK"); + return createDtoResponse(Status::CODE_200, songDto); } // endpoint for retrieving all song records in json format @@ -95,16 +97,7 @@ public: std::cout << "creating object to send" << std::endl; for (auto& songDb : songsDb) { - auto song = dto::SongDto::createShared(); - song->id = songDb.id; - song->title = songDb.title.c_str(); - song->artist = songDb.artist.c_str(); - song->album = songDb.album.c_str(); - song->genre = songDb.genre.c_str(); - song->year = songDb.year; - song->duration = songDb.duration; - song->track = songDb.track; - song->disc = songDb.disc; + auto song = dto::conversion::DtoConversions::toSongDto(songDb); songs->pushBack(song); } @@ -130,16 +123,7 @@ public: std::cout << "song exists" << std::endl; songDb = songRepo.retrieveRecord(songDb, type::SongFilter::id); - auto song = dto::SongDto::createShared(); - song->id = songDb.id; - song->title = songDb.title.c_str(); - song->artist = songDb.artist.c_str(); - song->album = songDb.album.c_str(); - song->genre = songDb.genre.c_str(); - song->year = songDb.year; - song->duration = songDb.duration; - song->track = songDb.track; - song->disc = songDb.disc; + auto song = dto::conversion::DtoConversions::toSongDto(songDb); return createDtoResponse(Status::CODE_200, song); } diff --git a/include/manager/SongManager.h b/include/manager/SongManager.h index 8e4ed41..f35103c 100644 --- a/include/manager/SongManager.h +++ b/include/manager/SongManager.h @@ -11,8 +11,7 @@ #include "model/Models.h" #include "type/SongChanged.h" -namespace manager -{ +namespace manager { class SongManager { public: diff --git a/src/dto/conversion/DtoConversions.cpp b/src/dto/conversion/DtoConversions.cpp index bb6b62e..9783f41 100644 --- a/src/dto/conversion/DtoConversions.cpp +++ b/src/dto/conversion/DtoConversions.cpp @@ -31,6 +31,7 @@ namespace dto { namespace conversion { result->album = (!song.album.empty()) ? song.album.c_str() : ""; result->artist = (!song.artist.empty()) ? song.artist.c_str() : ""; result->genre = (!song.genre.empty()) ? song.genre.c_str() : ""; + result->duration = (song.duration != 0) ? song.duration : 0; result->year = (song.year != 0) ? song.year : 0; result->track = (song.track != 0) ? song.track : 0; result->disc = (song.disc != 0) ? song.disc : 0; diff --git a/src/manager/SongManager.cpp b/src/manager/SongManager.cpp index 8ddbbea..36baffe 100644 --- a/src/manager/SongManager.cpp +++ b/src/manager/SongManager.cpp @@ -83,6 +83,7 @@ void manager::SongManager::saveSong(model::Song& song) database::SongRepository songRepo(m_bConf); songRepo.saveRecord(song); + song = songRepo.retrieveRecord(song, type::SongFilter::title); } void manager::SongManager::deleteSong(model::Song& song)