From e8f2bbcb48b0eddd3841d823f24c1e059f4656ab Mon Sep 17 00:00:00 2001 From: amazing-username Date: Wed, 20 Mar 2019 21:01:16 -0400 Subject: [PATCH] Upload functionality implemented --- CMakeLists.txt | 37 ++++++++++++++++++++++++++++++++++++ songs/.empty | 0 src/Main.cpp | 2 ++ src/Managers/FileManager.cpp | 3 ++- src/Managers/FileManager.h | 1 + src/Models/Song.h | 3 --- src/Syncers/Download.cpp | 5 ++++- src/Syncers/Download.h | 2 +- src/Syncers/Upload.cpp | 27 ++++++++++++++++---------- src/Syncers/Upload.h | 4 ++-- 10 files changed, 66 insertions(+), 18 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 songs/.empty diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..d1bc390 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,37 @@ +cmake_minimum_required(VERSION 2.8.7) +project(IcarusDownloadManager) + +if(NOT ${CMAKE_VERSION} LESS 3.2) + set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD_REQUIRED ON) +else() + message(STATUS "Checking compiler flags for C++11 support.") + # Set C++11 support flags for various compilers + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag("-std=c++11" COMPILER_SUPPORTS_CXX11) + check_cxx_compiler_flag("-std=c++0x" COMPILER_SUPPORTS_CXX0X) + if(COMPILER_SUPPORTS_CXX11) + message(STATUS "C++11 is supported.") + if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++") + else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + endif() + elseif(COMPILER_SUPPORTS_CXX0X) + message(STATUS "C++0x is supported.") + if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -stdlib=libc++") + else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") + endif() + else() + message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") + endif() +endif() + +add_subdirectory(cpr) + +add_executable(icd src/Main.cpp src/Managers/FileManager.h src/Managers/FileManager.cpp src/Syncers/Upload.h src/Syncers/Upload.cpp + src/Syncers/Download.h src/Syncers/Download.cpp src/Models/Song.h) +target_link_libraries(icd ${CPR_LIBRARIES}) +include_directories(${CPR_INCLUDE_DIRS} ${JSON_INCLUDE_DIRS} src/) diff --git a/songs/.empty b/songs/.empty new file mode 100644 index 0000000..e69de29 diff --git a/src/Main.cpp b/src/Main.cpp index 176e7d7..379b247 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -1,6 +1,7 @@ #include #include +#include"Syncers/Download.h" #include"Syncers/Upload.h" #include"Managers/FileManager.h" @@ -10,6 +11,7 @@ using std::endl; using std::string; using Managers::FileManager; +using Syncers::Download; using Syncers::Upload; string songPath; diff --git a/src/Managers/FileManager.cpp b/src/Managers/FileManager.cpp index 502905f..c7bd0de 100644 --- a/src/Managers/FileManager.cpp +++ b/src/Managers/FileManager.cpp @@ -41,7 +41,6 @@ namespace Managers fileBuffer = new char [fileBufferLength]; cout<< "Reading "< -#include - -using json = nlohmann::json; namespace Models { diff --git a/src/Syncers/Download.cpp b/src/Syncers/Download.cpp index 7770ab2..b8e6611 100644 --- a/src/Syncers/Download.cpp +++ b/src/Syncers/Download.cpp @@ -1,3 +1,6 @@ #include"Download.h" -Download::Download() { } +namespace Syncers +{ + Download::Download() { } +} diff --git a/src/Syncers/Download.h b/src/Syncers/Download.h index 9a9f684..963510f 100644 --- a/src/Syncers/Download.h +++ b/src/Syncers/Download.h @@ -10,7 +10,7 @@ namespace Syncers public: Download(); private: - } + }; } #endif diff --git a/src/Syncers/Upload.cpp b/src/Syncers/Upload.cpp index c0fb599..fbbfaeb 100644 --- a/src/Syncers/Upload.cpp +++ b/src/Syncers/Upload.cpp @@ -26,20 +26,28 @@ namespace Syncers void Upload::uploadSong() { - configureSong(); - json jObj = serializeObject(); - printJsonData(jObj); + configureSongDemo(); - std::string url = apiUrl + apiEndPoint; + string url = apiUrl + ":" + std::to_string(port) + apiEndPoint; - auto r = cpr::Post(cpr::Url{url}, - cpr::Multipart{{"key", "file"}, - {"value", cpr::File{songPath}}}); - cout << r.text << std::endl; + try + { + auto r = cpr::Post(cpr::Url{url}, + cpr::Multipart{{"key", "small value"}, + {"file", cpr::File{songPath}}}); + cout << r.text << std::endl; + + cout<<"Success"<song.duration = duration; this->song.songData = fMgr.retrieveFileBuffer(); cout<<*song.songData<