1 #ifndef _CORE_MANAGEMENT_API_H 2 #define _CORE_MANAGEMENT_API_H 12 #include <management_api.h> 13 #include <configuration_manager.h> 16 #define REGISTER_SERVICE "/fledge/service" 17 #define UNREGISTER_SERVICE "/fledge/service/([0-9A-F][0-9A-F\\-]*)" 18 #define GET_ALL_CATEGORIES "/fledge/service/category" 19 #define CREATE_CATEGORY GET_ALL_CATEGORIES 20 #define GET_CATEGORY "/fledge/service/category/([A-Za-z][a-zA-Z_0-9]*)" 21 #define GET_CATEGORY_ITEM "/fledge/service/category/([A-Za-z][a-zA-Z_0-9]*)/([A-Za-z][a-zA-Z_0-9]*)" 22 #define DELETE_CATEGORY_ITEM_VALUE "/fledge/service/category/([A-Za-z][a-zA-Z_0-9]*)/([A-Za-z][a-zA-Z_0-9]*)/(value)" 23 #define SET_CATEGORY_ITEM_VALUE GET_CATEGORY_ITEM 24 #define DELETE_CATEGORY GET_CATEGORY 25 #define DELETE_CHILD_CATEGORY "/fledge/service/category/([A-Za-z][a-zA-Z_0-9]*)/(children)/([A-Za-z][a-zA-Z_0-9]*)" 26 #define ADD_CHILD_CATEGORIES "/fledge/service/category/([A-Za-z][a-zA-Z_0-9]*)/(children)" 27 #define REGISTER_CATEGORY_INTEREST "/fledge/interest" // TODO implment this, right now it's a fake. 28 #define GET_SERVICE REGISTER_SERVICE 30 #define UUID_COMPONENT 1 31 #define CATEGORY_NAME_COMPONENT 1 32 #define CATEGORY_ITEM_COMPONENT 2 33 #define ITEM_VALUE_NAME 3 34 #define CHILD_CATEGORY_COMPONENT 3 36 using HttpServer = SimpleWeb::Server<SimpleWeb::HTTP>;
47 std::shared_ptr<HttpServer::Request> request);
49 std::shared_ptr<HttpServer::Request> request);
52 std::shared_ptr<HttpServer::Request> request);
54 void getCategory(std::shared_ptr<HttpServer::Response> response,
55 std::shared_ptr<HttpServer::Request> request);
59 std::shared_ptr<HttpServer::Request> request);
62 std::shared_ptr<HttpServer::Request> request);
65 std::shared_ptr<HttpServer::Request> request);
67 void deleteCategory(std::shared_ptr<HttpServer::Response> response,
68 std::shared_ptr<HttpServer::Request> request);
71 std::shared_ptr<HttpServer::Request> request);
73 void createCategory(std::shared_ptr<HttpServer::Response> response,
74 std::shared_ptr<HttpServer::Request> request);
77 std::shared_ptr<HttpServer::Request> request);
80 std::shared_ptr<HttpServer::Request> request);
83 void errorResponse(std::shared_ptr<HttpServer::Response> response,
84 SimpleWeb::StatusCode statusCode,
85 const std::string& entryPoint,
86 const std::string& msg);
87 void internalError(std::shared_ptr<HttpServer::Response>,
88 const std::exception&);
89 void respond(std::shared_ptr<HttpServer::Response> response,
90 SimpleWeb::StatusCode statusCode,
91 const std::string& payload);
92 void respond(std::shared_ptr<HttpServer::Response> response,
93 const std::string& payload);
94 bool getConfigurationManager(
const std::string& address,
95 const unsigned short port);
96 void setConfigurationEntryPoints();
Management API server for a C++ microservice.
Definition: management_api.h:32
void addChildCategory(std::shared_ptr< HttpServer::Response > response, std::shared_ptr< HttpServer::Request > request)
Add child categories to a given category name Received POST /fledge/service/category/{categoryName}/c...
Definition: core_management_api.cpp:900
void registerMicroService(std::shared_ptr< HttpServer::Response > response, std::shared_ptr< HttpServer::Request > request)
Received a service registration request.
Definition: core_management_api.cpp:408
Definition: configuration_manager.h:18
void defaultResource(std::shared_ptr< HttpServer::Response > response, std::shared_ptr< HttpServer::Request > request)
Handle a bad URL endpoint call.
Definition: core_management_api.cpp:355
void setCategoryItemValue(std::shared_ptr< HttpServer::Response > response, std::shared_ptr< HttpServer::Request > request)
Received PUT /fledge/service/category/{categoryName}/{configItem} Payload is {"value" : "some_data"} ...
Definition: core_management_api.cpp:672
void deleteCategory(std::shared_ptr< HttpServer::Response > response, std::shared_ptr< HttpServer::Request > request)
Delete a config category Received DELETE /fledge/service/category/{categoryName} Send to client the J...
Definition: core_management_api.cpp:737
CoreManagementApi(const std::string &name, const unsigned short port)
Construct a microservices management API manager class.
Definition: core_management_api.cpp:367
void deleteCategoryItemValue(std::shared_ptr< HttpServer::Response > response, std::shared_ptr< HttpServer::Request > request)
Received a DELETE /fledge/service/category/{categoryName}/{configItem}/value.
Definition: core_management_api.cpp:640
void createCategory(std::shared_ptr< HttpServer::Response > response, std::shared_ptr< HttpServer::Request > request)
Create a new configuration category Received POST /fledge/service/category.
Definition: core_management_api.cpp:801
void getCategory(std::shared_ptr< HttpServer::Response > response, std::shared_ptr< HttpServer::Request > request)
Received a GET /fledge/service/category/{categoryName}.
Definition: core_management_api.cpp:218
static CoreManagementApi * getInstance()
Return the singleton instance of the core management interface.
Definition: core_management_api.cpp:400
void getCategoryItem(std::shared_ptr< HttpServer::Response > response, std::shared_ptr< HttpServer::Request > request)
Received a GET /fledge/service/category/{categoryName}/{itemName].
Definition: core_management_api.cpp:253
Management API server for a C++ microservice.
Definition: core_management_api.h:41
void unRegisterMicroService(std::shared_ptr< HttpServer::Response > response, std::shared_ptr< HttpServer::Request > request)
Received a service unregister request.
Definition: core_management_api.cpp:501
void deleteChildCategory(std::shared_ptr< HttpServer::Response > response, std::shared_ptr< HttpServer::Request > request)
Delete child categories of a config category Received DELETE /fledge/service/category/{categoryName}/...
Definition: core_management_api.cpp:768
void getAllCategories(std::shared_ptr< HttpServer::Response > response, std::shared_ptr< HttpServer::Request > request)
Received a GET /fledge/service/category.
Definition: core_management_api.cpp:315