verion which did not include the handling in RTService wth creating the

Json file
This commit is contained in:
2024-06-25 20:50:29 +02:00
parent 2650679989
commit 5285f8b26e
215 changed files with 26816 additions and 219 deletions

View File

@@ -0,0 +1,48 @@
#ifndef DatabaseTestClient_hpp
#define DatabaseTestClient_hpp
#include "oatpp/web/client/ApiClient.hpp"
#include "oatpp/core/macro/codegen.hpp"
#include "dto/UserDto.hpp"
#include "dto/MonitoringDto.hpp"
/* Begin Api Client code generation */
#include OATPP_CODEGEN_BEGIN(ApiClient)
/**
* Test API client.
* Use this client to call application APIs.
*/
class TestClient : public oatpp::web::client::ApiClient {
API_CLIENT_INIT(TestClient)
/*****************************************************************
* UserController
*****************************************************************/
API_CALL("POST", "/users", addUser, BODY_DTO(Object<UserDto>, userDto))
API_CALL("GET", "/users/{userId}", getUser, PATH(Int32, userId))
API_CALL("DELETE", "/users/{userId}", deleteUser, PATH(Int32, userId))
/*****************************************************************/
// TODO - add more client API calls here
/*****************************************************************
* MonitoringController
*****************************************************************/
API_CALL("POST", "/monitorings", addMonitoring, BODY_DTO(Object<MonitoringDto>, monitoringDto))
API_CALL("GET", "/monitorings/{id}", getMonitoring, PATH(Int32, id))
API_CALL("DELETE", "/monitorings/{id}", deleteMonitoring, PATH(Int32, id))
/*****************************************************************/
};
/* End Api Client code generation */
#include OATPP_CODEGEN_END(ApiClient)
#endif // DatabaseTestClient_hpp

View File

@@ -0,0 +1,72 @@
#ifndef TestComponent_hpp
#define TestComponent_hpp
#include "oatpp/web/server/HttpConnectionHandler.hpp"
#include "oatpp/network/virtual_/client/ConnectionProvider.hpp"
#include "oatpp/network/virtual_/server/ConnectionProvider.hpp"
#include "oatpp/network/virtual_/Interface.hpp"
#include "oatpp/parser/json/mapping/ObjectMapper.hpp"
#include "oatpp/core/macro/component.hpp"
#include "TestDatabaseComponent.hpp"
/**
* Test Components config
*/
class TestComponent {
public:
TestDatabaseComponent databaseComponent;
/**
* Create oatpp virtual network interface for test networking
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::network::virtual_::Interface>, virtualInterface)([] {
return oatpp::network::virtual_::Interface::obtainShared("virtualhost");
}());
/**
* Create server ConnectionProvider of oatpp virtual connections for test
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::network::ServerConnectionProvider>, serverConnectionProvider)([] {
OATPP_COMPONENT(std::shared_ptr<oatpp::network::virtual_::Interface>, interface);
return oatpp::network::virtual_::server::ConnectionProvider::createShared(interface);
}());
/**
* Create client ConnectionProvider of oatpp virtual connections for test
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::network::ClientConnectionProvider>, clientConnectionProvider)([] {
OATPP_COMPONENT(std::shared_ptr<oatpp::network::virtual_::Interface>, interface);
return oatpp::network::virtual_::client::ConnectionProvider::createShared(interface);
}());
/**
* Create Router component
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::web::server::HttpRouter>, httpRouter)([] {
return oatpp::web::server::HttpRouter::createShared();
}());
/**
* Create ConnectionHandler component which uses Router component to route requests
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::network::ConnectionHandler>, serverConnectionHandler)([] {
OATPP_COMPONENT(std::shared_ptr<oatpp::web::server::HttpRouter>, router); // get Router component
return oatpp::web::server::HttpConnectionHandler::createShared(router);
}());
/**
* Create ObjectMapper component to serialize/deserialize DTOs in Contoller's API
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::data::mapping::ObjectMapper>, apiObjectMapper)([] {
return oatpp::parser::json::mapping::ObjectMapper::createShared();
}());
};
#endif // TestComponent_hpp

View File

@@ -0,0 +1,61 @@
#ifndef TEST_DATABASECOMPONENT_HPP
#define TEST_DATABASECOMPONENT_HPP
#include "db/UserDb.hpp"
#include "db/MonitoringDb.hpp"
class TestDatabaseComponent {
public:
/**
* Create database connection provider component
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::provider::Provider<oatpp::sqlite::Connection>>, dbConnectionProvider)([] {
/* Create database-specific ConnectionProvider */
auto connectionProvider = std::make_shared<oatpp::sqlite::ConnectionProvider>(TESTDATABASE_FILE);
/* Create database-specific ConnectionPool */
return oatpp::sqlite::ConnectionPool::createShared(connectionProvider,
10 /* max-connections */,
std::chrono::seconds(5) /* connection TTL */);
}());
/**
* Create database client
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<UserDb>, userDb)([] {
/* Get database ConnectionProvider component */
OATPP_COMPONENT(std::shared_ptr<oatpp::provider::Provider<oatpp::sqlite::Connection>>, connectionProvider);
/* Create database-specific Executor */
auto executor = std::make_shared<oatpp::sqlite::Executor>(connectionProvider);
/* Create MyClient database client */
return std::make_shared<UserDb>(executor);
}());
/**
* Create database client
*/
OATPP_CREATE_COMPONENT(std::shared_ptr<MonitoringDb>, monitoringDb)([] {
/* Get database ConnectionProvider component */
OATPP_COMPONENT(std::shared_ptr<oatpp::provider::Provider<oatpp::sqlite::Connection>>, connectionProvider);
/* Create database-specific Executor */
auto executor = std::make_shared<oatpp::sqlite::Executor>(connectionProvider);
/* Create MyClient database client */
return std::make_shared<MonitoringDb>(executor);
}());
};
#endif //TEST_DATABASECOMPONENT_HPP