From e7657eebadf4f1d23ce8f4e22f2e334d7e9ffe50 Mon Sep 17 00:00:00 2001 From: lexara-prime-ai Date: Thu, 18 Jul 2024 14:11:33 +0000 Subject: [PATCH 1/3] Updated folder structure --- CMakeLists.txt | 36 +++++++++++ cmake/CMakeLists.txt | 59 ------------------- librender_cdk/CMakeLists.txt | 14 +++++ librender_cdk/common/common.h | 10 ++++ librender_cdk/common/constants.cpp | 0 librender_cdk/common/constants.h | 8 +++ librender_cdk/{librender_cdk => }/dotenv.h | 0 .../environment_manager.cpp | 1 + .../{librender_cdk => }/environment_manager.h | 0 librender_cdk/lib.cpp | 18 ++++++ librender_cdk/librender_cdk/lib.cpp | 6 -- librender_cdk/{librender_cdk => }/main.cpp | 0 librender_cdk/state_management.cpp | 0 librender_cdk/state_management.h | 1 + librender_cdk/{tests => }/tests.cpp | 2 +- 15 files changed, 89 insertions(+), 66 deletions(-) create mode 100644 CMakeLists.txt delete mode 100644 cmake/CMakeLists.txt create mode 100644 librender_cdk/CMakeLists.txt create mode 100644 librender_cdk/common/common.h create mode 100644 librender_cdk/common/constants.cpp create mode 100644 librender_cdk/common/constants.h rename librender_cdk/{librender_cdk => }/dotenv.h (100%) rename librender_cdk/{librender_cdk => }/environment_manager.cpp (87%) rename librender_cdk/{librender_cdk => }/environment_manager.h (100%) create mode 100644 librender_cdk/lib.cpp delete mode 100644 librender_cdk/librender_cdk/lib.cpp rename librender_cdk/{librender_cdk => }/main.cpp (100%) create mode 100644 librender_cdk/state_management.cpp create mode 100644 librender_cdk/state_management.h rename librender_cdk/{tests => }/tests.cpp (77%) diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..c6b69a0 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,36 @@ +cmake_minimum_required(VERSION 3.10) +project(my_project) + +# Set the C++ standard +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED True) + +# Define source files for the C++ library +file(GLOB_RECURSE LIB_SOURCES "librender_cdk/*.cpp") + +# Add the C++ library target +add_library(librender_cdk STATIC ${LIB_SOURCES}) + +# Include directories for the C++ library +target_include_directories(librender_cdk PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/librender_cdk + ${CMAKE_CURRENT_SOURCE_DIR}/librender_cdk/common +) + +# Add a custom target to build the Rust project +add_custom_target(render_cdk ALL + COMMAND cargo build --manifest-path ${CMAKE_CURRENT_SOURCE_DIR}/render_cdk/Cargo.toml + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/render_cdk + COMMENT "Runnig [cargo build] on specified manifest path.." +) + +# If you have any additional dependencies for the C++ library, link them here +# target_link_libraries(librender_cdk ) + +# Add dependencies to ensure C++ library is built before Rust project +add_dependencies(render_cdk librender_cdk) + +# Specify that 'render_cdk' should be built when invoking 'make' +add_custom_target(build_all + DEPENDS librender_cdk render_cdk +) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt deleted file mode 100644 index c9a1140..0000000 --- a/cmake/CMakeLists.txt +++ /dev/null @@ -1,59 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -project(RenderCdk) - -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED True) - -add_subdirectory(librender_cdk) - -include_directories(${CMAKE_SOURCE_DIR}/librender_cdk/librender_cdk) - -find_package(jsoncpp QUIET) -if(NOT jsoncpp_FOUND) - message(STATUS "JsonCpp not found. Attempting to install...") - execute_process( - COMMAND sudo apt-get update - COMMAND sudo apt-get install -y libjsoncpp-dev - COMMAND_ERROR_IS_FATAL ANY - ) - find_package(jsoncpp REQUIRED) -endif() - -find_package(CURL QUIET) -if(NOT CURL_FOUND) - message(STATUS "cURL not found. Attempting to install...") - execute_process( - COMMAND sudo apt-get update - COMMAND sudo apt-get install -y libcurl4-openssl-dev - COMMAND_ERROR_IS_FATAL ANY - ) - find_package(CURL REQUIRED) -endif() - -add_executable(render_cdk librender_cdk/librender_cdk/main.cpp) - -# Include JsonCpp and cURL header directories. -include_directories(${JSONCPP_INCLUDE_DIRS}) -include_directories(${CURL_INCLUDE_DIRS}) - -# Link the libraries. -target_link_libraries(render_cdk ${CURL_LIBRARIES} ${JSONCPP_LIBRARIES}) - -############################################## -# Build docs: -# -# cmake_minimum_required: Specifies the minimum version of CMake required. -# project: : Defines the project name. -# set(CMAKE_CXX_STANDARD 11): Sets the C++ standard to C++11. -# add_subdirectory: Adds the subdirectory for the library. -# include_directories: Adds include directories for library and packages. -# find_package(jsoncpp REQUIRED): Finds the JsonCpp package. -# find_package(CURL REQUIRED): Finds the cURL package. -# add_executable: Defines the executable target. -# target_link_libraries: Links the found libraries (JsonCpp and cURL) to the executable. -# -# Building with the GNU compiler. -# > g++ lib.cpp environment_manager.cpp -o -# -############################################### \ No newline at end of file diff --git a/librender_cdk/CMakeLists.txt b/librender_cdk/CMakeLists.txt new file mode 100644 index 0000000..9c8a6d9 --- /dev/null +++ b/librender_cdk/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required(VERSION 3.10) +project(librender_cdk) + +# Define source files for the C++ library +file(GLOB_RECURSE LIB_SOURCES "*.cpp") + +# Add the C++ library target +add_library(librender_cdk STATIC ${LIB_SOURCES}) + +# Include directories for the C++ library +target_include_directories(librender_cdk PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/common +) \ No newline at end of file diff --git a/librender_cdk/common/common.h b/librender_cdk/common/common.h new file mode 100644 index 0000000..5c42683 --- /dev/null +++ b/librender_cdk/common/common.h @@ -0,0 +1,10 @@ +#ifndef _COMMON_H_ +#define _COMMON_H_ + +#include "../dotenv.h" +#include +#include +#include +#include + +#endif \ No newline at end of file diff --git a/librender_cdk/common/constants.cpp b/librender_cdk/common/constants.cpp new file mode 100644 index 0000000..e69de29 diff --git a/librender_cdk/common/constants.h b/librender_cdk/common/constants.h new file mode 100644 index 0000000..8fa4a7b --- /dev/null +++ b/librender_cdk/common/constants.h @@ -0,0 +1,8 @@ +#ifndef _CONSTANTS_H_ +#define _CONSTANTS_H_ + +#include + +const std::string BASE_URL = "https://api.render.com/v1"; + +#endif \ No newline at end of file diff --git a/librender_cdk/librender_cdk/dotenv.h b/librender_cdk/dotenv.h similarity index 100% rename from librender_cdk/librender_cdk/dotenv.h rename to librender_cdk/dotenv.h diff --git a/librender_cdk/librender_cdk/environment_manager.cpp b/librender_cdk/environment_manager.cpp similarity index 87% rename from librender_cdk/librender_cdk/environment_manager.cpp rename to librender_cdk/environment_manager.cpp index 7eb8b05..4473d25 100644 --- a/librender_cdk/librender_cdk/environment_manager.cpp +++ b/librender_cdk/environment_manager.cpp @@ -10,6 +10,7 @@ std::string EnvironmentManager::getApiKey() { const std::string apiKey = std::getenv("API_KEY"); if (!apiKey.empty()) { + std::cout << "Retrieving [API_KEY]." << std::endl; return std::string(apiKey); } else { return "[API_KEY] must be set."; diff --git a/librender_cdk/librender_cdk/environment_manager.h b/librender_cdk/environment_manager.h similarity index 100% rename from librender_cdk/librender_cdk/environment_manager.h rename to librender_cdk/environment_manager.h diff --git a/librender_cdk/lib.cpp b/librender_cdk/lib.cpp new file mode 100644 index 0000000..9e5d0c6 --- /dev/null +++ b/librender_cdk/lib.cpp @@ -0,0 +1,18 @@ +#include "environment_manager.h" +#include + +/** + * @file lib.cpp + * @brief This file contains examples of how to use librender_cdk. + */ + +/** + * @brief Retrieves and prints the API key to the standard output. + * + * This example demonstrates how to retrieve the API key using the EnvironmentManager + * and print it to the console. + */ + +void retrieveApiKey() { + std::cout << "[API_KEY] -> " << EnvironmentManager::getApiKey() << std::endl; +} \ No newline at end of file diff --git a/librender_cdk/librender_cdk/lib.cpp b/librender_cdk/librender_cdk/lib.cpp deleted file mode 100644 index ed1689a..0000000 --- a/librender_cdk/librender_cdk/lib.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "environment_manager.h" -#include - -int main() { - std::cout << "[API_KEY] -> " << EnvironmentManager::getApiKey() << std::endl; -} \ No newline at end of file diff --git a/librender_cdk/librender_cdk/main.cpp b/librender_cdk/main.cpp similarity index 100% rename from librender_cdk/librender_cdk/main.cpp rename to librender_cdk/main.cpp diff --git a/librender_cdk/state_management.cpp b/librender_cdk/state_management.cpp new file mode 100644 index 0000000..e69de29 diff --git a/librender_cdk/state_management.h b/librender_cdk/state_management.h new file mode 100644 index 0000000..604782e --- /dev/null +++ b/librender_cdk/state_management.h @@ -0,0 +1 @@ +#include diff --git a/librender_cdk/tests/tests.cpp b/librender_cdk/tests.cpp similarity index 77% rename from librender_cdk/tests/tests.cpp rename to librender_cdk/tests.cpp index 0b4f558..baac75d 100644 --- a/librender_cdk/tests/tests.cpp +++ b/librender_cdk/tests.cpp @@ -1,4 +1,4 @@ -#include "../include/environment_manager.h" +#include "environment_manager.h" #include int main() { From 8794ebf1a22603b3bd3194d838bc7900582c4d30 Mon Sep 17 00:00:00 2001 From: lexara-prime-ai Date: Thu, 18 Jul 2024 14:14:52 +0000 Subject: [PATCH 2/3] Updated CMakeLists.txt configuration. --- CMakeLists.txt | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c6b69a0..ce8c257 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,36 +1,35 @@ cmake_minimum_required(VERSION 3.10) -project(my_project) +project(render_cloud_cdk) -# Set the C++ standard set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) -# Define source files for the C++ library +# Define source files. file(GLOB_RECURSE LIB_SOURCES "librender_cdk/*.cpp") -# Add the C++ library target +# Add C++ library target. add_library(librender_cdk STATIC ${LIB_SOURCES}) -# Include directories for the C++ library +# Include directories. target_include_directories(librender_cdk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/librender_cdk ${CMAKE_CURRENT_SOURCE_DIR}/librender_cdk/common ) -# Add a custom target to build the Rust project +# Add a custom target to build the Rust project. add_custom_target(render_cdk ALL COMMAND cargo build --manifest-path ${CMAKE_CURRENT_SOURCE_DIR}/render_cdk/Cargo.toml WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/render_cdk COMMENT "Runnig [cargo build] on specified manifest path.." ) -# If you have any additional dependencies for the C++ library, link them here +# Link any additional dependencies for the C++ library. # target_link_libraries(librender_cdk ) -# Add dependencies to ensure C++ library is built before Rust project +# Ensure C++ library is built before Rust project. add_dependencies(render_cdk librender_cdk) -# Specify that 'render_cdk' should be built when invoking 'make' +# 'render_cdk' should ONLY be built when invoking 'make' add_custom_target(build_all DEPENDS librender_cdk render_cdk ) From 84aa2d1e657d69f3a2986ecc6e5cfcf02d8f882f Mon Sep 17 00:00:00 2001 From: lexara-prime-ai Date: Thu, 18 Jul 2024 14:39:01 +0000 Subject: [PATCH 3/3] Added state_management module -> librender_cdk. --- librender_cdk/CMakeLists.txt | 6 ++-- librender_cdk/common/common.h | 1 - librender_cdk/common/constants.cpp | 0 librender_cdk/environment_manager.cpp | 2 +- librender_cdk/lib.cpp | 10 ++++--- librender_cdk/state_management.h | 41 ++++++++++++++++++++++++++- 6 files changed, 50 insertions(+), 10 deletions(-) delete mode 100644 librender_cdk/common/constants.cpp diff --git a/librender_cdk/CMakeLists.txt b/librender_cdk/CMakeLists.txt index 9c8a6d9..92e0f35 100644 --- a/librender_cdk/CMakeLists.txt +++ b/librender_cdk/CMakeLists.txt @@ -1,13 +1,13 @@ cmake_minimum_required(VERSION 3.10) project(librender_cdk) -# Define source files for the C++ library +# Define source files. file(GLOB_RECURSE LIB_SOURCES "*.cpp") -# Add the C++ library target +# Add the C++ library target. add_library(librender_cdk STATIC ${LIB_SOURCES}) -# Include directories for the C++ library +# Include directories. target_include_directories(librender_cdk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/common diff --git a/librender_cdk/common/common.h b/librender_cdk/common/common.h index 5c42683..ffe10ad 100644 --- a/librender_cdk/common/common.h +++ b/librender_cdk/common/common.h @@ -1,7 +1,6 @@ #ifndef _COMMON_H_ #define _COMMON_H_ -#include "../dotenv.h" #include #include #include diff --git a/librender_cdk/common/constants.cpp b/librender_cdk/common/constants.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/librender_cdk/environment_manager.cpp b/librender_cdk/environment_manager.cpp index 4473d25..d3e563c 100644 --- a/librender_cdk/environment_manager.cpp +++ b/librender_cdk/environment_manager.cpp @@ -10,7 +10,7 @@ std::string EnvironmentManager::getApiKey() { const std::string apiKey = std::getenv("API_KEY"); if (!apiKey.empty()) { - std::cout << "Retrieving [API_KEY]." << std::endl; + std::cout << "[RUNNING] -> Retrieving [API_KEY]." << std::endl; return std::string(apiKey); } else { return "[API_KEY] must be set."; diff --git a/librender_cdk/lib.cpp b/librender_cdk/lib.cpp index 9e5d0c6..eec8e92 100644 --- a/librender_cdk/lib.cpp +++ b/librender_cdk/lib.cpp @@ -9,10 +9,12 @@ /** * @brief Retrieves and prints the API key to the standard output. * - * This example demonstrates how to retrieve the API key using the EnvironmentManager - * and print it to the console. + * This example demonstrates how to retrieve the API key using the + * EnvironmentManager and print it to the console. */ void retrieveApiKey() { - std::cout << "[API_KEY] -> " << EnvironmentManager::getApiKey() << std::endl; -} \ No newline at end of file + std::cout << EnvironmentManager::getApiKey() << std::endl; +} + +int main() { retrieveApiKey(); } \ No newline at end of file diff --git a/librender_cdk/state_management.h b/librender_cdk/state_management.h index 604782e..87c8c5d 100644 --- a/librender_cdk/state_management.h +++ b/librender_cdk/state_management.h @@ -1 +1,40 @@ -#include +#ifndef _STATE_MANAGEMENT_H_ +#define _STATE_MANAGEMENT_H_ + +#include "common/common.h" +#include "common/constants.h" +#include "environment_manager.h" +#include +#include + +class State { +public: + CURL *client; + std::string apiKey; + + State() { + client = curl_easy_init(); + apiKey = EnvironmentManager::getApiKey(); + } + + ~State() { + if (client) + curl_easy_cleanup(client); + } + + static std::shared_ptr init() { return std::make_shared(); } +}; + +struct Owner { + std::string id; + std::string name; + std::string email; + bool twoFactorAuthEnabled; + std::string type; + + static std::vector retrieveAuthorizedUsers(const std::string &email, + const std::string &limit); +}; + + +#endif