Added feature to upload all songs from a directory (optional recursive). Need to document the use of it as well as how to even use this CLI

This commit is contained in:
kdeng00
2019-10-23 20:48:42 -04:00
parent 27aecc7a0d
commit 81892cc52e
11 changed files with 162 additions and 29 deletions
+3 -3
View File
@@ -31,9 +31,9 @@ namespace Managers
std::array<std::string, 4> supportedActions{
"download", "upload", "retrieve", "delete"
};
std::array<std::string, 9> supportedFlags{
"-u", "-p", "-t", "-h", "-s",
"-d", "-D", "-b", "-rt"
std::array<std::string, 11> supportedFlags{
"-u", "-p", "-t", "-h", "-s", "-sd",
"-sr", "-d", "-D", "-b", "-rt"
};
std::vector<Models::Flags> flags;
char **params;
+1 -2
View File
@@ -38,8 +38,7 @@ namespace Managers
uploadAct
};
std::map<std::string, ActionValues> mapActions =
std::map<std::string, ActionValues>{
std::map<std::string, ActionValues> mapActions{
{"delete", deleteAct}, {"download", downloadAct},
{"retrieve", retrieveAct},
{"upload", uploadAct}
+2 -2
View File
@@ -10,8 +10,8 @@ namespace Managers
class TokenManager
{
public:
TokenManager(const Models::User);
TokenManager(const Models::User, Models::API);
TokenManager(const Models::User&);
TokenManager(const Models::User&, Models::API&);
Models::Token requestToken();
private:
+2 -1
View File
@@ -15,7 +15,8 @@ namespace Models
std::string genre;
int year;
int duration;
std::string data;
int track;
std::string data;
std::string songPath;
};
}
+1 -1
View File
@@ -24,7 +24,7 @@ namespace Syncers
std::string retrieveUrl(Models::Song);
std::string downloadFilePath;
void saveSong(Models::Song*);
void saveSong(Models::Song&);
};
}
+12 -1
View File
@@ -1,7 +1,9 @@
#ifndef UPLOAD_H_
#define UPLOAD_H_
#include<filesystem>
#include<string>
#include<vector>
#include<nlohmann/json.hpp>
@@ -11,6 +13,8 @@
#include"Models/Token.h"
#include"Models/UploadForm.h"
namespace fs = std::filesystem;
namespace Syncers
{
@@ -20,15 +24,22 @@ namespace Syncers
Upload();
Upload(Models::API);
void uploadSong(const Models::Token, Models::Song);
Models::Song uploadSong(const Models::Token&, Models::Song&);
void uploadSongsFromDirectory(const Models::Token&, const std::string&, bool);
private:
Managers::FileManager fMgr;
Models::API api;
Models::Song song;
std::vector<Models::Song> retrieveAllSongsFromDirectory(const std::string&,
bool);
std::string retrieveUrl();
Models::Song retrieveSongPath(fs::directory_entry&);
void printSongDetails();
void printSongDetails(std::vector<Models::Song>&);
void printJsonData(nlohmann::json);
};
}