54 lines
1.7 KiB
C++
54 lines
1.7 KiB
C++
#include "./server_components.hpp"
|
|
#include "./server.hpp"
|
|
#include "oatpp/network/Server.hpp"
|
|
#include "./dto/DTOs.hpp"
|
|
|
|
|
|
|
|
/**
|
|
* Custom Request Handler
|
|
*/
|
|
class Handler : public oatpp::web::server::HttpRequestHandler {
|
|
private:
|
|
/* Inject object mapper component */
|
|
OATPP_COMPONENT(std::shared_ptr<oatpp::data::mapping::ObjectMapper>, m_objectMapper);
|
|
public:
|
|
|
|
/**
|
|
* Handle incoming request and return outgoing response.
|
|
*/
|
|
std::shared_ptr<OutgoingResponse> handle(const std::shared_ptr<IncomingRequest>& request) override {
|
|
auto message = MessageDto::createShared();
|
|
message->statusCode = 1024;
|
|
message->message = "Hello DTO!";
|
|
return ResponseFactory::createResponse(Status::CODE_200, message, m_objectMapper);
|
|
}
|
|
|
|
};
|
|
|
|
void Server::run() {
|
|
|
|
/* Register Components in scope of run() method */
|
|
AppComponent components;
|
|
|
|
/* Get router component */
|
|
OATPP_COMPONENT(std::shared_ptr<oatpp::web::server::HttpRouter>, router);
|
|
|
|
/* Route GET - "/hello" requests to Handler */
|
|
router->route("GET", "/hello", std::make_shared<Handler>());
|
|
|
|
/* Get connection handler component */
|
|
OATPP_COMPONENT(std::shared_ptr<oatpp::network::ConnectionHandler>, connectionHandler);
|
|
|
|
/* Get connection provider component */
|
|
OATPP_COMPONENT(std::shared_ptr<oatpp::network::ServerConnectionProvider>, connectionProvider);
|
|
|
|
/* Create server which takes provided TCP connections and passes them to HTTP connection handler */
|
|
oatpp::network::Server server(connectionProvider, connectionHandler);
|
|
|
|
/* Priny info about server port */
|
|
OATPP_LOGI("MyApp", "Server running on port %s", connectionProvider->getProperty("port").getData());
|
|
|
|
/* Run server */
|
|
server.run();
|
|
}
|