add: CORS and OPTIONS
add: 'off' schedule in db init add: copy db to build dir
This commit is contained in:
parent
e93ea44350
commit
8679bfe680
7 changed files with 32 additions and 59 deletions
35
.gitignore
vendored
35
.gitignore
vendored
|
@ -1,36 +1,5 @@
|
||||||
# Prerequisites
|
|
||||||
*.d
|
|
||||||
|
|
||||||
# Compiled Object files
|
|
||||||
*.slo
|
|
||||||
*.lo
|
|
||||||
*.o
|
|
||||||
*.obj
|
|
||||||
|
|
||||||
# Precompiled Headers
|
|
||||||
*.gch
|
|
||||||
*.pch
|
|
||||||
|
|
||||||
# Compiled Dynamic libraries
|
|
||||||
*.so
|
|
||||||
*.dylib
|
|
||||||
*.dll
|
|
||||||
|
|
||||||
# Fortran module files
|
|
||||||
*.mod
|
|
||||||
*.smod
|
|
||||||
|
|
||||||
# Compiled Static libraries
|
|
||||||
*.lai
|
|
||||||
*.la
|
|
||||||
*.a
|
|
||||||
*.lib
|
|
||||||
|
|
||||||
# Executables
|
|
||||||
*.exe
|
|
||||||
*.out
|
|
||||||
*.app
|
|
||||||
|
|
||||||
build
|
build
|
||||||
cmake-build-debug
|
cmake-build-debug
|
||||||
.idea
|
.idea
|
||||||
|
|
||||||
|
core.sqlite
|
||||||
|
|
|
@ -58,6 +58,9 @@ foreach(cspFile ${SCP_LIST})
|
||||||
set(VIEWSRC ${VIEWSRC} ${classname}.cc)
|
set(VIEWSRC ${VIEWSRC} ${classname}.cc)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
configure_file("config.json" "config.json" COPYONLY)
|
||||||
|
configure_file("core.sqlite" "core.sqlite" COPYONLY)
|
||||||
|
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
add_executable(core ${SRC_DIR} ${CTL_SRC} ${FILTER_SRC} ${VIEWSRC} ${PLUGIN_SRC} ${MODEL_SRC} ${HELPER_SRC})
|
add_executable(core ${SRC_DIR} ${CTL_SRC} ${FILTER_SRC} ${VIEWSRC} ${PLUGIN_SRC} ${MODEL_SRC} ${HELPER_SRC})
|
||||||
|
|
||||||
|
|
|
@ -1,23 +1,21 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <drogon/HttpController.h>
|
#include <drogon/HttpController.h>
|
||||||
using namespace drogon;
|
using namespace drogon;
|
||||||
namespace api
|
namespace api::v1
|
||||||
{
|
|
||||||
namespace v1
|
|
||||||
{
|
{
|
||||||
class controllers:public drogon::HttpController<controllers>
|
class controllers:public drogon::HttpController<controllers>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
METHOD_LIST_BEGIN
|
METHOD_LIST_BEGIN
|
||||||
METHOD_ADD(controllers::post_discover, "/discover", Post);
|
METHOD_ADD(controllers::post_discover, "/discover", Post, Options);
|
||||||
METHOD_ADD(controllers::get_all, "/", Get);
|
METHOD_ADD(controllers::get_all, "/", Get, Options);
|
||||||
METHOD_ADD(controllers::get_one_by_id, "/{1}", Get);
|
METHOD_ADD(controllers::get_one_by_id, "/{1}", Get, Options);
|
||||||
METHOD_ADD(controllers::delete_one_by_id, "/{1}", Delete);
|
METHOD_ADD(controllers::delete_one_by_id, "/{1}", Delete, Options);
|
||||||
METHOD_ADD(controllers::put_one_by_id, "/{1}", Put, "filters::json_required", "filters::controllers::valid_json");
|
METHOD_ADD(controllers::put_one_by_id, "/{1}", Put, Options, "filters::json_required", "filters::controllers::valid_json");
|
||||||
|
|
||||||
METHOD_ADD(controllers::get_relays_all, "/{1}/relays/", Get);
|
METHOD_ADD(controllers::get_relays_all, "/{1}/relays/", Get, Options);
|
||||||
METHOD_ADD(controllers::get_relays_one_by_id_and_num, "/{1}/relays/{2}", Get);
|
METHOD_ADD(controllers::get_relays_one_by_id_and_num, "/{1}/relays/{2}", Get, Options);
|
||||||
METHOD_ADD(controllers::put_relays_one_by_id_and_num, "/{1}/relays/{2}", Put, "filters::json_required", "filters::relays::valid_json");
|
METHOD_ADD(controllers::put_relays_one_by_id_and_num, "/{1}/relays/{2}", Put, Options, "filters::json_required", "filters::relays::valid_json");
|
||||||
METHOD_LIST_END
|
METHOD_LIST_END
|
||||||
|
|
||||||
static void post_discover(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback);
|
static void post_discover(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback);
|
||||||
|
@ -31,4 +29,3 @@ namespace api
|
||||||
static void put_relays_one_by_id_and_num(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, const std::string& controller_id, int relay_num);
|
static void put_relays_one_by_id_and_num(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, const std::string& controller_id, int relay_num);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
|
@ -1,18 +1,15 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <drogon/HttpController.h>
|
#include <drogon/HttpController.h>
|
||||||
using namespace drogon;
|
using namespace drogon;
|
||||||
namespace api
|
namespace api::v1
|
||||||
{
|
|
||||||
namespace v1
|
|
||||||
{
|
{
|
||||||
class relays:public drogon::HttpController<relays>
|
class relays:public drogon::HttpController<relays>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
METHOD_LIST_BEGIN
|
METHOD_LIST_BEGIN
|
||||||
METHOD_ADD(relays::get_all, "/", Get);
|
METHOD_ADD(relays::get_all, "/", Get, Options);
|
||||||
METHOD_LIST_END
|
METHOD_LIST_END
|
||||||
|
|
||||||
static void get_all(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback);
|
static void get_all(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
|
@ -1,19 +1,17 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <drogon/HttpController.h>
|
#include <drogon/HttpController.h>
|
||||||
using namespace drogon;
|
using namespace drogon;
|
||||||
namespace api
|
namespace api::v1
|
||||||
{
|
|
||||||
namespace v1
|
|
||||||
{
|
{
|
||||||
class schedules:public drogon::HttpController<schedules>
|
class schedules:public drogon::HttpController<schedules>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
METHOD_LIST_BEGIN
|
METHOD_LIST_BEGIN
|
||||||
METHOD_ADD(schedules::post_new, "/", Post, "filters::json_required", "filters::schedules::valid_json");
|
METHOD_ADD(schedules::post_new, "/", Post, Options, "filters::json_required", "filters::schedules::valid_json");
|
||||||
METHOD_ADD(schedules::get_all, "/", Get);
|
METHOD_ADD(schedules::get_all, "/", Get, Options);
|
||||||
METHOD_ADD(schedules::get_one_by_id, "/{1}", Get);
|
METHOD_ADD(schedules::get_one_by_id, "/{1}", Get, Options);
|
||||||
METHOD_ADD(schedules::delete_one_by_id, "/{1}", Delete);
|
METHOD_ADD(schedules::delete_one_by_id, "/{1}", Delete, Options);
|
||||||
METHOD_ADD(schedules::put_one_by_id, "/{1}", Put, "filters::json_required", "filters::schedules::valid_json");
|
METHOD_ADD(schedules::put_one_by_id, "/{1}", Put, Options, "filters::json_required", "filters::schedules::valid_json");
|
||||||
//METHOD_ADD(controllers::get_relays_all,"/{1}/relays",Get);
|
//METHOD_ADD(controllers::get_relays_all,"/{1}/relays",Get);
|
||||||
//METHOD_ADD(controllers::get_relays_one,"/{1}/relays/{2}",Get);
|
//METHOD_ADD(controllers::get_relays_one,"/{1}/relays/{2}",Get);
|
||||||
METHOD_LIST_END
|
METHOD_LIST_END
|
||||||
|
@ -27,4 +25,3 @@ namespace api
|
||||||
//void get_relays_one(const HttpRequestPtr& req,std::function<void (const HttpResponsePtr &)> &&callback,std::string schedule_id,std::string relay_id);
|
//void get_relays_one(const HttpRequestPtr& req,std::function<void (const HttpResponsePtr &)> &&callback,std::string schedule_id,std::string relay_id);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
8
main.cc
8
main.cc
|
@ -7,6 +7,12 @@
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
static void
|
||||||
|
add_cors_headers(const drogon::HttpRequestPtr &requestPtr, const drogon::HttpResponsePtr &responsePtr)
|
||||||
|
{
|
||||||
|
responsePtr->addHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
terminate(int signum)
|
terminate(int signum)
|
||||||
{
|
{
|
||||||
|
@ -43,6 +49,8 @@ main()
|
||||||
//Load config file
|
//Load config file
|
||||||
drogon::app().loadConfigFile("config.json");
|
drogon::app().loadConfigFile("config.json");
|
||||||
|
|
||||||
|
drogon::app().registerPostHandlingAdvice(add_cors_headers);
|
||||||
|
|
||||||
//drogon::app().getLoop()->runEvery(1, &test);
|
//drogon::app().getLoop()->runEvery(1, &test);
|
||||||
|
|
||||||
//Run HTTP framework,the method will block in the internal event loop
|
//Run HTTP framework,the method will block in the internal event loop
|
||||||
|
|
|
@ -36,3 +36,5 @@ create table schedules
|
||||||
name VARCHAR(128),
|
name VARCHAR(128),
|
||||||
periods BLOB
|
periods BLOB
|
||||||
);
|
);
|
||||||
|
|
||||||
|
INSERT INTO schedules (id, name, periods) VALUES ('off', 'off', x'00');
|
Loading…
Reference in a new issue