From 10ed33d412ceaa0676552c31aa2f15caf6339d59 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sat, 8 Jan 2022 21:09:40 -0500 Subject: [PATCH] Formatting --- include/Managers/ActionManager.h | 42 ++-- include/Managers/CommitManager.h | 66 +++--- include/Managers/FileManager.h | 34 +-- include/Managers/TokenManager.h | 22 +- include/Managers/UserManager.h | 24 +- include/Models/API.h | 15 +- include/Models/Flags.h | 12 +- include/Models/IcarusAction.h | 12 +- include/Models/Song.h | 28 ++- include/Models/Token.h | 14 +- include/Models/UploadForm.h | 12 +- include/Models/User.h | 12 +- include/Parsers/APIParser.h | 22 +- include/Syncers/Delete.h | 18 +- include/Syncers/Download.h | 26 +- include/Syncers/RetrieveRecords.h | 24 +- include/Syncers/SyncerBase.h | 28 ++- include/Syncers/Upload.h | 42 ++-- include/UI/AboutWindow.h | 28 ++- include/UI/CommonWindow.h | 6 + include/UI/MainWindow.h | 88 +++---- include/Utilities/Conversions.h | 20 +- src/Managers/ActionManager.cpp | 213 ++++++++--------- src/Managers/CommitManager.cpp | 380 +++++++++++++++--------------- src/Managers/FileManager.cpp | 107 +++++---- src/Managers/TokenManager.cpp | 80 ++++--- src/Managers/UserManager.cpp | 64 ++--- src/Parsers/APIParser.cpp | 72 +++--- src/Syncers/Delete.cpp | 94 ++++---- src/Syncers/Download.cpp | 150 ++++++------ src/Syncers/RetrieveRecords.cpp | 77 +++--- src/Syncers/Upload.cpp | 313 ++++++++++++------------ src/UI/AboutWindow.cpp | 87 +++---- src/UI/MainWindow.cpp | 324 ++++++++++++------------- src/Utilities/Conversions.cpp | 32 +-- 35 files changed, 1340 insertions(+), 1248 deletions(-) diff --git a/include/Managers/ActionManager.h b/include/Managers/ActionManager.h index 63afb3b..2a30023 100644 --- a/include/Managers/ActionManager.h +++ b/include/Managers/ActionManager.h @@ -11,33 +11,35 @@ namespace Managers { - class ActionManager - { - public: - ActionManager(char**, int); - Models::IcarusAction retrieveIcarusAction() const; - private: - constexpr std::array supportedFlags() noexcept; - constexpr std::array supportedActions() noexcept; +class ActionManager +{ +public: + ActionManager(char**, int); - bool isNumber(const std::string_view) noexcept; + Models::IcarusAction retrieveIcarusAction() const; +private: + constexpr std::array supportedFlags() noexcept; + constexpr std::array supportedActions() noexcept; - void initialize(); - void validateFlags(); + bool isNumber(const std::string_view) noexcept; - std::vector parsedFlags(); + void initialize(); + void validateFlags(); - void printAction() noexcept; - void printFlags() noexcept; + std::vector parsedFlags(); - std::string action; - - std::vector flags; + void printAction() noexcept; + void printFlags() noexcept; + + std::string action; + + std::vector flags; + + char **params; + int paramCount; +}; - char **params; - int paramCount; - }; } #endif diff --git a/include/Managers/CommitManager.h b/include/Managers/CommitManager.h index 4c2aa94..937e1aa 100644 --- a/include/Managers/CommitManager.h +++ b/include/Managers/CommitManager.h @@ -10,40 +10,42 @@ namespace Managers { - class CommitManager + +class CommitManager +{ +public: + CommitManager(Models::IcarusAction&); + + void commitAction(); + + enum class RetrieveTypes { - public: - CommitManager(Models::IcarusAction&); - - void commitAction(); - - enum class RetrieveTypes - { - songs - }; - - private: - enum class ActionValues; - - std::map mapActions() noexcept; - - Models::Token parseToken(Models::API); - - void deleteSong(); - void downloadSong(); - void retrieveObjects(); - void uploadSong(); - - enum class ActionValues - { - deleteAct, - downloadAct, - retrieveAct, - uploadAct - }; - - Models::IcarusAction icaAction; + songs }; + +private: + enum class ActionValues; + + std::map mapActions() noexcept; + + Models::Token parseToken(Models::API); + + void deleteSong(); + void downloadSong(); + void retrieveObjects(); + void uploadSong(); + + enum class ActionValues + { + deleteAct, + downloadAct, + retrieveAct, + uploadAct + }; + + Models::IcarusAction icaAction; +}; + } #endif diff --git a/include/Managers/FileManager.h b/include/Managers/FileManager.h index db0fc68..675950c 100644 --- a/include/Managers/FileManager.h +++ b/include/Managers/FileManager.h @@ -5,25 +5,27 @@ namespace Managers { - class FileManager - { - public: - FileManager(); - FileManager(std::string); - void saveFile(std::string); - void modifyFilePath(std::string); +class FileManager +{ +public: + FileManager(); + FileManager(std::string); - char* retrieveFileBuffer() const; - int retrieveFileBufferLength() const; - private: - void readFile(); + void saveFile(std::string); + void modifyFilePath(std::string); + + char* retrieveFileBuffer() const; + int retrieveFileBufferLength() const; +private: + void readFile(); + + std::string filePath; + char* fileBuffer; + bool fileRead; + int fileBufferLength; +}; - std::string filePath; - char* fileBuffer; - bool fileRead; - int fileBufferLength; - }; } #endif diff --git a/include/Managers/TokenManager.h b/include/Managers/TokenManager.h index 9f07556..4e42632 100644 --- a/include/Managers/TokenManager.h +++ b/include/Managers/TokenManager.h @@ -7,17 +7,19 @@ namespace Managers { - class TokenManager - { - public: - TokenManager(const Models::User&); - TokenManager(const Models::User&, Models::API&); - Models::Token requestToken(); - private: - Models::API api; - Models::User user; - }; +class TokenManager +{ +public: + TokenManager(const Models::User&); + TokenManager(const Models::User&, Models::API&); + + Models::Token requestToken(); +private: + Models::API api; + Models::User user; +}; + } #endif diff --git a/include/Managers/UserManager.h b/include/Managers/UserManager.h index 21b9755..423e938 100644 --- a/include/Managers/UserManager.h +++ b/include/Managers/UserManager.h @@ -8,19 +8,21 @@ namespace Managers { - class UserManager - { - public: - UserManager(Models::User); - UserManager(const Models::IcarusAction); - Models::User retrieveUser() const; - private: - void parseUserFromActions(); +class UserManager +{ +public: + UserManager(Models::User); + UserManager(const Models::IcarusAction); + + Models::User retrieveUser() const; +private: + void parseUserFromActions(); + + Models::User user; + Models::IcarusAction icaAction; +}; - Models::User user; - Models::IcarusAction icaAction; - }; } #endif diff --git a/include/Models/API.h b/include/Models/API.h index cd7a5cd..7c72fc2 100644 --- a/include/Models/API.h +++ b/include/Models/API.h @@ -5,12 +5,15 @@ namespace Models { - struct API - { - std::string url; - std::string endpoint; - std::string version; - }; + +class API +{ +public: + std::string url; + std::string endpoint; + std::string version; +}; + } #endif diff --git a/include/Models/Flags.h b/include/Models/Flags.h index 6772e10..5e269fa 100644 --- a/include/Models/Flags.h +++ b/include/Models/Flags.h @@ -5,11 +5,13 @@ namespace Models { - struct Flags - { - std::string flag; - std::string value; - }; + +struct Flags +{ + std::string flag; + std::string value; +}; + } #endif diff --git a/include/Models/IcarusAction.h b/include/Models/IcarusAction.h index 9a32775..39f7e54 100644 --- a/include/Models/IcarusAction.h +++ b/include/Models/IcarusAction.h @@ -8,11 +8,13 @@ namespace Models { - struct IcarusAction - { - std::string action; - std::vector flags; - }; + +struct IcarusAction +{ + std::string action; + std::vector flags; +}; + } #endif diff --git a/include/Models/Song.h b/include/Models/Song.h index 4ed0017..7d5425d 100644 --- a/include/Models/Song.h +++ b/include/Models/Song.h @@ -6,19 +6,21 @@ namespace Models { - struct Song - { - int id; - std::string title; - std::string artist; - std::string album; - std::string genre; - int year; - int duration; - int track; - std::string data; - std::string songPath; - }; + +struct Song +{ + int id; + std::string title; + std::string artist; + std::string album; + std::string genre; + int year; + int duration; + int track; + std::string data; + std::string songPath; +}; + } #endif diff --git a/include/Models/Token.h b/include/Models/Token.h index cc66a54..eeb0338 100644 --- a/include/Models/Token.h +++ b/include/Models/Token.h @@ -5,12 +5,14 @@ namespace Models { - struct Token - { - std::string accessToken; - std::string tokenType; - int expiration; - }; + +struct Token +{ + std::string accessToken; + std::string tokenType; + int expiration; +}; + } #endif diff --git a/include/Models/UploadForm.h b/include/Models/UploadForm.h index cbdf950..b65b957 100644 --- a/include/Models/UploadForm.h +++ b/include/Models/UploadForm.h @@ -6,11 +6,13 @@ namespace Models { - struct UploadForm - { - std::string url; - std::string filePath; - }; + +struct UploadForm +{ + std::string url; + std::string filePath; +}; + } #endif diff --git a/include/Models/User.h b/include/Models/User.h index b64523a..aed560d 100644 --- a/include/Models/User.h +++ b/include/Models/User.h @@ -5,11 +5,13 @@ namespace Models { - struct User - { - std::string username; - std::string password; - }; + +struct User +{ + std::string username; + std::string password; +}; + } #endif diff --git a/include/Parsers/APIParser.h b/include/Parsers/APIParser.h index ca24801..51aa22b 100644 --- a/include/Parsers/APIParser.h +++ b/include/Parsers/APIParser.h @@ -6,18 +6,20 @@ namespace Parsers { - class APIParser - { - public: - APIParser(Models::IcarusAction); - Models::API retrieveAPI() const; - private: - void parseAPI(); +class APIParser +{ +public: + APIParser(Models::IcarusAction); + + Models::API retrieveAPI() const; +private: + void parseAPI(); + + Models::API api; + Models::IcarusAction icaAct; +}; - Models::API api; - Models::IcarusAction icaAct; - }; } #endif diff --git a/include/Syncers/Delete.h b/include/Syncers/Delete.h index 0546578..b927f64 100644 --- a/include/Syncers/Delete.h +++ b/include/Syncers/Delete.h @@ -9,15 +9,17 @@ namespace Syncers { - class Delete : SyncerBase - { - public: - Delete(Models::API); - void deleteSong(const Models::Token, Models::Song); - private: - std::string retrieveUrl(Models::Song); - }; +class Delete : SyncerBase +{ +public: + Delete(Models::API); + + void deleteSong(const Models::Token, Models::Song); +private: + std::string retrieveUrl(Models::Song); +}; + } #endif diff --git a/include/Syncers/Download.h b/include/Syncers/Download.h index c5685fd..7c0fcb6 100644 --- a/include/Syncers/Download.h +++ b/include/Syncers/Download.h @@ -12,20 +12,22 @@ namespace Syncers { - class Download : SyncerBase - { - public: - Download(); - Download(Models::API); - Download(std::string); - void downloadSong(const Models::Token token, Models::Song); - private: - std::string retrieveUrl(Models::Song); +class Download : SyncerBase +{ +public: + Download(); + Download(Models::API); + Download(std::string); + + void downloadSong(const Models::Token token, Models::Song); +private: + std::string retrieveUrl(Models::Song); + + std::string downloadFilePath; + void saveSong(Models::Song&); +}; - std::string downloadFilePath; - void saveSong(Models::Song&); - }; } #endif diff --git a/include/Syncers/RetrieveRecords.h b/include/Syncers/RetrieveRecords.h index 6f1709a..72fa807 100644 --- a/include/Syncers/RetrieveRecords.h +++ b/include/Syncers/RetrieveRecords.h @@ -8,19 +8,21 @@ namespace Syncers { - class RetrieveRecords: public SyncerBase - { - public: - RetrieveRecords(); - RetrieveRecords(Models::API, Models::Token); - void retrieve(Managers::CommitManager::RetrieveTypes); - private: - void fetchSongs(); +class RetrieveRecords: public SyncerBase +{ +public: + RetrieveRecords(); + RetrieveRecords(Models::API, Models::Token); + + void retrieve(Managers::CommitManager::RetrieveTypes); +private: + void fetchSongs(); + + Models::API api; + Models::Token token; +}; - Models::API api; - Models::Token token; - }; } #endif diff --git a/include/Syncers/SyncerBase.h b/include/Syncers/SyncerBase.h index 12d36e4..6948a42 100644 --- a/include/Syncers/SyncerBase.h +++ b/include/Syncers/SyncerBase.h @@ -7,21 +7,23 @@ namespace Syncers { - class SyncerBase - { - protected: - Models::API api; - const int OK = 200; - const int UNAUTHORIZED = 401; - const int NOTFOUND = 404; - enum class Result - { - OK = 200, - UNAUTHORIZED = 401, - NOTFOUND = 404 - }; +class SyncerBase +{ +protected: + Models::API api; + const int OK = 200; + const int UNAUTHORIZED = 401; + const int NOTFOUND = 404; + + enum class Result + { + OK = 200, + UNAUTHORIZED = 401, + NOTFOUND = 404 }; +}; + } #endif diff --git a/include/Syncers/Upload.h b/include/Syncers/Upload.h index 5b9890d..c7429e8 100644 --- a/include/Syncers/Upload.h +++ b/include/Syncers/Upload.h @@ -18,31 +18,33 @@ namespace fs = std::filesystem; namespace Syncers { - class Upload - { - public: - Upload(); - Upload(Models::API); - Models::Song uploadSong(const Models::Token&, Models::Song&); - void uploadSongsFromDirectory(const Models::Token&, - const std::string&, const bool, bool); - private: - Managers::FileManager fMgr; - Models::API api; - Models::Song song; +class Upload +{ +public: + Upload(); + Upload(Models::API); - std::vector retrieveAllSongsFromDirectory(const std::string&, - bool); + Models::Song uploadSong(const Models::Token&, Models::Song&); + void uploadSongsFromDirectory(const Models::Token&, + const std::string&, const bool, bool); +private: + Managers::FileManager fMgr; + Models::API api; + Models::Song song; - std::string retrieveUrl(); + std::vector retrieveAllSongsFromDirectory(const std::string&, + bool); - Models::Song retrieveSongPath(fs::directory_entry&); + std::string retrieveUrl(); + + Models::Song retrieveSongPath(fs::directory_entry&); + + void printSongDetails(); + void printSongDetails(std::vector&); + void printJsonData(const nlohmann::json&); +}; - void printSongDetails(); - void printSongDetails(std::vector&); - void printJsonData(const nlohmann::json&); - }; } #endif diff --git a/include/UI/AboutWindow.h b/include/UI/AboutWindow.h index e47194c..15e5593 100644 --- a/include/UI/AboutWindow.h +++ b/include/UI/AboutWindow.h @@ -13,22 +13,24 @@ namespace UI { - class AboutWindow: public QDialog, public CommonWindow - { - Q_OBJECT - public: - AboutWindow(QWidget* parent=0); - ~AboutWindow() = default; - private: - void connections(); - void setupWindow(); +class AboutWindow: public QDialog, public CommonWindow +{ + Q_OBJECT +public: + AboutWindow(QWidget* parent=0); + ~AboutWindow() = default; - std::unique_ptr appName; +private: + void connections(); + void setupWindow(); + + std::unique_ptr appName; + +private slots: + void closeWindow(); +}; - private slots: - void closeWindow(); - }; } #endif diff --git a/include/UI/CommonWindow.h b/include/UI/CommonWindow.h index 5b9fdd6..f3a5413 100644 --- a/include/UI/CommonWindow.h +++ b/include/UI/CommonWindow.h @@ -10,6 +10,9 @@ #include +namespace UI +{ + class CommonWindow { public: @@ -24,4 +27,7 @@ protected: std::unique_ptr subLayoutTwoQt; int windowHeight, windowWidth; }; + +} + #endif diff --git a/include/UI/MainWindow.h b/include/UI/MainWindow.h index 7c32369..0460b1e 100644 --- a/include/UI/MainWindow.h +++ b/include/UI/MainWindow.h @@ -22,61 +22,63 @@ namespace UI { - class MainWindow: public QMainWindow, public CommonWindow - { - Q_OBJECT - public: - MainWindow(); - ~MainWindow() = default; - private: - void configureDownloadSection(); - void configureUploadSection(); - void configureWindowDimensions(); - void configureWindowProperties(); - void connections(); - void createMenus(); - void setupMainWidget(); - void setupMainWindow(); - void setupWindowLists(); + +class MainWindow: public QMainWindow, public CommonWindow +{ + Q_OBJECT +public: + MainWindow(); + ~MainWindow() = default; +private: + void configureDownloadSection(); + void configureUploadSection(); + void configureWindowDimensions(); + void configureWindowProperties(); + void connections(); + void createMenus(); + void setupMainWidget(); + void setupMainWindow(); + void setupWindowLists(); - std::unique_ptr widgetStack; + std::unique_ptr widgetStack; - std::unique_ptr stackLayout; + std::unique_ptr stackLayout; - std::unique_ptr urlPortion; - std::unique_ptr songPathPortion; + std::unique_ptr urlPortion; + std::unique_ptr songPathPortion; - std::unique_ptr mainWidgetQt; - std::unique_ptr uploadSongWidgetQt; + std::unique_ptr mainWidgetQt; + std::unique_ptr uploadSongWidgetQt; - std::unique_ptr MainDockWidgetQt; + std::unique_ptr MainDockWidgetQt; - std::unique_ptr windowComboBox; - - std::unique_ptr uploadSongQt; + std::unique_ptr windowComboBox; + + std::unique_ptr uploadSongQt; - std::unique_ptr urlQt; - std::unique_ptr sourceFilePathQt; + std::unique_ptr urlQt; + std::unique_ptr sourceFilePathQt; - std::unique_ptr urlLabel; - std::unique_ptr songPath; + std::unique_ptr urlLabel; + std::unique_ptr songPath; - std::unique_ptr fileMenuQt; - std::unique_ptr editMenuQt; - std::unique_ptr helpMenuQt; + std::unique_ptr fileMenuQt; + std::unique_ptr editMenuQt; + std::unique_ptr helpMenuQt; - std::unique_ptr closeApplicationQt; - std::unique_ptr aboutApplicationQt; + std::unique_ptr closeApplicationQt; + std::unique_ptr aboutApplicationQt; + + std::unique_ptr aboutWindow; +signals: +private slots: + void uploadSong(); + void exitApplication(); + void displaySoftwareInformation(); + void setCurrentIndex(int); +}; - std::unique_ptr aboutWindow; - signals: - private slots: - void uploadSong(); - void exitApplication(); - void displaySoftwareInformation(); - void setCurrentIndex(int); - }; } #endif diff --git a/include/Utilities/Conversions.h b/include/Utilities/Conversions.h index d92d060..0d35303 100644 --- a/include/Utilities/Conversions.h +++ b/include/Utilities/Conversions.h @@ -6,17 +6,19 @@ namespace Utilities { - class Conversions - { - public: - Conversions(); - void initializeValues(); +class Conversions +{ +public: + Conversions(); + + void initializeValues(); + + template + void printValue(T); +private: +}; - template - void printValue(T); - private: - }; } #endif diff --git a/src/Managers/ActionManager.cpp b/src/Managers/ActionManager.cpp index ba49d7b..0e146d1 100644 --- a/src/Managers/ActionManager.cpp +++ b/src/Managers/ActionManager.cpp @@ -16,130 +16,131 @@ using Models::IcarusAction; namespace Managers { - #pragma - ActionManager::ActionManager(char **param, int paramCount) : - params(std::move(param)), paramCount(paramCount) - { - initialize(); - } - #pragma Constructors + +#pragma region Constructors +ActionManager::ActionManager(char **param, int paramCount) : + params(std::move(param)), paramCount(paramCount) +{ + initialize(); +} +#pragma endregion - #pragma - IcarusAction ActionManager::retrieveIcarusAction() const - { - IcarusAction icarusAction; - icarusAction.flags = flags; - icarusAction.action = action; +#pragma region Functions +IcarusAction ActionManager::retrieveIcarusAction() const +{ + IcarusAction icarusAction; + icarusAction.flags = flags; + icarusAction.action = action; - return icarusAction; - } + return icarusAction; +} - constexpr std::array ActionManager::supportedFlags() noexcept - { - constexpr std::array allFlags{"-u", "-p", "-t", "-h", "-s", - "-sd", "-sr", "-d", "-D", "-b", "-rt", "-nc"}; +constexpr std::array ActionManager::supportedFlags() noexcept +{ + constexpr std::array allFlags{"-u", "-p", "-t", "-h", "-s", + "-sd", "-sr", "-d", "-D", "-b", "-rt", "-nc"}; - return allFlags; - } + return allFlags; +} - bool ActionManager::isNumber(string_view val) noexcept - { - return !val.empty() && std::find_if(val.begin(), - val.end(), [](char c) - { - return !std::isdigit(c); - }) == val.end(); - } - - void ActionManager::initialize() - { - validateFlags(); - - action = std::move(string{params[1]}); - transform(action.begin(), action.end(), - action.begin(), ::tolower); - } - void ActionManager::validateFlags() - { - cout<<"Validating flags"< 3 || isNumber(flag)) - { - flg.value = flag; - //cout<<"flag value "< ActionManager::parsedFlags() - { - auto parsed = vector(); - - for (auto i = 2; i < paramCount; ++i) + if (flag.size() > 3 || isNumber(flag)) { - const std::string flag(std::move(*(params + i))); - parsed.push_back(std::move(flag)); + flg.value = flag; + + flags.push_back(flg); + flg = Flags{}; + continue; } - return parsed; - } - - #pragma - void ActionManager::printAction() noexcept - { - if (action.empty()) + if (std::any_of(allSupportedFlags.begin(), allSupportedFlags.end(), + [&](const char *val) + { + return !flag.compare(val); + })) { - printf("Action is empty\n"); + flg.flag = flag; } else { - cout<<"Action is "< ActionManager::parsedFlags() +{ + auto parsed = vector(); + + for (auto i = 2; i < paramCount; ++i) + { + const std::string flag(std::move(*(params + i))); + parsed.push_back(std::move(flag)); + } + + return parsed; +} + +#pragma region Testing +void ActionManager::printAction() noexcept +{ + if (action.empty()) + { + printf("Action is empty\n"); + } + else + { + cout<<"Action is "< - CommitManager::mapActions() noexcept +#pragma region Functions +void CommitManager::commitAction() +{ + auto action = icaAction.action; + cout<<"Commiting "< actions{ - {"delete", ActionValues::deleteAct}, - {"download", ActionValues::downloadAct}, - {"retrieve", ActionValues::retrieveAct}, - {"upload", ActionValues::uploadAct} - }; - - return actions; + case ActionValues::deleteAct: + deleteSong(); + break; + case ActionValues::downloadAct: + downloadSong(); + break; + case ActionValues::retrieveAct: + retrieveObjects(); + break; + case ActionValues::uploadAct: + uploadSong(); + break; + default: + break; } - - - Token CommitManager::parseToken(API api) - { - cout<<"fetching token"< + CommitManager::mapActions() noexcept +{ + const std::map actions{ + {"delete", ActionValues::deleteAct}, + {"download", ActionValues::downloadAct}, + {"retrieve", ActionValues::retrieveAct}, + {"upload", ActionValues::uploadAct} + }; + + return actions; +} + + +Token CommitManager::parseToken(API api) +{ + cout<<"fetching token"<filePath = filePath; + +#pragma region Constructors +FileManager::FileManager() {} +FileManager::FileManager(string filePath) +{ + this->filePath = filePath; + readFile(); +} +#pragma endregion + + +#pragma region Functions +void FileManager::saveFile(string newFilePath) +{ + if (!fileRead) readFile(); - } - - void FileManager::saveFile(string newFilePath) - { - if (!fileRead) - readFile(); - - ofstream of{newFilePath, ofstream::binary}; - of.write(fileBuffer, fileBufferLength); - of.close(); - } - - void FileManager::readFile() - { - ifstream is{filePath, ifstream::binary}; - if (is) - { - is.seekg (0, is.end); - fileBufferLength = is.tellg(); - is.seekg (0, is.beg); - - fileBuffer = new char [fileBufferLength]; - - cout<< "Reading "<filePath = filePath; - } - - char* FileManager::retrieveFileBuffer() const - { - return fileBuffer; - } - - int FileManager::retrieveFileBufferLength() const { return fileBufferLength; } + ofstream of{newFilePath, ofstream::binary}; + of.write(fileBuffer, fileBufferLength); + of.close(); +} + +void FileManager::readFile() +{ + ifstream is{filePath, ifstream::binary}; + if (is) + { + is.seekg (0, is.end); + fileBufferLength = is.tellg(); + is.seekg (0, is.beg); + + fileBuffer = new char [fileBufferLength]; + + cout<< "Reading "<filePath = filePath; +} + +char* FileManager::retrieveFileBuffer() const +{ + return fileBuffer; +} + +int FileManager::retrieveFileBufferLength() const { return fileBufferLength; } + +#pragma endregion + } diff --git a/src/Managers/TokenManager.cpp b/src/Managers/TokenManager.cpp index 730e63c..44f1725 100644 --- a/src/Managers/TokenManager.cpp +++ b/src/Managers/TokenManager.cpp @@ -17,44 +17,46 @@ using Models::User; namespace Managers { - #pragma - TokenManager::TokenManager(const User& user) - { - this->user = user; - } - TokenManager::TokenManager(const User& user, API& api) - { - this->user = user; - this->api = api; - this->api.endpoint = "api/" + api.version - + "/login"; - } - #pragma Constructors - - #pragma - Token TokenManager::requestToken() - { - Token token{}; - json usrObj; - - usrObj["username"] = user.username; - usrObj["password"] = user.password; - - cout<<"Sending request for token"<user = user; +} +TokenManager::TokenManager(const User& user, API& api) +{ + this->user = user; + this->api = api; + this->api.endpoint = "api/" + api.version + + "/login"; +} +#pragma endregion + + +#pragma region Functions +Token TokenManager::requestToken() +{ + Token token{}; + json usrObj; + + usrObj["username"] = user.username; + usrObj["password"] = user.password; + + cout<<"Sending request for token"<user = user; - } - UserManager::UserManager(const IcarusAction icaAct) - { - this->icaAction = icaAct; - this->user = User{}; - parseUserFromActions(); - } - #pragma Constructors + +#pragma region Constructors +UserManager::UserManager(User user) +{ + this->user = user; +} +UserManager::UserManager(const IcarusAction icaAct) +{ + this->icaAction = icaAct; + this->user = User{}; + parseUserFromActions(); +} +#pragma endregion - #pragma - User UserManager::retrieveUser() const - { - return user; - } +#pragma region Functions +User UserManager::retrieveUser() const +{ + return user; +} - void UserManager::parseUserFromActions() - { - auto args = icaAction.flags; +void UserManager::parseUserFromActions() +{ + auto args = icaAction.flags; - for (auto arg : args) + for (auto arg : args) + { + auto flag = arg.flag; + if (flag.compare("-u") == 0) { - auto flag = arg.flag; - if (flag.compare("-u") == 0) - { - user.username = arg.value; - } - if (flag.compare("-p") == 0) - { - user.password = arg.value; - } + user.username = arg.value; + } + if (flag.compare("-p") == 0) + { + user.password = arg.value; } } - #pragma Functions +} +#pragma endregion + } diff --git a/src/Parsers/APIParser.cpp b/src/Parsers/APIParser.cpp index 4e8746b..9722f56 100644 --- a/src/Parsers/APIParser.cpp +++ b/src/Parsers/APIParser.cpp @@ -1,6 +1,6 @@ -#include"Parsers/APIParser.h" +#include "Parsers/APIParser.h" -#include +#include using std::cout; using std::endl; @@ -10,43 +10,45 @@ using Models::IcarusAction; namespace Parsers { - #pragma - APIParser::APIParser(IcarusAction icaAct) : icaAct(icaAct) + +#pragma region Constructors +APIParser::APIParser(IcarusAction icaAct) : icaAct(icaAct) +{ + api = API{}; + parseAPI(); +} +#pragma endregion + + +#pragma region Functions +API APIParser::retrieveAPI() const +{ + return api; +} + +void APIParser::parseAPI() +{ + auto flags = icaAct.flags; + cout << "Parsing api" << endl; + + for (auto i =0; i < flags.size(); ++i) { - api = API{}; - parseAPI(); - } - #pragma endregion + auto arg = flags[i].flag; + auto value = flags[i].value; - - #pragma - API APIParser::retrieveAPI() const - { - return api; - } - - void APIParser::parseAPI() - { - auto flags = icaAct.flags; - cout<<"Parsing api"< -#include +#include +#include -#include +#include using std::cout; using std::endl; @@ -16,47 +16,49 @@ using Models::Token; namespace Syncers { - #pragma - Delete::Delete(API api) - { - this->api = api; - this->api.endpoint = "song/data"; - } - #pragma Constructors - - #pragma - void Delete::deleteSong(const Token token, Song song) - { - try - { - auto url = retrieveUrl(song); - string auth{token.tokenType}; - auth.append(" " + token.accessToken); - auto r = cpr::Delete(cpr::Url(url), - cpr::Header{{"authorization", auth}}); - - auto statusCode = r.status_code; - - cout<<"Status code "<api = api; + this->api.endpoint = "song/data"; +} +#pragma endregion + + +#pragma region Functions +void Delete::deleteSong(const Token token, Song song) +{ + try + { + auto url = retrieveUrl(song); + string auth{token.tokenType}; + auth.append(" " + token.accessToken); + auto r = cpr::Delete(cpr::Url(url), + cpr::Header{{"authorization", auth}}); + + auto statusCode = r.status_code; + + cout<<"Status code "< -#include -#include +#include +#include +#include -#include +#include using std::cout; using std::endl; @@ -18,74 +18,76 @@ using Models::Token; namespace Syncers { - #pragma - Download::Download() { } - Download::Download(API api) - { - this->api = api; - this->api.endpoint = "song/data"; - } - Download::Download(string filePath) - { - downloadFilePath = filePath; - } - #pragma Constructors - - #pragma - void Download::downloadSong(const Token token, Song song) - { - try - { - string url = retrieveUrl(song); - song.songPath.append("track.mp3"); - cout<<"song path "<api = api; + this->api.endpoint = "song/data"; +} +Download::Download(string filePath) +{ + downloadFilePath = filePath; +} +#pragma endregion + + +#pragma region Functions +void Download::downloadSong(const Token token, Song song) +{ + try + { + string url = retrieveUrl(song); + song.songPath.append("track.mp3"); + cout<<"song path "<api.endpoint = "song/data"; +} +#pragma endregion + + +#pragma region Functions +Song Upload::uploadSong(const Models::Token& token, Song& song) +{ + try { - this->api.endpoint = "song/data"; - } + auto url = retrieveUrl(); + cout<<"url "<(); - song.title = result["title"].get(); - song.artist = result["artist"].get(); - song.album = result["album"].get(); - song.genre = result["genre"].get(); - song.year = result["year"].get(); - song.duration = result["duration"].get(); - song.track = result["track"].get(); - - return song; - } - catch (exception& e) - { - auto msg = e.what(); - cout<(); + song.title = result["title"].get(); + song.artist = result["artist"].get(); + song.album = result["album"].get(); + song.genre = result["genre"].get(); + song.year = result["year"].get(); + song.duration = result["duration"].get(); + song.track = result["track"].get(); return song; } - - void Upload::uploadSongsFromDirectory(const Models::Token& token, - const std::string& directory, - const bool noConfirm, bool recursive = false) + catch (exception& e) { - try + auto msg = e.what(); + cout<> answer; - while (!noConfirm) + if (answer == 'y' || answer == 'Y') { - auto answer = 'a'; - cout << "are you sure you want to upload " << songs.size() << " songs? [y/n]"; - cin >> answer; - - if (answer == 'y' || answer == 'Y') - { - confirmUpload = true; - break; - } - else if (answer == 'n' || answer == 'N') - { - confirmUpload = false; - break; - } - } - - if (!confirmUpload) + confirmUpload = true; + break; + } + else if (answer == 'n' || answer == 'N') { - cout << "exiting...\n"; - std::exit(-1); - } - - cout << "uploading songs\n"; - for (auto& song: songs) - { - song = uploadSong(token, song); + confirmUpload = false; + break; } } - catch (exception& e) + + if (!confirmUpload) { - cout< Upload::retrieveAllSongsFromDirectory(const std::string& directory, + bool recursive) +{ + std::vector allSongs; + if (recursive) + { + for (auto p: fs::recursive_directory_iterator(directory)) + { + auto song = retrieveSongPath(p); + if (!song.songPath.empty()) + allSongs.push_back(song); + } + } + else + { + for (auto p: fs::directory_iterator(directory)) + { + auto song = retrieveSongPath(p); + if (!song.songPath.empty()) + allSongs.push_back(song); } } + return allSongs; +} - std::vector Upload::retrieveAllSongsFromDirectory(const std::string& directory, - bool recursive) + +string Upload::retrieveUrl() +{ + const string url{api.url + "api/" + api.version + "/" + + api.endpoint}; + + return url; +} + + +Song Upload::retrieveSongPath(fs::directory_entry& dirEntry) +{ + constexpr auto mp3Ext = ".mp3"; + Song song; + if (fs::is_regular_file(dirEntry.path())) { - std::vector allSongs; - if (recursive) + const auto ext = dirEntry.path().extension().string(); + if (ext.compare(mp3Ext) == 0) { - for (auto p: fs::recursive_directory_iterator(directory)) - { - auto song = retrieveSongPath(p); - if (!song.songPath.empty()) - allSongs.push_back(song); - } + cout << "found mp3 file" << endl; + song.songPath = dirEntry.path().string(); } - else - { - for (auto p: fs::directory_iterator(directory)) - { - auto song = retrieveSongPath(p); - if (!song.songPath.empty()) - allSongs.push_back(song); - } - } - - return allSongs; } - - string Upload::retrieveUrl() - { - const string url{api.url + "api/" + api.version + "/" + - api.endpoint}; - - return url; - } + return song; +} - Song Upload::retrieveSongPath(fs::directory_entry& dirEntry) - { - constexpr auto mp3Ext = ".mp3"; - Song song; - if (fs::is_regular_file(dirEntry.path())) - { - const auto ext = dirEntry.path().extension().string(); - if (ext.compare(mp3Ext) == 0) - { - cout << "found mp3 file" << endl; - song.songPath = dirEntry.path().string(); - } - } - - return song; - } - - - #pragma - void Upload::printSongDetails() +#pragma region Testing +void Upload::printSongDetails() +{ + cout<<"Song details: "<& songs) +{ + for (auto& song: songs) { cout<<"Song details: "<& songs) - { - for (auto& song: songs) - { - cout<<"Song details: "<{new QVBoxLayout}; - - appName = unique_ptr{new QLabel(tr("IcarusDownloadManager"))}; - actionButtonQt = unique_ptr{new QPushButton(tr("Close"))}; - - mainLayoutQt->addWidget(appName.get()); - mainLayoutQt->addWidget(actionButtonQt.get()); - - - setFixedWidth(windowWidth); - setFixedHeight(windowHeight); - - setLayout(mainLayoutQt.get()); - - setWindowTitle("About"); - - connections(); - } - void AboutWindow::connections() - { - QObject::connect(actionButtonQt.get(), SIGNAL(clicked()), this, - SLOT(closeWindow())); - } - - - void AboutWindow::closeWindow() - { - this->hide(); - } +#pragma region Constructors +AboutWindow::AboutWindow(QWidget* parent): QDialog(parent) +{ + setupWindow(); +} +#pragma endregion + + +#pragma region Functions +void AboutWindow::setupWindow() +{ + windowWidth = 250; + windowHeight = 300; + + mainLayoutQt = unique_ptr{new QVBoxLayout}; + + appName = unique_ptr{new QLabel(tr("IcarusDownloadManager"))}; + actionButtonQt = unique_ptr{new QPushButton(tr("Close"))}; + + mainLayoutQt->addWidget(appName.get()); + mainLayoutQt->addWidget(actionButtonQt.get()); + + + setFixedWidth(windowWidth); + setFixedHeight(windowHeight); + + setLayout(mainLayoutQt.get()); + + setWindowTitle("About"); + + connections(); +} +void AboutWindow::connections() +{ + QObject::connect(actionButtonQt.get(), SIGNAL(clicked()), this, + SLOT(closeWindow())); +} + + +void AboutWindow::closeWindow() +{ + this->hide(); +} +#pragma endregion + } diff --git a/src/UI/MainWindow.cpp b/src/UI/MainWindow.cpp index 08ec399..b44d6d3 100644 --- a/src/UI/MainWindow.cpp +++ b/src/UI/MainWindow.cpp @@ -1,11 +1,11 @@ -#include"UI/MainWindow.h" +#include "UI/MainWindow.h" -#include -#include +#include +#include -#include"Models/UploadForm.h" -#include"Syncers/Upload.h" -#include"Utilities/Conversions.h" +#include "Models/UploadForm.h" +#include "Syncers/Upload.h" +#include "Utilities/Conversions.h" using std::cout; using std::endl; @@ -17,158 +17,164 @@ using Syncers::Upload; namespace UI { - MainWindow::MainWindow() - { - setupMainWindow(); - aboutWindow = unique_ptr{new AboutWindow}; - } - - void MainWindow::configureDownloadSection() - { - } - void MainWindow::configureUploadSection() - { - uploadSongQt = unique_ptr{new QPushButton(tr("Upload"))}; - urlQt = unique_ptr{new QTextEdit()}; - sourceFilePathQt = unique_ptr{new QTextEdit()}; - - urlLabel = unique_ptr{new QLabel(tr("URL"))}; - songPath = unique_ptr{new QLabel(tr("Song Path"))}; - - urlPortion = unique_ptr{new QHBoxLayout}; - songPathPortion = unique_ptr{new QHBoxLayout}; - - urlPortion.get()->addWidget(urlLabel.get()); - urlPortion.get()->addWidget(urlQt.get()); - - songPathPortion->addWidget(songPath.get()); - songPathPortion->addWidget(sourceFilePathQt.get()); - - subLayoutOneQt = unique_ptr{new QVBoxLayout}; - subLayoutOneQt.get()->addLayout(urlPortion.get()); - subLayoutOneQt->addLayout(songPathPortion.get()); - mainLayoutQt.get()->addLayout(subLayoutOneQt.get()); - } - void MainWindow::configureWindowDimensions() - { - windowWidth = 450; - windowHeight = 450; - } - void MainWindow::configureWindowProperties() - { - setWindowTitle("IcarusDownloadManager"); - setFixedHeight(windowHeight); - setFixedWidth(windowWidth); - } - void MainWindow::connections() - { - QObject::connect(uploadSongQt.get(), SIGNAL(clicked()), this, SLOT(uploadSong())); - QObject::connect(closeApplicationQt.get(), SIGNAL(triggered()), this, - SLOT(exitApplication())); - QObject::connect(aboutApplicationQt.get(), SIGNAL(triggered()), this, - SLOT(displaySoftwareInformation())); - QObject::connect(windowComboBox.get(), SIGNAL(activated(int)), - this, SLOT(setCurrentIndex(int))); - } - void MainWindow::createMenus() - { - fileMenuQt = unique_ptr{menuBar()->addMenu(tr("File"))}; - editMenuQt = unique_ptr{menuBar()->addMenu(tr("Edit"))}; - helpMenuQt = unique_ptr{menuBar()->addMenu(tr("Help"))}; - - closeApplicationQt = unique_ptr{new QAction(new QObject(nullptr))}; - closeApplicationQt->setText("Exit Application"); - - aboutApplicationQt = unique_ptr{new QAction(new QObject(nullptr))}; - aboutApplicationQt->setText("About"); - - fileMenuQt->addAction(closeApplicationQt.get()); - helpMenuQt->addAction(aboutApplicationQt.get()); - - } - void MainWindow::setupMainWidget() - { - mainWidgetQt = unique_ptr{new QWidget}; - - windowComboBox = unique_ptr{new QComboBox}; - setupWindowLists(); - - - stackLayout = unique_ptr{new QVBoxLayout}; - stackLayout->addWidget(windowComboBox.get()); - - uploadSongWidgetQt = unique_ptr{new QWidget}; - uploadSongWidgetQt->setLayout(mainLayoutQt.get()); - - stackLayout->addWidget(uploadSongWidgetQt.get()); - - mainWidgetQt->setLayout(stackLayout.get()); - } - void MainWindow::setupMainWindow() - { - configureWindowDimensions(); - - mainLayoutQt = unique_ptr{new QVBoxLayout}; - widgetStack = unique_ptr{new QStackedWidget}; - - configureUploadSection(); - - setupMainWidget(); - - widgetStack->addWidget(mainWidgetQt.get()); - - MainDockWidgetQt = unique_ptr{new QDockWidget}; - MainDockWidgetQt.get()->setWindowTitle(tr("Music Manager")); - MainDockWidgetQt->setWidget(widgetStack.get()); - MainDockWidgetQt.get()->setFeatures(QDockWidget::NoDockWidgetFeatures); - - setCentralWidget(MainDockWidgetQt.get()); - - createMenus(); - - configureWindowProperties(); - - connections(); - } - void MainWindow::setupWindowLists() - { - windowComboBox->addItem(tr("Upload song")); - windowComboBox->addItem(tr("Download song")); - windowComboBox->addItem(tr("Display all songs")); - windowComboBox->addItem(tr("Display songs")); - } - - - void MainWindow::exitApplication() - { - exit(0); - } - void MainWindow::displaySoftwareInformation() - { - aboutWindow->show(); - } - void MainWindow::setCurrentIndex(int index) - { - cout<<"index "<itemText(index); - auto cnvert = Utilities::Conversions(qText); - auto convertedStr = cnvert.convertQStringToString(); - cout<<"item text"<setEnabled(false); - - string url = urlQt->toPlainText().toUtf8().constData(); - string filePath = sourceFilePathQt->toPlainText().toUtf8().constData(); - cout<<"URL endpoint: "<setEnabled(true); - } +#pragma region Constructors +MainWindow::MainWindow() +{ + setupMainWindow(); + aboutWindow = unique_ptr{new AboutWindow}; +} +#pragma endregion + + +#pragma region Functions +void MainWindow::configureDownloadSection() +{ +} +void MainWindow::configureUploadSection() +{ + uploadSongQt = unique_ptr{new QPushButton(tr("Upload"))}; + urlQt = unique_ptr{new QTextEdit()}; + sourceFilePathQt = unique_ptr{new QTextEdit()}; + + urlLabel = unique_ptr{new QLabel(tr("URL"))}; + songPath = unique_ptr{new QLabel(tr("Song Path"))}; + + urlPortion = unique_ptr{new QHBoxLayout}; + songPathPortion = unique_ptr{new QHBoxLayout}; + + urlPortion.get()->addWidget(urlLabel.get()); + urlPortion.get()->addWidget(urlQt.get()); + + songPathPortion->addWidget(songPath.get()); + songPathPortion->addWidget(sourceFilePathQt.get()); + + subLayoutOneQt = unique_ptr{new QVBoxLayout}; + subLayoutOneQt.get()->addLayout(urlPortion.get()); + subLayoutOneQt->addLayout(songPathPortion.get()); + mainLayoutQt.get()->addLayout(subLayoutOneQt.get()); +} +void MainWindow::configureWindowDimensions() +{ + windowWidth = 450; + windowHeight = 450; +} +void MainWindow::configureWindowProperties() +{ + setWindowTitle("IcarusDownloadManager"); + setFixedHeight(windowHeight); + setFixedWidth(windowWidth); +} +void MainWindow::connections() +{ + QObject::connect(uploadSongQt.get(), SIGNAL(clicked()), this, SLOT(uploadSong())); + QObject::connect(closeApplicationQt.get(), SIGNAL(triggered()), this, + SLOT(exitApplication())); + QObject::connect(aboutApplicationQt.get(), SIGNAL(triggered()), this, + SLOT(displaySoftwareInformation())); + QObject::connect(windowComboBox.get(), SIGNAL(activated(int)), + this, SLOT(setCurrentIndex(int))); +} +void MainWindow::createMenus() +{ + fileMenuQt = unique_ptr{menuBar()->addMenu(tr("File"))}; + editMenuQt = unique_ptr{menuBar()->addMenu(tr("Edit"))}; + helpMenuQt = unique_ptr{menuBar()->addMenu(tr("Help"))}; + + closeApplicationQt = unique_ptr{new QAction(new QObject(nullptr))}; + closeApplicationQt->setText("Exit Application"); + + aboutApplicationQt = unique_ptr{new QAction(new QObject(nullptr))}; + aboutApplicationQt->setText("About"); + + fileMenuQt->addAction(closeApplicationQt.get()); + helpMenuQt->addAction(aboutApplicationQt.get()); + +} +void MainWindow::setupMainWidget() +{ + mainWidgetQt = unique_ptr{new QWidget}; + + windowComboBox = unique_ptr{new QComboBox}; + setupWindowLists(); + + + stackLayout = unique_ptr{new QVBoxLayout}; + stackLayout->addWidget(windowComboBox.get()); + + uploadSongWidgetQt = unique_ptr{new QWidget}; + uploadSongWidgetQt->setLayout(mainLayoutQt.get()); + + stackLayout->addWidget(uploadSongWidgetQt.get()); + + mainWidgetQt->setLayout(stackLayout.get()); +} +void MainWindow::setupMainWindow() +{ + configureWindowDimensions(); + + mainLayoutQt = unique_ptr{new QVBoxLayout}; + widgetStack = unique_ptr{new QStackedWidget}; + + configureUploadSection(); + + setupMainWidget(); + + widgetStack->addWidget(mainWidgetQt.get()); + + MainDockWidgetQt = unique_ptr{new QDockWidget}; + MainDockWidgetQt.get()->setWindowTitle(tr("Music Manager")); + MainDockWidgetQt->setWidget(widgetStack.get()); + MainDockWidgetQt.get()->setFeatures(QDockWidget::NoDockWidgetFeatures); + + setCentralWidget(MainDockWidgetQt.get()); + + createMenus(); + + configureWindowProperties(); + + connections(); +} +void MainWindow::setupWindowLists() +{ + windowComboBox->addItem(tr("Upload song")); + windowComboBox->addItem(tr("Download song")); + windowComboBox->addItem(tr("Display all songs")); + windowComboBox->addItem(tr("Display songs")); +} + + +void MainWindow::exitApplication() +{ + exit(0); +} +void MainWindow::displaySoftwareInformation() +{ + aboutWindow->show(); +} +void MainWindow::setCurrentIndex(int index) +{ + cout<<"index "<itemText(index); + auto cnvert = Utilities::Conversions(qText); + auto convertedStr = cnvert.convertQStringToString(); + cout<<"item text"<setEnabled(false); + + string url = urlQt->toPlainText().toUtf8().constData(); + string filePath = sourceFilePathQt->toPlainText().toUtf8().constData(); + cout<<"URL endpoint: "<setEnabled(true); +} +#pragma endregion + } diff --git a/src/Utilities/Conversions.cpp b/src/Utilities/Conversions.cpp index 56839c2..704f09b 100644 --- a/src/Utilities/Conversions.cpp +++ b/src/Utilities/Conversions.cpp @@ -1,24 +1,26 @@ -#include"Utilities/Conversions.h" +#include "Utilities/Conversions.h" -#include +#include using std::string; using std::unique_ptr; namespace Utilities { - Conversions::Conversions() - { - initializeValues(); - } - void Conversions::initializeValues() - { - } - template - void Conversions::printValue(T val) - { - std::cout<<"going to print value"< +void Conversions::printValue(T val) +{ + std::cout<<"going to print value"<