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:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user