Can retrieve all song records

This commit is contained in:
kdeng00
2019-08-25 15:26:47 -04:00
parent 2145adb039
commit 540d665a7e
2 changed files with 31 additions and 8 deletions
-3
View File
@@ -2,7 +2,6 @@
#define LOGINCONTROLLER_H_ #define LOGINCONTROLLER_H_
#include <iostream> #include <iostream>
#include <filesystem>
#include <string> #include <string>
#include <memory> #include <memory>
@@ -13,8 +12,6 @@
#include "../dto/loginResultDto.hpp" #include "../dto/loginResultDto.hpp"
#include "managers/token_manager.h" #include "managers/token_manager.h"
namespace fs = std::filesystem;
class loginController : public oatpp::web::server::api::ApiController class loginController : public oatpp::web::server::api::ApiController
{ {
public: public:
+31 -5
View File
@@ -2,7 +2,7 @@
#define SONGCONTROLLER_H_ #define SONGCONTROLLER_H_
#include <iostream> #include <iostream>
#include <filesystem> #include <limits>
#include <string> #include <string>
#include <memory> #include <memory>
#include <vector> #include <vector>
@@ -13,6 +13,8 @@
#include "oatpp/web/mime/multipart/Reader.hpp" #include "oatpp/web/mime/multipart/Reader.hpp"
#include "oatpp/web/server/api/ApiController.hpp" #include "oatpp/web/server/api/ApiController.hpp"
#include "database/songRepository.h"
#include "../dto/songDto.hpp"
#include "managers/song_manager.h" #include "managers/song_manager.h"
#include "managers/token_manager.h" #include "managers/token_manager.h"
#include "models/models.h" #include "models/models.h"
@@ -27,8 +29,7 @@ public:
#include OATPP_CODEGEN_BEGIN(ApiController) #include OATPP_CODEGEN_BEGIN(ApiController)
// TODO: work on uploading a song // endpoint for uploading a song
// and clean up
ENDPOINT("POST", "/api/v1/song/data", songUpload, ENDPOINT("POST", "/api/v1/song/data", songUpload,
REQUEST(std::shared_ptr<IncomingRequest>, request)) REQUEST(std::shared_ptr<IncomingRequest>, request))
{ {
@@ -68,11 +69,36 @@ public:
return createResponse(Status::CODE_200, "OK"); return createResponse(Status::CODE_200, "OK");
} }
// endpoint for retrieving all song records in json format
ENDPOINT("GET", "/api/v1/song", songRecords,
REQUEST(std::shared_ptr<IncomingRequest>, request))
{
std::cout << "starting process of retrieving songs" << std::endl;
songRepository songRepo(exe_path);
auto songsDb = songRepo.retrieveRecords();
auto songs = oatpp::data::mapping::type::List<songDto::ObjectWrapper>::createShared();
std::cout << "creating object to send" << std::endl;
for (auto& songDb : songsDb) {
auto song = 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;
songs->pushBack(song);
}
return createDtoResponse(Status::CODE_200, songs);
}
#include OATPP_CODEGEN_END(ApiController) #include OATPP_CODEGEN_END(ApiController)
private: private:
std::string exe_path; std::string exe_path;
const long dataSize = std::numeric_limits<long long int>::max();
const long dataSize = 1000000000000;
}; };
#endif #endif