From 556bef4227d9a8ed55d98294fa347f10f65cb8e2 Mon Sep 17 00:00:00 2001 From: stephb9959 Date: Fri, 1 Apr 2022 12:04:17 -0700 Subject: [PATCH] Adding 'updateAllDevices' for venu configuration push. --- openapi/owprov.yaml | 15 +++++++++++++-- src/RESTAPI/RESTAPI_venue_handler.cpp | 9 +++++++++ src/RESTObjects/RESTAPI_ProvObjects.cpp | 14 ++++++++++++++ src/RESTObjects/RESTAPI_ProvObjects.h | 7 +++++++ 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/openapi/owprov.yaml b/openapi/owprov.yaml index 5cfbb1f..0e73abf 100644 --- a/openapi/owprov.yaml +++ b/openapi/owprov.yaml @@ -2061,6 +2061,12 @@ paths: type: string format: uuid required: true + - in: query + name: updateAllDevices + schema: + type: boolean + default: false + required: false requestBody: description: Information used to modify the new venue content: @@ -2069,8 +2075,13 @@ paths: $ref: '#/components/schemas/Venue' responses: - 200: - $ref: '#/components/schemas/Venue' + description: Return venue information or list of serial number updated + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/Venue' + - $ref: '#/components/schemas/SerialNumberList' 403: $ref: '#/components/responses/Unauthorized' 404: diff --git a/src/RESTAPI/RESTAPI_venue_handler.cpp b/src/RESTAPI/RESTAPI_venue_handler.cpp index e034da6..83efc44 100644 --- a/src/RESTAPI/RESTAPI_venue_handler.cpp +++ b/src/RESTAPI/RESTAPI_venue_handler.cpp @@ -200,6 +200,15 @@ namespace OpenWifi{ return NotFound(); } + auto updateAllDevices = GetBoolParameter("updateAllDevices"); + if(updateAllDevices) { + ProvObjects::SerialNumberList SNL; + + Poco::JSON::Object Answer; + SNL.to_json(Answer); + return ReturnObject(Answer); + } + auto RawObject = ParseStream(); ProvObjects::Venue NewObject; if (!NewObject.from_json(RawObject)) { diff --git a/src/RESTObjects/RESTAPI_ProvObjects.cpp b/src/RESTObjects/RESTAPI_ProvObjects.cpp index 79967c9..7b36d83 100644 --- a/src/RESTObjects/RESTAPI_ProvObjects.cpp +++ b/src/RESTObjects/RESTAPI_ProvObjects.cpp @@ -649,6 +649,20 @@ namespace OpenWifi::ProvObjects { return false; } + void SerialNumberList::to_json(Poco::JSON::Object &Obj) const { + RESTAPI_utils::field_to_json( Obj,"serialNumbers",serialNumbers); + } + + bool SerialNumberList::from_json(const Poco::JSON::Object::Ptr &Obj) { + try { + RESTAPI_utils::field_from_json( Obj,"serialNumbers",serialNumbers); + return true; + } catch(...) { + + } + return false; + } + void MapList::to_json(Poco::JSON::Object &Obj) const { RESTAPI_utils::field_to_json( Obj,"list",list); } diff --git a/src/RESTObjects/RESTAPI_ProvObjects.h b/src/RESTObjects/RESTAPI_ProvObjects.h index 7de6b98..55c0605 100644 --- a/src/RESTObjects/RESTAPI_ProvObjects.h +++ b/src/RESTObjects/RESTAPI_ProvObjects.h @@ -33,6 +33,13 @@ namespace OpenWifi::ProvObjects { bool from_json(const Poco::JSON::Object::Ptr &Obj); }; + struct SerialNumberList { + Types::UUIDvec_t serialNumbers; + + void to_json(Poco::JSON::Object &Obj) const; + bool from_json(const Poco::JSON::Object::Ptr &Obj); + }; + struct ManagementPolicyEntry { Types::UUIDvec_t users; Types::UUIDvec_t resources;