40 lines
1.1 KiB
C++
40 lines
1.1 KiB
C++
#include <drogon/drogon.h>
|
|
|
|
#include "common/Cors.h"
|
|
#include "plugins/RequestLogger.h"
|
|
#include "repositories/MigrationRunner.h"
|
|
|
|
#include <cstdio>
|
|
|
|
int main()
|
|
{
|
|
setvbuf(stdout, nullptr, _IONBF, 0);
|
|
(void)RequestLogger::classTypeName();
|
|
|
|
Json::Value requestLoggerConfig;
|
|
requestLoggerConfig["include_query"] = true;
|
|
|
|
drogon::app().loadConfigFile("config.json");
|
|
drogon::app().addPlugin("RequestLogger", {}, requestLoggerConfig);
|
|
visione::cors::configure();
|
|
|
|
const auto migrationsPath = drogon::app()
|
|
.getCustomConfig()
|
|
.get("migrations_path", "migrations")
|
|
.asString();
|
|
drogon::app().getLoop()->runAfter(0.0, [migrationsPath]() {
|
|
try
|
|
{
|
|
visione::repositories::MigrationRunner::run(migrationsPath);
|
|
}
|
|
catch (const std::exception &error)
|
|
{
|
|
LOG_FATAL << "Migration failed: " << error.what();
|
|
drogon::app().quit();
|
|
}
|
|
});
|
|
|
|
drogon::app().run();
|
|
return 0;
|
|
}
|