#pragma once #include using namespace drogon; namespace api { namespace v1 { class devices:public drogon::HttpController { public: METHOD_LIST_BEGIN METHOD_ADD(devices::post_discover, "/discover", Post); METHOD_ADD(devices::get_all, "/", Get); METHOD_ADD(devices::get_one_by_id, "/{1}", Get); METHOD_ADD(devices::delete_one_by_id, "/{1}", Delete); METHOD_ADD(devices::get_relays_all, "/{1}/relays/", Get); METHOD_ADD(devices::get_relays_one_by_id_and_num, "/{1}/relays/{2}", Get); METHOD_ADD(devices::put_relays_one_by_id_and_num, "/{1}/relays/{2}", Put, "filters::json_required", "filters::relays::valid_json"); METHOD_LIST_END static void post_discover(const HttpRequestPtr& req, std::function &&callback); static void get_all(const HttpRequestPtr& req, std::function &&callback); static void get_one_by_id(const HttpRequestPtr& req, std::function &&callback, const std::string& device_id); static void delete_one_by_id(const HttpRequestPtr& req, std::function &&callback, const std::string& device_id); static void get_relays_all(const HttpRequestPtr& req, std::function &&callback, const std::string& device_id); static void get_relays_one_by_id_and_num(const HttpRequestPtr& req, std::function &&callback, const std::string& device_id, int relay_num); static void put_relays_one_by_id_and_num(const HttpRequestPtr& req, std::function &&callback, const std::string& device_id, int relay_num); }; } }