Switching to C++ #60

Merged
kdeng00 merged 36 commits from experiment into master 2019-09-03 16:17:20 -04:00
7 changed files with 113 additions and 12 deletions
Showing only changes of commit 5230e69832 - Show all commits
+4
View File
@@ -20,6 +20,7 @@ set(HEADERS
include/directory_manager.h
include/imageFile.h
include/metadata_retriever.h
include/token_manager.h
)
set (TAGLIB
@@ -60,6 +61,9 @@ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/cpr)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/taglib)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/oatpp)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/appsettings.json ${CMAKE_BINARY_DIR}/bin/appsettings.json COPYONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/authcredentials.json ${CMAKE_BINARY_DIR}/bin/authcredentials.json COPYONLY)
add_executable(icarus ${SOURCES} ${HEADERS})
target_include_directories(icarus PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/jwt-cpp/include)
target_link_libraries(icarus "-lstdc++fs" tag oatpp ${CONAN_LIBS} ${CPR_LIBRARIES})
+6
View File
@@ -0,0 +1,6 @@
{
"Domain": "[domain].auth0.com",
"ApiIdentifier": "https://[identifier]/api",
"ClientId": "dfdfdfdf",
"ClientSecret": "dfdfdfdf"
}
+20
View File
@@ -1,6 +1,8 @@
#ifndef MODELS_H_
#define MODELS_H_
#include <string>
struct Song
{
int Id;
@@ -30,6 +32,24 @@ struct LoginRes
int Expiration;
};
struct loginResult
{
int user_id;
std::string username;
std::string access_token;
std::string token_type;
std::string message;
int expiration;
};
struct auth_credentials
{
std::string domain;
std::string api_identifier;
std::string client_id;
std::string client_secret;
};
struct TokenReq
{
char ClientId[1024];
+18
View File
@@ -0,0 +1,18 @@
#ifndef TOKEN_MANAGER_H_
#define TOKEN_MANAGER_H_
#include "models.h"
class token_manager
{
public:
token_manager();
loginResult retrieve_token();
//LoginRes* retrieve_token(TokenReq *tok);
private:
auth_credentials parse_auth_credentials();
};
#endif
+20 -5
View File
@@ -1,18 +1,29 @@
#ifndef LOGINCONTROLLER_H_
#define LOGINCONTROLLER_H_
#include <iostream>
#include <filesystem>
#include <string>
#include "oatpp/core/macro/codegen.hpp"
#include "oatpp/core/macro/component.hpp"
#include "oatpp/web/server/api/ApiController.hpp"
#include "../dto/loginResultDto.hpp"
#include "token_manager.h"
namespace fs = std::filesystem;
class loginController : public oatpp::web::server::api::ApiController
{
public:
loginController(OATPP_COMPONENT(std::shared_ptr<ObjectMapper>, objectMapper))
: oatpp::web::server::api::ApiController(objectMapper)
{ }
loginController(std::string p, OATPP_COMPONENT(std::shared_ptr<ObjectMapper>, objectMapper))
: oatpp::web::server::api::ApiController(objectMapper), exe_path(fs::canonical(p.c_str()).parent_path().string())
{
std::cout << "p is " << p << std::endl;
std::cout << "working path " << exe_path.string() << std::endl;
}
#include OATPP_CODEGEN_BEGIN(ApiController)
@@ -20,15 +31,19 @@ public:
{
OATPP_LOGI("icarus", "logging in");
token_manager tok;
auto token = tok.retrieve_token();
auto logRes = loginResultDto::createShared();
logRes->access_token = "sdfsdfsdfsdert";
logRes->token_type = "Special";
logRes->access_token = token.access_token.c_str();
logRes->token_type = token.token_type.c_str();
return createDtoResponse(Status::CODE_200, logRes);
}
#include OATPP_CODEGEN_END(ApiController)
private:
fs::path exe_path;
};
#endif
+10 -3
View File
@@ -1,5 +1,7 @@
#include <iostream>
#include <filesystem>
#include <memory>
#include <string>
#include "oatpp/network/server/Server.hpp"
#include "oatpp/network/server/SimpleTCPConnectionProvider.hpp"
@@ -9,7 +11,9 @@
#include "controller/loginController.hpp"
//#include "loginHandler.hpp"
void run()
namespace fs = std::filesystem;
void run(const std::string& working_path)
{
appComponent component;
@@ -17,7 +21,7 @@ void run()
OATPP_COMPONENT(std::shared_ptr<oatpp::web::server::HttpRouter>, router);
//router->route("GET", "/test", std::make_shared<loginHandler>());
auto logController = std::make_shared<loginController>();
auto logController = std::make_shared<loginController>(working_path);
logController->addEndpointsToRouter(router);
OATPP_COMPONENT(std::shared_ptr<oatpp::network::server::ConnectionHandler>, connectionHandler);
@@ -31,11 +35,14 @@ void run()
server.run();
}
int main(int argc, char **argv)
{
oatpp::base::Environment::init();
std::string working_path = argv[0];
//std::cout << fs::canonical(fs::path(working_path.c_str())).parent_path().string() << std::endl;
run();
run(working_path);
oatpp::base::Environment::destroy();
+35 -4
View File
@@ -1,18 +1,48 @@
#include <iostream>
#include <filesystem>
#include <string>
#include <sstream>
#include <cstdlib>
#include <cpr/cpr.h>
#include <nlohmann/json.hpp>
#include "models.h"
//#include "models.h"
#include "token_manager.h"
namespace fs = std::filesystem;
//extern "C"
//{
extern "C"
token_manager::token_manager()
{
}
loginResult token_manager::retrieve_token()
{
auto cred = parse_auth_credentials();
LoginRes* retrieve_token(TokenReq *tok)
loginResult lr;
lr.access_token = "dsfdsf";
lr.token_type = "demo";
return lr;
}
auth_credentials token_manager::parse_auth_credentials()
{
auth_credentials auth;
//auto ss = working_path.string();
//auto path = fs::canonical(fs::path("."));
//std::cout << "canonical path " << path.string() << std::endl;
return auth;
}
/**
LoginRes* token_manager::retrieve_token(TokenReq *tok)
{
LoginRes *res = new LoginRes;
@@ -38,4 +68,5 @@ LoginRes* retrieve_token(TokenReq *tok)
return res;
}
}
*/
//}