diff --git a/src/RESTObjects/RESTAPI_AnalyticsObjects.cpp b/src/RESTObjects/RESTAPI_AnalyticsObjects.cpp index aebe317..e7738ba 100644 --- a/src/RESTObjects/RESTAPI_AnalyticsObjects.cpp +++ b/src/RESTObjects/RESTAPI_AnalyticsObjects.cpp @@ -538,8 +538,8 @@ namespace OpenWifi::AnalyticsObjects { void WifiClientHistory::to_json(Poco::JSON::Object &Obj) const { field_to_json(Obj,"timestamp",timestamp); - field_to_json(Obj,"stationId",stationId); - field_to_json(Obj,"bssId",bssId); + field_to_json(Obj,"station_id",station_id); + field_to_json(Obj,"bssid",bssid); field_to_json(Obj,"ssid",ssid); field_to_json(Obj,"rssi",rssi); field_to_json(Obj,"rx_bitrate",rx_bitrate); @@ -573,13 +573,14 @@ namespace OpenWifi::AnalyticsObjects { field_to_json(Obj,"connected",connected); field_to_json(Obj,"inactive",inactive); field_to_json(Obj,"tx_retries",tx_retries); + field_to_json(Obj,"venue_id",venue_id); } bool WifiClientHistory::from_json(const Poco::JSON::Object::Ptr &Obj) { try { field_from_json(Obj,"timestamp",timestamp); - field_from_json(Obj,"stationId",stationId); - field_from_json(Obj,"bssId",bssId); + field_from_json(Obj,"station_id",station_id); + field_from_json(Obj,"bssid",bssid); field_from_json(Obj,"ssid",ssid); field_from_json(Obj,"rssi",rssi); field_from_json(Obj,"rx_bitrate",rx_bitrate); @@ -613,6 +614,7 @@ namespace OpenWifi::AnalyticsObjects { field_from_json(Obj,"connected",connected); field_from_json(Obj,"inactive",inactive); field_from_json(Obj,"tx_retries",tx_retries); + field_from_json(Obj,"venue_id",venue_id); return true; } catch(...) { diff --git a/src/RESTObjects/RESTAPI_AnalyticsObjects.h b/src/RESTObjects/RESTAPI_AnalyticsObjects.h index 6573aca..c1328f4 100644 --- a/src/RESTObjects/RESTAPI_AnalyticsObjects.h +++ b/src/RESTObjects/RESTAPI_AnalyticsObjects.h @@ -376,8 +376,8 @@ namespace OpenWifi { struct WifiClientHistory { uint64_t timestamp=OpenWifi::Now(); - std::string stationId; - std::string bssId; + std::string station_id; + std::string bssid; std::string ssid; int64_t rssi=0; uint32_t rx_bitrate=0; @@ -411,6 +411,7 @@ namespace OpenWifi { uint64_t connected=0; uint64_t inactive=0; uint64_t tx_retries=0; + std::string venue_id; void to_json(Poco::JSON::Object &Obj) const; bool from_json(const Poco::JSON::Object::Ptr &Obj); diff --git a/src/RESTObjects/RESTAPI_CertObjects.cpp b/src/RESTObjects/RESTAPI_CertObjects.cpp index f3aca35..ea55bd4 100644 --- a/src/RESTObjects/RESTAPI_CertObjects.cpp +++ b/src/RESTObjects/RESTAPI_CertObjects.cpp @@ -3,176 +3,206 @@ // #include "RESTAPI_CertObjects.h" +#include "framework/MicroService.h" using OpenWifi::RESTAPI_utils::field_to_json; using OpenWifi::RESTAPI_utils::field_from_json; -namespace OpenWifi { - namespace CertObjects { - void CertificateEntry::to_json(Poco::JSON::Object &Obj) const { - field_to_json(Obj,"id", id); - field_to_json(Obj,"entity", entity); - field_to_json(Obj,"creator", creator); - field_to_json(Obj,"type", type); - field_to_json(Obj,"status", status); - field_to_json(Obj,"certificate", certificate); - field_to_json(Obj,"key", key); - field_to_json(Obj,"devid", devid); - field_to_json(Obj,"cas", cas); - field_to_json(Obj,"manufacturer", manufacturer); - field_to_json(Obj,"model", model); - field_to_json(Obj,"redirector", redirector); - field_to_json(Obj,"commonName", commonName); - field_to_json(Obj,"certificateId", certificateId); - field_to_json(Obj,"batch", batch); - field_to_json(Obj,"created", created); - field_to_json(Obj,"modified", modified); - field_to_json(Obj,"revoked", revoked); - field_to_json(Obj,"revokeCount", revokeCount); - } +namespace OpenWifi::CertObjects { + void CertificateEntry::to_json(Poco::JSON::Object &Obj) const { + field_to_json(Obj,"id", id); + field_to_json(Obj,"entity", entity); + field_to_json(Obj,"creator", creator); + field_to_json(Obj,"type", type); + field_to_json(Obj,"status", status); + field_to_json(Obj,"certificate", certificate); + field_to_json(Obj,"key", key); + field_to_json(Obj,"devid", devid); + field_to_json(Obj,"cas", cas); + field_to_json(Obj,"manufacturer", manufacturer); + field_to_json(Obj,"model", model); + field_to_json(Obj,"redirector", redirector); + field_to_json(Obj,"commonName", commonName); + field_to_json(Obj,"certificateId", certificateId); + field_to_json(Obj,"batch", batch); + field_to_json(Obj,"created", created); + field_to_json(Obj,"modified", modified); + field_to_json(Obj,"revoked", revoked); + field_to_json(Obj,"revokeCount", revokeCount); + field_to_json(Obj,"synched", synched); + } - bool CertificateEntry::from_json(const Poco::JSON::Object::Ptr &Obj) { - try { - field_from_json(Obj,"id", id); - field_from_json(Obj,"entity", entity); - field_from_json(Obj,"creator", creator); - field_from_json(Obj,"type", type); - field_from_json(Obj,"status", status); - field_from_json(Obj,"certificate", certificate); - field_from_json(Obj,"key", key); - field_from_json(Obj,"devid", devid); - field_from_json(Obj,"cas", cas); - field_from_json(Obj,"manufacturer", manufacturer); - field_from_json(Obj,"model", model); - field_from_json(Obj,"redirector", redirector); - field_from_json(Obj,"commonName", commonName); - field_from_json(Obj,"certificateId", certificateId); - field_from_json(Obj,"batch", batch); - field_from_json(Obj,"created", created); - field_from_json(Obj,"modified", modified); - field_from_json(Obj,"revoked", revoked); - field_from_json(Obj,"revokeCount", revokeCount); - return true; - } catch (...) { - } - return false; + bool CertificateEntry::from_json(const Poco::JSON::Object::Ptr &Obj) { + try { + field_from_json(Obj,"id", id); + field_from_json(Obj,"entity", entity); + field_from_json(Obj,"creator", creator); + field_from_json(Obj,"type", type); + field_from_json(Obj,"status", status); + field_from_json(Obj,"certificate", certificate); + field_from_json(Obj,"key", key); + field_from_json(Obj,"devid", devid); + field_from_json(Obj,"cas", cas); + field_from_json(Obj,"manufacturer", manufacturer); + field_from_json(Obj,"model", model); + field_from_json(Obj,"redirector", redirector); + field_from_json(Obj,"commonName", commonName); + field_from_json(Obj,"certificateId", certificateId); + field_from_json(Obj,"batch", batch); + field_from_json(Obj,"created", created); + field_from_json(Obj,"modified", modified); + field_from_json(Obj,"revoked", revoked); + field_from_json(Obj,"revokeCount", revokeCount); + field_from_json(Obj,"synched", synched); + return true; + } catch (...) { } + return false; + } - void EntityEntry::to_json(Poco::JSON::Object &Obj) const { - field_to_json(Obj,"id", id); - field_to_json(Obj,"creator", creator); - field_to_json(Obj,"name", name); - field_to_json(Obj,"description", description); - field_to_json(Obj,"defaultRedirector", defaultRedirector); - field_to_json(Obj,"apiKey", apiKey); - field_to_json(Obj,"serverEnrollmentProfile", serverEnrollmentProfile); - field_to_json(Obj,"clientEnrollmentProfile", clientEnrollmentProfile); - field_to_json(Obj,"organization", organization); - field_to_json(Obj,"created", created); - field_to_json(Obj,"modified", modified); - field_to_json(Obj,"suspended", suspended); - field_to_json(Obj,"deleted", deleted); - field_to_json(Obj,"notes", notes); - } + void EntityEntry::to_json(Poco::JSON::Object &Obj) const { + field_to_json(Obj,"id", id); + field_to_json(Obj,"creator", creator); + field_to_json(Obj,"name", name); + field_to_json(Obj,"description", description); + field_to_json(Obj,"defaultRedirector", defaultRedirector); + field_to_json(Obj,"apiKey", apiKey); + field_to_json(Obj,"serverEnrollmentProfile", serverEnrollmentProfile); + field_to_json(Obj,"clientEnrollmentProfile", clientEnrollmentProfile); + field_to_json(Obj,"organization", organization); + field_to_json(Obj,"created", created); + field_to_json(Obj,"modified", modified); + field_to_json(Obj,"suspended", suspended); + field_to_json(Obj,"deleted", deleted); + field_to_json(Obj,"notes", notes); + } - bool EntityEntry::from_json(const Poco::JSON::Object::Ptr &Obj) { - try { - field_from_json(Obj,"id", id); - field_from_json(Obj,"creator", creator); - field_from_json(Obj,"name", name); - field_from_json(Obj,"description", description); - field_from_json(Obj,"defaultRedirector", defaultRedirector); - field_from_json(Obj,"apiKey", apiKey); - field_from_json(Obj,"serverEnrollmentProfile", serverEnrollmentProfile); - field_from_json(Obj,"clientEnrollmentProfile", clientEnrollmentProfile); - field_from_json(Obj,"organization", organization); - field_from_json(Obj,"created", created); - field_from_json(Obj,"modified", modified); - field_from_json(Obj,"suspended", suspended); - field_from_json(Obj,"deleted", deleted); - field_from_json(Obj,"notes", notes); - return true; - } catch (...) { - } - return false; + bool EntityEntry::from_json(const Poco::JSON::Object::Ptr &Obj) { + try { + field_from_json(Obj,"id", id); + field_from_json(Obj,"creator", creator); + field_from_json(Obj,"name", name); + field_from_json(Obj,"description", description); + field_from_json(Obj,"defaultRedirector", defaultRedirector); + field_from_json(Obj,"apiKey", apiKey); + field_from_json(Obj,"serverEnrollmentProfile", serverEnrollmentProfile); + field_from_json(Obj,"clientEnrollmentProfile", clientEnrollmentProfile); + field_from_json(Obj,"organization", organization); + field_from_json(Obj,"created", created); + field_from_json(Obj,"modified", modified); + field_from_json(Obj,"suspended", suspended); + field_from_json(Obj,"deleted", deleted); + field_from_json(Obj,"notes", notes); + return true; + } catch (...) { } + return false; + } - void BatchEntry::to_json(Poco::JSON::Object &Obj) const { - field_to_json(Obj,"id", id); - field_to_json(Obj,"entity", entity); - field_to_json(Obj,"creator", creator); - field_to_json(Obj,"name", name); - field_to_json(Obj,"description", description); - field_to_json(Obj,"manufacturer", manufacturer); - field_to_json(Obj,"model", model); - field_to_json(Obj,"redirector", redirector); - field_to_json(Obj,"commonNames", commonNames); - field_to_json(Obj,"jobHistory", jobHistory); - field_to_json(Obj,"notes", notes); - field_to_json(Obj,"submitted", submitted); - field_to_json(Obj,"started", started); - field_to_json(Obj,"completed", completed); - field_to_json(Obj,"modified", modified); - } + void BatchEntry::to_json(Poco::JSON::Object &Obj) const { + field_to_json(Obj,"id", id); + field_to_json(Obj,"entity", entity); + field_to_json(Obj,"creator", creator); + field_to_json(Obj,"name", name); + field_to_json(Obj,"description", description); + field_to_json(Obj,"manufacturer", manufacturer); + field_to_json(Obj,"model", model); + field_to_json(Obj,"redirector", redirector); + field_to_json(Obj,"commonNames", commonNames); + field_to_json(Obj,"jobHistory", jobHistory); + field_to_json(Obj,"notes", notes); + field_to_json(Obj,"submitted", submitted); + field_to_json(Obj,"started", started); + field_to_json(Obj,"completed", completed); + field_to_json(Obj,"modified", modified); + } - bool BatchEntry::from_json(const Poco::JSON::Object::Ptr &Obj) { - try { - field_from_json(Obj,"id", id); - field_from_json(Obj,"entity", entity); - field_from_json(Obj,"creator", creator); - field_from_json(Obj,"name", name); - field_from_json(Obj,"description", description); - field_from_json(Obj,"manufacturer", manufacturer); - field_from_json(Obj,"model", model); - field_from_json(Obj,"redirector", redirector); - field_from_json(Obj,"commonNames", commonNames); - field_from_json(Obj,"jobHistory", jobHistory); - field_from_json(Obj,"notes", notes); - field_from_json(Obj,"submitted", submitted); - field_from_json(Obj,"started", started); - field_from_json(Obj,"completed", completed); - field_from_json(Obj,"modified", modified); - return true; - } catch (...) { - } - return false; + bool BatchEntry::from_json(const Poco::JSON::Object::Ptr &Obj) { + try { + field_from_json(Obj,"id", id); + field_from_json(Obj,"entity", entity); + field_from_json(Obj,"creator", creator); + field_from_json(Obj,"name", name); + field_from_json(Obj,"description", description); + field_from_json(Obj,"manufacturer", manufacturer); + field_from_json(Obj,"model", model); + field_from_json(Obj,"redirector", redirector); + field_from_json(Obj,"commonNames", commonNames); + field_from_json(Obj,"jobHistory", jobHistory); + field_from_json(Obj,"notes", notes); + field_from_json(Obj,"submitted", submitted); + field_from_json(Obj,"started", started); + field_from_json(Obj,"completed", completed); + field_from_json(Obj,"modified", modified); + return true; + } catch (...) { } + return false; + } - void JobEntry::to_json(Poco::JSON::Object &Obj) const { - field_to_json(Obj,"id", id); - field_to_json(Obj,"entity", entity); - field_to_json(Obj,"creator", creator); - field_to_json(Obj,"batch", batch); - field_to_json(Obj,"commonNames", commonNames); - field_to_json(Obj,"completedNames", completedNames); - field_to_json(Obj,"errorNames", errorNames); - field_to_json(Obj,"status", status); - field_to_json(Obj,"command", command); - field_to_json(Obj,"parameters", parameters); - field_to_json(Obj,"submitted", submitted); - field_to_json(Obj,"started", started); - field_to_json(Obj,"completed", completed); - } + void JobEntry::to_json(Poco::JSON::Object &Obj) const { + field_to_json(Obj,"id", id); + field_to_json(Obj,"entity", entity); + field_to_json(Obj,"creator", creator); + field_to_json(Obj,"batch", batch); + field_to_json(Obj,"commonNames", commonNames); + field_to_json(Obj,"completedNames", completedNames); + field_to_json(Obj,"errorNames", errorNames); + field_to_json(Obj,"status", status); + field_to_json(Obj,"command", command); + field_to_json(Obj,"parameters", parameters); + field_to_json(Obj,"submitted", submitted); + field_to_json(Obj,"started", started); + field_to_json(Obj,"completed", completed); + } - bool JobEntry::from_json(const Poco::JSON::Object::Ptr &Obj) { - try { - field_from_json(Obj,"id", id); - field_from_json(Obj,"entity", entity); - field_from_json(Obj,"creator", creator); - field_from_json(Obj,"batch", batch); - field_from_json(Obj,"commonNames", commonNames); - field_from_json(Obj,"completedNames", completedNames); - field_from_json(Obj,"errorNames", errorNames); - field_from_json(Obj,"status", status); - field_from_json(Obj,"command", command); - field_from_json(Obj,"parameters", parameters); - field_from_json(Obj,"submitted", submitted); - field_from_json(Obj,"started", started); - field_from_json(Obj,"completed", completed); - return true; - } catch (...) { - } - return false; + bool JobEntry::from_json(const Poco::JSON::Object::Ptr &Obj) { + try { + field_from_json(Obj,"id", id); + field_from_json(Obj,"entity", entity); + field_from_json(Obj,"creator", creator); + field_from_json(Obj,"batch", batch); + field_from_json(Obj,"commonNames", commonNames); + field_from_json(Obj,"completedNames", completedNames); + field_from_json(Obj,"errorNames", errorNames); + field_from_json(Obj,"status", status); + field_from_json(Obj,"command", command); + field_from_json(Obj,"parameters", parameters); + field_from_json(Obj,"submitted", submitted); + field_from_json(Obj,"started", started); + field_from_json(Obj,"completed", completed); + return true; + } catch (...) { } + return false; + } + + void DashBoardYearlyStats::to_json(Poco::JSON::Object &Obj) const { + field_to_json(Obj, "year", year); + field_to_json(Obj, "activeCerts", activeCerts); + field_to_json(Obj, "revokedCerts", revokedCerts); + } + + void Dashboard::to_json(Poco::JSON::Object &Obj) const { + field_to_json(Obj,"snapshot", snapshot); + field_to_json(Obj,"numberOfIssuedCerts", numberOfIssuedCerts); + field_to_json(Obj,"numberOfRevokedCerts", numberOfRevokedCerts); + field_to_json(Obj,"activeCertsPerOrganization", activeCertsPerOrganization); + field_to_json(Obj,"revokedCertsPerOrganization", revokedCertsPerOrganization); + field_to_json(Obj,"numberOfRedirectors", numberOfRedirectors); + field_to_json(Obj,"deviceTypes", deviceTypes); + field_to_json(Obj,"monthlyNumberOfCerts", monthlyNumberOfCerts); + field_to_json(Obj,"monthlyNumberOfCertsPerOrgPerYear", monthlyNumberOfCertsPerOrgPerYear); + } + + void Dashboard::reset() { + snapshot=0; + numberOfRevokedCerts = numberOfIssuedCerts = 0; + activeCertsPerOrganization.clear(); + revokedCertsPerOrganization.clear(); + numberOfRedirectors.clear(); + deviceTypes.clear(); + monthlyNumberOfCerts.clear(); + monthlyNumberOfCertsPerOrgPerYear.clear(); } } \ No newline at end of file diff --git a/src/RESTObjects/RESTAPI_CertObjects.h b/src/RESTObjects/RESTAPI_CertObjects.h index aeed486..40b75a0 100644 --- a/src/RESTObjects/RESTAPI_CertObjects.h +++ b/src/RESTObjects/RESTAPI_CertObjects.h @@ -5,97 +5,118 @@ #pragma once #include -#include "framework/MicroService.h" #include "framework/OpenWifiTypes.h" #include "RESTObjects/RESTAPI_SecurityObjects.h" -namespace OpenWifi { +namespace OpenWifi::CertObjects { - namespace CertObjects { + struct CertificateEntry { + OpenWifi::Types::UUID_t id; + OpenWifi::Types::UUID_t entity; + OpenWifi::Types::UUID_t creator; + std::string type; + std::string status; + std::string certificate; + std::string key; + std::string devid; + std::string cas; + std::string manufacturer; + std::string model; + std::string redirector; + std::string commonName; + std::string certificateId; + OpenWifi::Types::UUID_t batch; + uint64_t created = 0; + uint64_t modified = 0; + uint64_t revoked = 0; + uint64_t revokeCount = 0; + uint64_t synched = 0; - struct CertificateEntry { - OpenWifi::Types::UUID_t id; - OpenWifi::Types::UUID_t entity; - OpenWifi::Types::UUID_t creator; - std::string type; - std::string status; - std::string certificate; - std::string key; - std::string devid; - std::string cas; - std::string manufacturer; - std::string model; - std::string redirector; - std::string commonName; - std::string certificateId; - OpenWifi::Types::UUID_t batch; - uint64_t created = 0; - uint64_t modified = 0; - uint64_t revoked = 0; - uint64_t revokeCount = 0; + void to_json(Poco::JSON::Object &Obj) const; + bool from_json(const Poco::JSON::Object::Ptr &Obj); + }; - void to_json(Poco::JSON::Object &Obj) const; - bool from_json(const Poco::JSON::Object::Ptr &Obj); - }; + struct EntityEntry { + OpenWifi::Types::UUID_t id; + OpenWifi::Types::UUID_t creator; + std::string name; + std::string description; + std::string defaultRedirector; + std::string apiKey; + std::string serverEnrollmentProfile; + std::string clientEnrollmentProfile; + std::string organization; + SecurityObjects::NoteInfoVec notes; + bool suspended=false; + bool deleted=false; + uint64_t created = 0 ; + uint64_t modified = 0 ; - struct EntityEntry { - OpenWifi::Types::UUID_t id; - OpenWifi::Types::UUID_t creator; - std::string name; - std::string description; - std::string defaultRedirector; - std::string apiKey; - std::string serverEnrollmentProfile; - std::string clientEnrollmentProfile; - std::string organization; - SecurityObjects::NoteInfoVec notes; - bool suspended=false; - bool deleted=false; - uint64_t created = 0 ; - uint64_t modified = 0 ; + void to_json(Poco::JSON::Object &Obj) const; + bool from_json(const Poco::JSON::Object::Ptr &Obj); + }; - void to_json(Poco::JSON::Object &Obj) const; - bool from_json(const Poco::JSON::Object::Ptr &Obj); - }; + struct BatchEntry { + OpenWifi::Types::UUID_t id; + OpenWifi::Types::UUID_t entity; + OpenWifi::Types::UUID_t creator; + std::string name; + std::string description; + std::string manufacturer; + std::string model; + std::string redirector; + std::vector commonNames; + std::vector jobHistory; + SecurityObjects::NoteInfoVec notes; + uint64_t submitted = 0 ; + uint64_t started = 0 ; + uint64_t completed = 0 ; + uint64_t modified = 0 ; - struct BatchEntry { - OpenWifi::Types::UUID_t id; - OpenWifi::Types::UUID_t entity; - OpenWifi::Types::UUID_t creator; - std::string name; - std::string description; - std::string manufacturer; - std::string model; - std::string redirector; - std::vector commonNames; - std::vector jobHistory; - SecurityObjects::NoteInfoVec notes; - uint64_t submitted = 0 ; - uint64_t started = 0 ; - uint64_t completed = 0 ; - uint64_t modified = 0 ; + void to_json(Poco::JSON::Object &Obj) const; + bool from_json(const Poco::JSON::Object::Ptr &Obj); + }; - void to_json(Poco::JSON::Object &Obj) const; - bool from_json(const Poco::JSON::Object::Ptr &Obj); - }; + struct JobEntry { + OpenWifi::Types::UUID_t id; + OpenWifi::Types::UUID_t entity; + OpenWifi::Types::UUID_t creator; + OpenWifi::Types::UUID_t batch; + std::string command; + OpenWifi::Types::StringVec commonNames; + OpenWifi::Types::StringVec completedNames; + OpenWifi::Types::StringVec errorNames; + Types::StringPairVec parameters; + std::string status; + uint64_t submitted=0; + uint64_t started=0; + uint64_t completed=0; - struct JobEntry { - OpenWifi::Types::UUID_t id; - OpenWifi::Types::UUID_t entity; - OpenWifi::Types::UUID_t creator; - OpenWifi::Types::UUID_t batch; - std::string command; - OpenWifi::Types::StringVec commonNames; - OpenWifi::Types::StringVec completedNames; - OpenWifi::Types::StringVec errorNames; - Types::StringPairVec parameters; - std::string status; - uint64_t submitted=0; - uint64_t started=0; - uint64_t completed=0; + void to_json(Poco::JSON::Object &Obj) const; + bool from_json(const Poco::JSON::Object::Ptr &Obj); + }; + + struct DashBoardYearlyStats { + uint64_t year=0; + OpenWifi::Types::Counted3DMapSII activeCerts; + OpenWifi::Types::Counted3DMapSII revokedCerts; + + void to_json(Poco::JSON::Object &Obj) const; + }; + + struct Dashboard { + uint64_t snapshot=0; + uint64_t numberOfIssuedCerts=0; + uint64_t numberOfRevokedCerts=0; + OpenWifi::Types::CountedMap activeCertsPerOrganization; + OpenWifi::Types::CountedMap revokedCertsPerOrganization; + OpenWifi::Types::CountedMap numberOfRedirectors; + OpenWifi::Types::CountedMap deviceTypes; + OpenWifi::Types::CountedMap monthlyNumberOfCerts; + std::vector monthlyNumberOfCertsPerOrgPerYear; + + void to_json(Poco::JSON::Object &Obj) const; + void reset(); + }; - void to_json(Poco::JSON::Object &Obj) const; - bool from_json(const Poco::JSON::Object::Ptr &Obj); - }; - } } \ No newline at end of file diff --git a/src/RESTObjects/RESTAPI_SecurityObjects.h b/src/RESTObjects/RESTAPI_SecurityObjects.h index ac3b6bd..a3f06e8 100644 --- a/src/RESTObjects/RESTAPI_SecurityObjects.h +++ b/src/RESTObjects/RESTAPI_SecurityObjects.h @@ -9,6 +9,7 @@ #pragma once #include +#include #include "framework/OpenWifiTypes.h" #include "Poco/JSON/Object.h" #include "Poco/Data/LOB.h" @@ -27,8 +28,13 @@ namespace OpenWifi { bool Delete_ = true; bool PortalLogin_ = true; + AclTemplate() noexcept = default; + void to_json(Poco::JSON::Object &Obj) const; - bool from_json(const Poco::JSON::Object::Ptr &Obj); }; + bool from_json(const Poco::JSON::Object::Ptr &Obj); + }; + + static_assert( std::is_nothrow_move_constructible_v ); struct WebToken { std::string access_token_;