Updated the engine and fixed compile. It still needs changes to work again though.

This commit is contained in:
Relintai 2022-01-09 17:05:04 +01:00
parent d2ed14fcab
commit dbced4e371
15 changed files with 177 additions and 184 deletions

2
HEADS
View File

@ -1 +1 @@
{"engine": {"master": "f9dcd088d0af77ac83ff3fb629131d254d2d2f9f"}}
{"engine": {"master": "0c6c20bd64ebe3a9fe798af793f3181aeb3fd0e5"}}

View File

@ -68,11 +68,11 @@ void AssignmentController::admin_render_assignment_list(Request *request) {
HTMLBuilder b;
b.div("back")->f()->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
b.div("back")->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
b.br();
b.fdiv("Assignment Editor", "top_menu");
b.br();
b.div("top_menu")->f()->fa(request->get_url_root("new"), "Create New")->cdiv();
b.div("top_menu")->fa(request->get_url_root("new"), "Create New")->cdiv();
b.br();
b.div("list_container");
@ -93,7 +93,7 @@ void AssignmentController::admin_render_assignment_list(Request *request) {
b.fdiv(String::num(assignment->id), "attr_box");
b.fdiv(assignment->description, "name");
b.div("actionbox")->f()->fa(request->get_url_root("edit/" + String::num(assignment->id)), "Edit")->cdiv();
b.div("actionbox")->fa(request->get_url_root("edit/" + String::num(assignment->id)), "Edit")->cdiv();
}
b.cdiv();
}
@ -114,7 +114,7 @@ void AssignmentController::admin_render_assignment(Request *request, Ref<Assignm
HTMLBuilder b;
b.div("back")->f()->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
b.div("back")->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
b.br();
b.fdiv("Assignment Editor", "top_menu");
b.br();
@ -159,7 +159,7 @@ void AssignmentController::admin_render_assignment(Request *request, Ref<Assignm
ADMIN_EDIT_INPUT_TEXTAREA("Description:", "description", show_post, assignment->description, request->get_parameter("description"));
b.div("edit_submit")->f()->input_submit("Save", "submit")->f()->cdiv();
b.div("edit_submit")->input_submit("Save", "submit")->cdiv();
b.cform();
@ -178,7 +178,7 @@ AssignmentController *AssignmentController::get_singleton() {
}
AssignmentController::AssignmentController() :
AdminController() {
AdminNode() {
if (_self) {
printf("AssignmentController::AssignmentController(): Error! self is not null!/n");

View File

@ -4,15 +4,15 @@
#include "core/string.h"
#include "core/containers/vector.h"
#include "modules/admin_panel/admin_controller.h"
#include "modules/admin_panel/admin_node.h"
#include "assignment.h"
class Request;
class FormValidator;
class AssignmentController : public AdminController {
RCPP_OBJECT(AssignmentController, AdminController);
class AssignmentController : public AdminNode {
RCPP_OBJECT(AssignmentController, AdminNode);
public:
void handle_request_default(Request *request);

View File

@ -68,11 +68,11 @@ void BuildingController::admin_render_building_list(Request *request) {
HTMLBuilder b;
b.div("back")->f()->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
b.div("back")->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
b.br();
b.fdiv("Building Editor", "top_menu");
b.br();
b.div("top_menu")->f()->fa(request->get_url_root("new"), "Create New")->cdiv();
b.div("top_menu")->fa(request->get_url_root("new"), "Create New")->cdiv();
b.br();
b.div("list_container");
@ -95,7 +95,7 @@ void BuildingController::admin_render_building_list(Request *request) {
b.fdiv(String::num(building->next_rank), "attr_box");
b.fdiv(building->name, "name");
b.div("actionbox")->f()->fa(request->get_url_root("edit/" + String::num(building->id)), "Edit")->cdiv();
b.div("actionbox")->fa(request->get_url_root("edit/" + String::num(building->id)), "Edit")->cdiv();
}
b.cdiv();
}
@ -116,7 +116,7 @@ void BuildingController::admin_render_building(Request *request, Ref<Building> b
HTMLBuilder b;
b.div("back")->f()->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
b.div("back")->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
b.br();
b.fdiv("Building Editor", "top_menu");
b.br();
@ -132,7 +132,7 @@ void BuildingController::admin_render_building(Request *request, Ref<Building> b
b.fdiv("Icon:", "edit_name");
//todo I'm not sure yet how this worked originally
//b.div("edit_input")->f()->input_image("icon", building->icon)->f()->cdiv();
b.div("edit_input")->f()->w("TODO")->cdiv();
b.div("edit_input")->w("TODO")->cdiv();
b.cdiv();
ADMIN_EDIT_INPUT_TEXT("Rank:", "rank", show_post, String::num(building->rank), request->get_parameter("rank"));
@ -189,7 +189,7 @@ void BuildingController::admin_render_building(Request *request, Ref<Building> b
b.div("row_edit");
b.fdiv("Ability:", "edit_name");
b.div("edit_input")->f()->w("TODO")->cdiv();
b.div("edit_input")->w("TODO")->cdiv();
b.cdiv();
ADMIN_EDIT_LINE_SPACER();
@ -219,7 +219,7 @@ void BuildingController::admin_render_building(Request *request, Ref<Building> b
b.div("row_edit");
b.fdiv("Creates:", "edit_name");
b.div("edit_input")->f()->w("TODO")->cdiv();
b.div("edit_input")->w("TODO")->cdiv();
b.cdiv();
ADMIN_EDIT_LINE_SPACER();
@ -267,7 +267,7 @@ void BuildingController::admin_render_building(Request *request, Ref<Building> b
//TODO <?=form_dropdown($name_tech_secondary_group, $opttechgroup, $seltechsecgroup, $attr_tech_secondary_group); ?>
ADMIN_EDIT_INPUT_TEXT("Secondary Technology Group:", "tech_secondary_group", show_post, String::num(building->tech_secondary_group), request->get_parameter("tech_secondary_group"));
b.div("edit_submit")->f()->input_submit("Save", "submit")->f()->cdiv();
b.div("edit_submit")->input_submit("Save", "submit")->cdiv();
b.cform();
@ -286,7 +286,7 @@ BuildingController *BuildingController::get_singleton() {
}
BuildingController::BuildingController() :
AdminController() {
AdminNode() {
if (_self) {
printf("BuildingController::BuildingController(): Error! self is not null!/n");

View File

@ -4,15 +4,15 @@
#include "core/string.h"
#include "core/containers/vector.h"
#include "modules/admin_panel/admin_controller.h"
#include "modules/admin_panel/admin_node.h"
#include "building.h"
class Request;
class FormValidator;
class BuildingController : public AdminController {
RCPP_OBJECT(BuildingController, AdminController);
class BuildingController : public AdminNode {
RCPP_OBJECT(BuildingController, AdminNode);
public:
void handle_request_default(Request *request);

View File

@ -4,13 +4,13 @@
#define ADMIN_EDIT_INPUT_TEXT(p_edit_name, p_var_name, p_show_post, p_var, p_request_var) \
b.div("row_edit"); \
b.fdiv(p_edit_name, "edit_name"); \
b.div("edit_input")->f()->input_text(p_var_name, p_show_post ? p_request_var : p_var, "", "input")->f()->cdiv(); \
b.div("edit_input")->input_text(p_var_name, p_show_post ? p_request_var : p_var, "", "input")->cdiv(); \
b.cdiv();
#define ADMIN_EDIT_INPUT_TEXTAREA(p_edit_name, p_var_name, p_show_post, p_var, p_request_var) \
b.div("row_edit_textbox"); \
b.fdiv(p_edit_name, "edit_name"); \
b.div("edit_input")->f()->ftextarea(p_var_name, p_show_post ? p_request_var : p_var, "textarea")->cdiv(); \
b.div("edit_input")->ftextarea(p_var_name, p_show_post ? p_request_var : p_var, "textarea")->cdiv(); \
b.cdiv();
#define ADMIN_EDIT_LINE_SPACER() \

View File

@ -1,4 +1,4 @@
#include "mourne_application.h"
#include "mourne_root.h"
#include "core/http/request.h"
@ -6,7 +6,8 @@
#include "core/file_cache.h"
#include "core/http/handler_instance.h"
#include "core/os/platform.h"
#include "core/os/arg_parser.h"
#include "core/database/database_manager.h"
@ -18,13 +19,41 @@
#include "modules/users/user.h"
#include "modules/users/user_controller.h"
#include "mourne_user_controller.h"
#include "assignments/assignment_initializer.h"
#include "buildings/building_initializer.h"
#include "village/village_initializer.h"
#include "assignments/assignment_initializer.h"
#include "weather/weather_initializer.h"
bool MourneApplication::is_logged_in(Request *request) {
if (!request->session) {
void MourneRoot::handle_request_main(Request *request) {
if (process_middlewares(request)) {
return;
}
if (try_send_wwwroot_file(request)) {
return;
}
// this is a hack, until I have a simple index node, or port contentcontroller.
if (request->get_path_segment_count() == 0) {
index(request);
return;
}
WebNode *handler = get_request_handler_child(request);
if (!handler) {
request->send_error(404);
return;
}
add_menu(request, MENUENTRY_NEWS);
handler->handle_request_main(request);
}
bool MourneRoot::is_logged_in(Request *request) {
if (!request->session.is_valid()) {
return false;
}
@ -33,7 +62,7 @@ bool MourneApplication::is_logged_in(Request *request) {
return u.is_valid();
}
void MourneApplication::index(Object *instance, Request *request) {
void MourneRoot::index(Request *request) {
ENSURE_LOGIN(request);
add_menu(request, MENUENTRY_NEWS);
@ -56,15 +85,12 @@ void MourneApplication::index(Object *instance, Request *request) {
<?php endif; ?>
*/
//dynamic_cast<ListPage *>(instance)->index(request);
// dynamic_cast<ListPage *>(instance)->index(request);
request->body += "test";
request->compile_and_send_body();
}
void MourneApplication::session_middleware_func(Object *instance, Request *request) {
}
void MourneApplication::add_menu(Request *request, const MenuEntries index) {
void MourneRoot::add_menu(Request *request, const MenuEntries index) {
request->head += menu_head;
HTMLBuilder b;
@ -73,7 +99,7 @@ void MourneApplication::add_menu(Request *request, const MenuEntries index) {
int userlevel = 0;
if (request->session) {
if (request->session.is_valid()) {
Ref<User> user = request->reference_data["user"];
if (user.is_valid()) {
@ -109,7 +135,7 @@ void MourneApplication::add_menu(Request *request, const MenuEntries index) {
{
b.a()->href("/mail/inbox");
b.w("Mails");
//if ($newmail) echo '!';
// if ($newmail) echo '!';
b.ca();
}
b.cdiv();
@ -125,7 +151,7 @@ void MourneApplication::add_menu(Request *request, const MenuEntries index) {
b.div()->cls("menu_village");
{
b.a()->href("/village/selected");
b.w("Village"); //villagename
b.w("Village"); // villagename
b.ca();
}
b.cdiv();
@ -221,57 +247,63 @@ void MourneApplication::add_menu(Request *request, const MenuEntries index) {
request->footer = footer;
}
void MourneApplication::village_page_func(Object *instance, Request *request) {
void MourneRoot::village_page_func(Request *request) {
add_menu(request, MENUENTRY_VILLAGE);
//dynamic_cast<ListPage *>(instance)->index(request);
// dynamic_cast<ListPage *>(instance)->index(request);
request->body += "test";
request->compile_and_send_body();
}
void MourneApplication::user_page_func(Object *instance, Request *request) {
void MourneRoot::user_page_func(Request *request) {
if (is_logged_in(request)) {
add_menu(request, MENUENTRY_SETTINGS);
}
UserController::get_singleton()->handle_request_default(request);
UserController::get_singleton()->handle_request_main(request);
}
void MourneApplication::admin_page_func(Object *instance, Request *request) {
void MourneRoot::admin_page_func(Request *request) {
AdminPanel::get_singleton()->handle_request_main(request);
}
void MourneApplication::setup_routes() {
DWebApplication::setup_routes();
index_func = HandlerInstance(index);
main_route_map["village"] = HandlerInstance(village_page_func);
main_route_map["user"] = HandlerInstance(user_page_func);
main_route_map["admin"] = HandlerInstance(admin_page_func);
void MourneRoot::setup_routes() {
// index_func = HandlerInstance(index);
// main_route_map["village"] = HandlerInstance(village_page_func);
// main_route_map["user"] = HandlerInstance(user_page_func);
// main_route_map["admin"] = HandlerInstance(admin_page_func);
}
void MourneApplication::setup_middleware() {
middlewares.push_back(HandlerInstance(::SessionManager::session_setup_middleware));
middlewares.push_back(HandlerInstance(::UserController::user_session_setup_middleware));
DWebApplication::setup_middleware();
void MourneRoot::setup_middleware() {
_middlewares.push_back(Ref<SessionSetupMiddleware>(new SessionSetupMiddleware()));
_middlewares.push_back(Ref<UserSessionSetupMiddleware>(new UserSessionSetupMiddleware()));
}
void MourneApplication::migrate() {
void MourneRoot::migrate() {
BuildingController::get_singleton()->migrate();
VillageController::get_singleton()->migrate();
AssignmentController::get_singleton()->migrate();
WeatherController::get_singleton()->migrate();
if (Platform::get_singleton()->arg_parser.has_arg("-u")) {
printf("Creating test users.\n");
_user_controller->create_test_users();
}
if (Platform::get_singleton()->arg_parser.has_arg("-d")) {
printf("Adding data.\n");
add_default_data();
}
}
void MourneApplication::add_default_data() {
void MourneRoot::add_default_data() {
BuildingController::get_singleton()->add_default_data();
VillageController::get_singleton()->add_default_data();
AssignmentController::get_singleton()->add_default_data();
WeatherController::get_singleton()->add_default_data();
}
void MourneApplication::compile_menu() {
void MourneRoot::compile_menu() {
HTMLBuilder bh;
bh.meta()->charset_utf_8();
@ -301,8 +333,8 @@ void MourneApplication::compile_menu() {
footer = bf.result;
}
MourneApplication::MourneApplication() :
DWebApplication() {
MourneRoot::MourneRoot() :
WebRoot() {
BuildingInitializer::allocate_all();
VillageInitializer::allocate_all();
@ -310,10 +342,18 @@ MourneApplication::MourneApplication() :
WeatherInitializer::allocate_all();
_admin_panel = new AdminPanel();
_admin_panel->set_uri_segment("admin");
_admin_panel->register_admin_controller("buildings", BuildingController::get_singleton());
_admin_panel->register_admin_controller("assignments", AssignmentController::get_singleton());
_admin_panel->register_admin_controller("weather", WeatherController::get_singleton());
_user_controller = new MourneUserController();
_user_controller->set_uri_segment("user");
// user_manager->set_path("./users/");
add_child(_user_controller);
add_child(_admin_panel);
HTMLBuilder b;
b.link()->rel("stylesheet")->type("text/css")->href("/css/base.css")->f()->f();
@ -330,15 +370,13 @@ MourneApplication::MourneApplication() :
compile_menu();
}
MourneApplication::~MourneApplication() {
delete _admin_panel;
MourneRoot::~MourneRoot() {
VillageInitializer::free_all();
BuildingInitializer::free_all();
AssignmentInitializer::free_all();
WeatherInitializer::free_all();
}
String MourneApplication::menu_head = "";
String MourneApplication::admin_headers = "";
String MourneApplication::footer = "";
String MourneRoot::menu_head = "";
String MourneRoot::admin_headers = "";
String MourneRoot::footer = "";

View File

@ -1,10 +1,10 @@
#ifndef RDN_APPLICATION_H
#define RDN_APPLICATION_H
#ifndef MOURNE_ROOT_H
#define MOURNE_ROOT_H
//#include "core/http/web_application.h"
#include "core/http/web_root.h"
#include "core/object.h"
#include "core/string.h"
#include "modules/drogon/web_application.h"
#include "modules/list_page/list_page.h"
#include "modules/message_page/message_page.h"
@ -12,6 +12,11 @@
#include "modules/paged_list/paged_list.h"
class AdminPanel;
class RBACController;
class RBACModel;
class UserController;
class MenuNode;
class MourneUserController;
#define ENSURE_LOGIN(request) \
if (!is_logged_in(request)) { \
@ -19,7 +24,9 @@ class AdminPanel;
return; \
}
class MourneApplication : public DWebApplication {
class MourneRoot : public WebRoot {
RCPP_OBJECT(MourneRoot, WebRoot);
public:
enum MenuEntries {
MENUENTRY_NEWS = 0,
@ -38,18 +45,16 @@ public:
};
public:
static bool is_logged_in(Request *request);
void handle_request_main(Request *request);
static void index(Object *instance, Request *request);
bool is_logged_in(Request *request);
static void session_middleware_func(Object *instance, Request *request);
void add_menu(Request *request, const MenuEntries index);
static void add_menu(Request *request, const MenuEntries index);
static void village_page_func(Object *instance, Request *request);
static void user_page_func(Object *instance, Request *request);
static void admin_page_func(Object *instance, Request *request);
void index(Request *request);
void village_page_func(Request *request);
void user_page_func(Request *request);
void admin_page_func(Request *request);
virtual void setup_routes();
virtual void setup_middleware();
@ -59,10 +64,12 @@ public:
void compile_menu();
MourneApplication();
~MourneApplication();
MourneRoot();
~MourneRoot();
AdminPanel *_admin_panel;
AdminPanel *_admin_panel;
MourneUserController *_user_controller;
MenuNode *_menu;
static String menu_head;
static String admin_headers;

View File

@ -6,7 +6,6 @@
#include "core/http/http_session.h"
#include "core/http/request.h"
#include "core/http/session_manager.h"
#include "modules/users/user_model.h"
void MourneUserController::render_login_request_default(Request *request, LoginRequestData *data) {
HTMLBuilder b;
@ -26,7 +25,7 @@ void MourneUserController::render_login_request_default(Request *request, LoginR
b.div()->cls("login");
{
//todo href path helper
// todo href path helper
b.form()->method("POST")->href("/user/login");
{
b.w("Username");
@ -75,7 +74,7 @@ void MourneUserController::render_register_request_default(Request *request, Reg
b.div()->cls("register");
{
//todo href path helper
// todo href path helper
b.form()->method("POST")->href("/user/register");
{
b.w("Username");
@ -101,7 +100,7 @@ void MourneUserController::render_register_request_default(Request *request, Reg
b.input()->type("password")->name("password_check");
b.cinput();
b.br();
b.input()->type("submit")->value("Register");
b.cinput();
}
@ -144,7 +143,7 @@ void MourneUserController::render_settings_request(Ref<User> &user, Request *req
b.div()->cls("settings");
{
//todo href path helper
// todo href path helper
b.form()->method("POST")->href("/user/settings");
{
b.w("Username");
@ -183,6 +182,27 @@ void MourneUserController::render_settings_request(Ref<User> &user, Request *req
request->compile_and_send_body();
}
void MourneUserController::create_test_users() {
Ref<User> user;
user = create_user();
user->rank = 6;
user->name_user_input = "admin";
user->email_user_input = "admin@admin.com";
create_password(user, "Password");
db_save_user(user);
user = create_user();
user->rank = 1;
user->name_user_input = "user";
user->email_user_input = "user@user.com";
create_password(user, "Password");
db_save_user(user);
}
MourneUserController::MourneUserController() :
UserController() {
}

View File

@ -18,6 +18,8 @@ public:
void render_already_logged_in_error(Request *request);
void render_settings_request(Ref<User> &user, Request *request, SettingsRequestData *data);
virtual void create_test_users();
MourneUserController();
~MourneUserController();
};

View File

@ -1,30 +0,0 @@
#include "mourne_user_model.h"
void MourneUserModel::create_test_users() {
Ref<User> user;
user = UserModel::get_singleton()->create_user();
user->rank = 6;
user->name_user_input = "admin";
user->email_user_input = "admin@admin.com";
create_password(user, "Password");
save_user(user);
user = UserModel::get_singleton()->create_user();
user->rank = 1;
user->name_user_input = "user";
user->email_user_input = "user@user.com";
create_password(user, "Password");
save_user(user);
}
MourneUserModel::MourneUserModel() :
UserModel() {
}
MourneUserModel::~MourneUserModel() {
}

View File

@ -1,23 +0,0 @@
#ifndef MOURNE_USER_MODEL_H
#define MOURNE_USER_MODEL_H
#include "core/string.h"
#include "core/containers/vector.h"
#include "modules/users/user_model.h"
#include "modules/users/user.h"
class MourneUserModel : public UserModel {
RCPP_OBJECT(MourneUserModel, UserModel);
public:
virtual void create_test_users();
MourneUserModel();
~MourneUserModel();
protected:
};
#endif

View File

@ -68,11 +68,11 @@ void WeatherController::admin_render_weather_list(Request *request) {
HTMLBuilder b;
b.div("back")->f()->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
b.div("back")->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
b.br();
b.fdiv("Weather Editor", "top_menu");
b.br();
b.div("top_menu")->f()->fa(request->get_url_root("new"), "Create New")->cdiv();
b.div("top_menu")->fa(request->get_url_root("new"), "Create New")->cdiv();
b.br();
b.div("list_container");
@ -93,7 +93,7 @@ void WeatherController::admin_render_weather_list(Request *request) {
b.fdiv(String::num(weather->id), "attr_box");
b.fdiv(weather->name, "name");
b.div("actionbox")->f()->fa(request->get_url_root("edit/" + String::num(weather->id)), "Edit")->cdiv();
b.div("actionbox")->fa(request->get_url_root("edit/" + String::num(weather->id)), "Edit")->cdiv();
}
b.cdiv();
}
@ -114,7 +114,7 @@ void WeatherController::admin_render_weather(Request *request, Ref<Weather> weat
HTMLBuilder b;
b.div("back")->f()->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
b.div("back")->fa(request->get_url_root_parent(), "<--- Back")->cdiv();
b.br();
b.fdiv("Weather Editor", "top_menu");
b.br();
@ -149,7 +149,7 @@ void WeatherController::admin_render_weather(Request *request, Ref<Weather> weat
ADMIN_EDIT_INPUT_TEXT("Mod Percent Iron:", "mod_percent_iron", show_post, String::num(weather->mod_percent_iron), request->get_parameter("mod_percent_iron"));
ADMIN_EDIT_INPUT_TEXT("Mod Percent Mana:", "mod_percent_mana", show_post, String::num(weather->mod_percent_mana), request->get_parameter("mod_percent_mana"));
b.div("edit_submit")->f()->input_submit("Save", "submit")->f()->cdiv();
b.div("edit_submit")->input_submit("Save", "submit")->cdiv();
b.cform();
@ -168,7 +168,7 @@ WeatherController *WeatherController::get_singleton() {
}
WeatherController::WeatherController() :
AdminController() {
AdminNode() {
if (_self) {
printf("WeatherController::WeatherController(): Error! self is not null!/n");

View File

@ -4,15 +4,15 @@
#include "core/string.h"
#include "core/containers/vector.h"
#include "modules/admin_panel/admin_controller.h"
#include "modules/admin_panel/admin_node.h"
#include "weather.h"
class Request;
class FormValidator;
class WeatherController : public AdminController {
RCPP_OBJECT(WeatherController, AdminController);
class WeatherController : public AdminNode {
RCPP_OBJECT(WeatherController, AdminNode);
public:
void handle_request_default(Request *request);

View File

@ -2,25 +2,23 @@
#include <iostream>
#include <string>
#include "core/bry_http/http_server.h"
#include "core/file_cache.h"
#include "core/http/web_application.h"
#include "core/http/web_root.h"
#include "app/mourne_application.h"
#include "app/mourne_root.h"
#include "database/db_init.h"
#include "core/settings.h"
#include "core/settings/settings.h"
#include "core/settings/db_settings.h"
#include "core/http/session_manager.h"
#include "modules/drogon/web_application.h"
#include "modules/drogon/drogon_web_server.h"
//Backends
#include "backends/hash_hashlib/setup.h"
#include "app/mourne_user_controller.h"
#include "app/mourne_user_model.h"
#include "modules/users/user.h"
#include "core/os/platform.h"
@ -49,13 +47,8 @@ int main(int argc, char **argv, char **envp) {
::SessionManager *session_manager = new ::SessionManager();
//todo init these in the module automatically
MourneUserController *user_controller = new MourneUserController();
MourneUserModel *user_model = new MourneUserModel();
//user_manager->set_path("./users/");
Settings *settings = new Settings(true);
//settings->parse_file("settings.json");
DBSettings *settings = new DBSettings(true);
// settings->parse_file("settings.json");
FileCache *file_cache = new FileCache(true);
file_cache->wwwroot = "./www";
@ -65,18 +58,17 @@ int main(int argc, char **argv, char **envp) {
create_databases();
MourneApplication *app = new MourneApplication();
app->load_settings();
app->setup_routes();
app->setup_middleware();
DrogonWebServer *app = new DrogonWebServer();
MourneRoot *app_root = new MourneRoot();
app_root->setup();
bool migrate = Platform::get_singleton()->arg_parser.has_arg("-m");
if (!migrate) {
printf("Initialized!\n");
settings->load();
session_manager->load_sessions();
printf("Initialized!\n");
app->add_listener("127.0.0.1", 8080);
LOG_INFO << "Server running on 127.0.0.1:8080";
@ -84,28 +76,15 @@ int main(int argc, char **argv, char **envp) {
} else {
printf("Running migrations.\n");
settings->migrate();
session_manager->migrate();
user_model->migrate();
if (Platform::get_singleton()->arg_parser.has_arg("-u")) {
printf("Creating test users.\n");
user_model->create_test_users();
}
app->migrate();
if (Platform::get_singleton()->arg_parser.has_arg("-d")) {
printf("Adding data.\n");
app->add_default_data();
}
app_root->migrate();
}
delete app;
delete dbm;
delete file_cache;
delete settings;
delete user_controller;
delete user_model;
delete session_manager;
PlatformInitializer::free_all();