From f81b481f381e46027732a69d2135b7e862d19ebc Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Wed, 31 Jul 2019 21:52:06 -0400 Subject: [PATCH] Added feature to retrieve song records in json format. One issue is that the json file is in one line --- CMakeLists.txt | 2 ++ include/Managers/CommitManager.h | 7 +++++ include/Syncers/RetrieveRecords.h | 25 +++++++++++++++ src/Main.cpp | 20 ++++++------ src/Managers/ActionManager.cpp | 6 ++-- src/Managers/CommitManager.cpp | 32 +++++++++++++++++++ src/Syncers/RetrieveRecords.cpp | 51 +++++++++++++++++++++++++++++++ 7 files changed, 130 insertions(+), 13 deletions(-) create mode 100644 include/Syncers/RetrieveRecords.h create mode 100644 src/Syncers/RetrieveRecords.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 25dc728..1a95ab6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,6 +50,7 @@ set(SOURCES src/Parsers/APIParser.cpp src/Syncers/Delete.cpp src/Syncers/Download.cpp + src/Syncers/RetrieveRecords.cpp src/Syncers/Upload.cpp src/Utilities/Conversions.cpp ) @@ -69,6 +70,7 @@ set(HEADERS include/Parsers/APIParser.h include/Syncers/Delete.h include/Syncers/Download.h + include/Syncers/RetrieveRecords.h include/Syncers/SyncerBase.h include/Syncers/Upload.h include/Utilities/Conversions.h diff --git a/include/Managers/CommitManager.h b/include/Managers/CommitManager.h index 975094f..52041ee 100644 --- a/include/Managers/CommitManager.h +++ b/include/Managers/CommitManager.h @@ -16,12 +16,19 @@ namespace Managers CommitManager(Models::IcarusAction); void commitAction(); + + enum RetrieveTypes + { + songs + }; + private: Models::Token parseToken(Models::API); void initializeMapActions(); void deleteSong(); void downloadSong(); + void retrieveObjects(); void uploadSong(); enum ActionValues diff --git a/include/Syncers/RetrieveRecords.h b/include/Syncers/RetrieveRecords.h new file mode 100644 index 0000000..c3b824f --- /dev/null +++ b/include/Syncers/RetrieveRecords.h @@ -0,0 +1,25 @@ +#ifndef RETRIEVERECORDS_H_ +#define RETRIEVERECORDS_H_ + +#include "Managers/CommitManager.h" +#include "Models/API.h" +#include "Models/Token.h" + +namespace Syncers +{ + class RetrieveRecords + { + public: + RetrieveRecords(); + RetrieveRecords(Models::API, Models::Token); + + void retrieve(Managers::CommitManager::RetrieveTypes); + private: + void fetchSongs(); + + Models::API api; + Models::Token token; + }; +} + +#endif diff --git a/src/Main.cpp b/src/Main.cpp index 9b26e17..010bbc1 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -14,17 +14,17 @@ using Managers::CommitManager; int main(int argc, char** argv) { - if (argc < 2) - { - cout<<"No actions provided"<{ "-u", "-p", "-t", "-h", "-s", - "-d", "-D", "-b" + "-d", "-D", "-b", "-rt" }; } void ActionManager::validateAction() @@ -109,7 +109,7 @@ namespace Managers if (flag.size() > 3 || isNumber(flag)) { flg.value = flag; - //cout<<"flag value "< +#include + +#include + +using std::cout; +using std::endl; +using std::ofstream; + +using Managers::CommitManager; +using Models::API; +using Models::Token; + +namespace Syncers +{ + + RetrieveRecords::RetrieveRecords() { } + RetrieveRecords::RetrieveRecords(API api, Token token) + : token(token), api(api) { } + + void RetrieveRecords::retrieve(CommitManager::RetrieveTypes type) + { + switch (type) + { + case CommitManager::RetrieveTypes::songs: + fetchSongs(); + break; + default: + break; + } + } + void RetrieveRecords::fetchSongs() + { + cout<<"fetching songs"<