Added dev mode for backend
This commit is contained in:
parent
8669eed13c
commit
df93c5e091
@ -87,7 +87,7 @@ namespace api {
|
|||||||
user_mapper.insert(new_user);
|
user_mapper.insert(new_user);
|
||||||
generate_root(new_user);
|
generate_root(new_user);
|
||||||
cbk(dto::Responses::get_success_res());
|
cbk(dto::Responses::get_success_res());
|
||||||
} catch (const std::exception& e) {
|
} catch (const std::exception&) {
|
||||||
cbk(dto::Responses::get_badreq_res("Validation error"));
|
cbk(dto::Responses::get_badreq_res("Validation error"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
#include <drogon/drogon.h>
|
#include <drogon/drogon.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
#include "dto/dto.h"
|
#include "dto/dto.h"
|
||||||
|
|
||||||
|
bool dev_mode = false;
|
||||||
|
|
||||||
void cleanup() {
|
void cleanup() {
|
||||||
std::cout << "Stopping..." << std::endl;
|
std::cout << "Stopping..." << std::endl;
|
||||||
drogon::app().quit();
|
drogon::app().quit();
|
||||||
@ -14,7 +17,26 @@ void cleanup() {
|
|||||||
std::cout << "Goodbye!" << std::endl;
|
std::cout << "Goodbye!" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
std::string get_index_content() {
|
||||||
|
std::ifstream file("./static/index.html");
|
||||||
|
return {std::istreambuf_iterator<char>(file), std::istreambuf_iterator<char>()};
|
||||||
|
}
|
||||||
|
|
||||||
|
void default_handler(const drogon::HttpRequestPtr& req, std::function<void(const drogon::HttpResponsePtr&)>&& cbk) {
|
||||||
|
static std::string index_html = get_index_content();
|
||||||
|
if (req->path().starts_with("/api")) {
|
||||||
|
std::cout << "Unknown api request: " << req->getMethodString() << " " << req->path() << std::endl;
|
||||||
|
cbk(drogon::HttpResponse::newNotFoundResponse());
|
||||||
|
} else {
|
||||||
|
if (dev_mode) cbk(drogon::HttpResponse::newFileResponse("./static/index.html"));
|
||||||
|
else cbk(drogon::HttpResponse::newFileResponse((unsigned char*)index_html.data(), index_html.size()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char* argv[]) {
|
||||||
|
std::vector<std::string> args(argv+1, argv+argc);
|
||||||
|
if (std::find(args.begin(), args.end(), "--dev") != args.end()) dev_mode = true;
|
||||||
|
if (dev_mode) std::cout << "Starting in development mode" << std::endl;
|
||||||
std::cout << "Setting up..." << std::endl;
|
std::cout << "Setting up..." << std::endl;
|
||||||
std::cout << "Initializing curl..." << std::flush;
|
std::cout << "Initializing curl..." << std::flush;
|
||||||
curl_global_init(CURL_GLOBAL_ALL);
|
curl_global_init(CURL_GLOBAL_ALL);
|
||||||
@ -87,16 +109,17 @@ int main() {
|
|||||||
config["plugins"].append(access_logger);
|
config["plugins"].append(access_logger);
|
||||||
|
|
||||||
drogon::app()
|
drogon::app()
|
||||||
.setClientMaxBodySize(1024L * 1024L * 1024L * 1024L) // 1 TB
|
.setClientMaxBodySize(std::numeric_limits<size_t>::max())
|
||||||
|
|
||||||
.loadConfigJson(config)
|
.loadConfigJson(config)
|
||||||
|
|
||||||
.createDbClient("sqlite3", "", 0, "", "", "", 1, "sqlite.db")
|
.createDbClient("sqlite3", "", 0, "", "", "", 1, "sqlite.db")
|
||||||
|
|
||||||
.setCustom404Page(drogon::HttpResponse::newFileResponse("./static/index.html"), false)
|
.setDefaultHandler(default_handler)
|
||||||
|
|
||||||
.setDocumentRoot("./static")
|
.setDocumentRoot("./static")
|
||||||
.setBrStatic(true)
|
.setBrStatic(true)
|
||||||
.setStaticFilesCacheTime(0)
|
.setStaticFilesCacheTime(dev_mode ? -1 : 0)
|
||||||
|
|
||||||
.setLogPath("./logs")
|
.setLogPath("./logs")
|
||||||
.setLogLevel(trantor::Logger::LogLevel::kDebug)
|
.setLogLevel(trantor::Logger::LogLevel::kDebug)
|
||||||
@ -104,7 +127,7 @@ int main() {
|
|||||||
.setIntSignalHandler(cleanup)
|
.setIntSignalHandler(cleanup)
|
||||||
.setTermSignalHandler(cleanup)
|
.setTermSignalHandler(cleanup)
|
||||||
|
|
||||||
.addListener("0.0.0.0", 1234)
|
.addListener("0.0.0.0", 5678)
|
||||||
.setThreadNum(2);
|
.setThreadNum(2);
|
||||||
std::cout << "Setup done!" << std::endl;
|
std::cout << "Setup done!" << std::endl;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user