Added CLI functionality for uploading a song #7. Next thing that is up adding CLI functionality for downloading songs via id

This commit is contained in:
amazing-username
2019-06-05 20:51:56 -04:00
parent 8230f7b5ff
commit 7a6916c3ff
14 changed files with 185 additions and 27 deletions
+6
View File
@@ -10,9 +10,15 @@ using std::endl;
using std::ofstream;
using std::string;
using Models::API;
namespace Syncers
{
Download::Download() { }
Download::Download(API api)
{
this->api = api;
}
Download::Download(string filePath)
{
downloadFilePath = filePath;
+7 -1
View File
@@ -4,12 +4,18 @@
#include<iostream>
#include<string>
#include"Models/API.h"
#include"Models/Song.h"
#include"SyncerBase.h"
namespace Syncers
{
class Download
class Download : SyncerBase
{
public:
Download();
Download(Models::API);
Download(std::string);
void downloadSong(int);
+15
View File
@@ -0,0 +1,15 @@
#ifndef SYNCERBASE_H_
#define SYNCERBASE_H_
#include"Models/API.h"
namespace Syncers
{
class SyncerBase
{
protected:
Models::API api;
};
}
#endif
+23 -3
View File
@@ -15,6 +15,8 @@ using std::string;
using json = nlohmann::json;
using Managers::FileManager;
using Models::API;
using Models::Song;
using Models::UploadForm;
using namespace cpr;
@@ -27,6 +29,11 @@ namespace Syncers
this->songPath = filePath;
this->fMgr = FileManager(songPath);
}
Upload::Upload(API api)
{
this->api = api;
this->api.endpoint = "song/data";
}
Upload::Upload(UploadForm formData)
{
this->url = formData.url;
@@ -52,15 +59,18 @@ namespace Syncers
cout<<"Finished"<<endl;
}
void Upload::uploadSong(const Models::Token token, const std::string songPath)
void Upload::uploadSong(const Models::Token token, Song song)
{
try
{
auto url = retrieveUrl();
cout<<"url "<<url<<endl;
string auth{token.tokenType};
auth.append(" " + token.accessToken);
auto r = cpr::Post(cpr::Url{""},
auto r = cpr::Post(cpr::Url{url},
cpr::Multipart{{"key", "small value"},
{"file", cpr::File{songPath}}},
{"file", cpr::File{song.songPath}}},
cpr::Header{{"authorization", auth}}
);
@@ -74,6 +84,14 @@ namespace Syncers
cout<<"Finished"<<endl;
}
string Upload::retrieveUrl()
{
string url = api.url + "api/" + api.version + "/" +
api.endpoint;
return url;
}
#pragma
void Upload::configureSongDemo()
{
int id = 0;
@@ -135,4 +153,6 @@ namespace Syncers
return jObj;
}
#pragma Testing
#pragma Functions
}
+12 -7
View File
@@ -6,6 +6,7 @@
#include<nlohmann/json.hpp>
#include"Managers/FileManager.h"
#include"Models/API.h"
#include"Models/Song.h"
#include"Models/Token.h"
#include"Models/UploadForm.h"
@@ -18,24 +19,28 @@ namespace Syncers
public:
Upload();
Upload(std::string);
Upload(Models::API);
Upload(Models::UploadForm);
void uploadSong();
void uploadSong(const Models::Token, const std::string);
void uploadSong(const Models::Token, Models::Song);
private:
Managers::FileManager fMgr;
Models::API api;
Models::Song song;
std::string apiUrl{"http://192.168.1.3"};
std::string apiEndPoint{"/api/song/data"};
std::string songPath;
std::string url;
int port{9349};
std::string apiUrl{""}; // Not being used
std::string apiEndPoint{""}; // Not being used
std::string songPath; // Not being used
std::string url; // Not being used
int port{9349}; // Not being used
std::string retrieveUrl();
void configureSongDemo();
void printSongDetails();
void printJsonData(nlohmann::json);
nlohmann::json serializeObject();
nlohmann::json serializeObject(); // Not being used
};
}