Adding OWAnalytics boards to DB

This commit is contained in:
stephb9959
2022-03-12 20:57:15 -08:00
parent f47447d931
commit 144e5a3480
9 changed files with 48 additions and 16 deletions

2
build
View File

@@ -1 +1 @@
56
57

View File

@@ -365,6 +365,13 @@ components:
items:
type: string
format: uuid
boards:
description: The list of OWAnalytics Boards created for this venue
type: array
items:
type: string
format: uuid
VenueList:
type: object

View File

@@ -265,32 +265,20 @@ namespace OpenWifi{
return BadRequest(ErrorText);
}
__DBG__
if(DB_.CreateRecord(NewObject)) {
__DBG__
SDK::GW::Device::SetOwnerShip(this, SerialNumber, NewObject.entity, NewObject.venue, NewObject.subscriber);
SerialNumberCache()->AddSerialNumber(SerialNumber,NewObject.deviceType);
__DBG__
MoveUsage(StorageService()->PolicyDB(),DB_,NewObject.managementPolicy,"",NewObject.info.id);
__DBG__
MoveUsage(StorageService()->LocationDB(),DB_,NewObject.location,"",NewObject.info.id);
__DBG__
MoveUsage(StorageService()->ContactDB(),DB_,NewObject.contact,"",NewObject.info.id);
__DBG__
MoveUsage(StorageService()->ConfigurationDB(),DB_,NewObject.deviceConfiguration,"",NewObject.info.id);
__DBG__
ManageMembership(StorageService()->EntityDB(),&ProvObjects::Entity::devices,NewObject.entity,"",NewObject.info.id);
__DBG__
ManageMembership(StorageService()->VenueDB(),&ProvObjects::Venue::devices,NewObject.venue,"",NewObject.info.id);
__DBG__
ProvObjects::InventoryTag NewTag;
__DBG__
DB_.GetRecord("id",NewObject.info.id,NewTag);
__DBG__
Poco::JSON::Object Answer;
NewTag.to_json(Answer);
__DBG__
return ReturnObject(Answer);
}
InternalError(RESTAPI::Errors::RecordNotCreated);
@@ -443,6 +431,8 @@ namespace OpenWifi{
ManageMembership(StorageService()->EntityDB(),&ProvObjects::Entity::devices,FromEntity,ToEntity,Existing.info.id);
ManageMembership(StorageService()->VenueDB(),&ProvObjects::Venue::devices,FromVenue,ToVenue,Existing.info.id);
SDK::GW::Device::SetOwnerShip(this, SerialNumber, Existing.entity, Existing.venue, Existing.subscriber);
ProvObjects::InventoryTag NewObjectCreated;
DB_.GetRecord("id", Existing.info.id, NewObjectCreated);
Poco::JSON::Object Answer;

View File

@@ -161,6 +161,7 @@ namespace OpenWifi::ProvObjects {
field_to_json( Obj,"managementRoles", managementRoles);
field_to_json( Obj,"maps", maps);
field_to_json( Obj,"configurations", configurations);
field_to_json( Obj,"boards", boards);
}
bool Venue::from_json(const Poco::JSON::Object::Ptr &Obj) {
@@ -184,6 +185,7 @@ namespace OpenWifi::ProvObjects {
field_from_json( Obj,"managementRoles", managementRoles);
field_from_json( Obj,"maps", maps);
field_from_json( Obj,"configurations", configurations);
field_from_json( Obj,"boards", boards);
return true;
} catch (...) {

View File

@@ -107,6 +107,7 @@ namespace OpenWifi::ProvObjects {
Types::UUIDvec_t maps;
Types::UUIDvec_t managementPolicies;
Types::UUIDvec_t managementRoles;
Types::UUIDvec_t boards;
void to_json(Poco::JSON::Object &Obj) const;
bool from_json(const Poco::JSON::Object::Ptr &Obj);

View File

@@ -153,6 +153,29 @@ namespace OpenWifi::SDK::GW {
return false;
}
bool SetOwnerShip(RESTAPIHandler *client, const std::string & SerialNumber,
const std::string &entity,
const std::string &venue,
const std::string &subscriber ) {
Poco::JSON::Object Body;
Body.set("serialNumber", SerialNumber);
Body.set("subscriber", subscriber);
Body.set("venue", venue);
Body.set("entity", entity);
OpenWifi::OpenAPIRequestPut R(OpenWifi::uSERVICE_GATEWAY,
"/api/v1/device/" +SerialNumber,
{},
Body,
10000);
auto CallResponse = Poco::makeShared<Poco::JSON::Object>();
auto ResponseStatus = R.Do(CallResponse, client ? client->UserInfo_.webtoken.access_token_ : "");
if(ResponseStatus == Poco::Net::HTTPResponse::HTTP_OK) {
return true;
}
return false;
}
bool Configure(RESTAPIHandler *client, const std::string &Mac, Poco::JSON::Object::Ptr & Configuration, Poco::JSON::Object::Ptr & Response) {
Poco::JSON::Object Body;

View File

@@ -22,7 +22,11 @@ namespace OpenWifi::SDK::GW {
return SetSubscriber(nullptr, SerialNumber, uuid);
}
bool SetEntity(RESTAPIHandler *client, const std::string & SerialNumber, const std::string &uuid);
bool SetOwnerShip(RESTAPIHandler *client, const std::string & SerialNumber,
const std::string &entity,
const std::string &venue,
const std::string &subscriber
);
}
}

View File

@@ -41,7 +41,8 @@ namespace OpenWifi {
ORM::Field{"configurations",ORM::FieldType::FT_TEXT},
ORM::Field{"maps",ORM::FieldType::FT_TEXT},
ORM::Field{"managementPolicies",ORM::FieldType::FT_TEXT},
ORM::Field{"managementRoles",ORM::FieldType::FT_TEXT}
ORM::Field{"managementRoles",ORM::FieldType::FT_TEXT},
ORM::Field{"boards",ORM::FieldType::FT_TEXT}
};
static ORM::IndexVec VenueDB_Indexes{
@@ -62,6 +63,7 @@ namespace OpenWifi {
"alter table " + TableName_ + " add column maps text",
"alter table " + TableName_ + " add column managementRoles text",
"alter table " + TableName_ + " add column managementPolicies text",
"alter table " + TableName_ + " add column boards text",
"alter table " + TableName_ + " rename column contact to contacts",
};
@@ -123,6 +125,7 @@ template<> void ORM::DB< OpenWifi::VenueDBRecordType, OpenWifi::ProvObjects::
Out.maps = OpenWifi::RESTAPI_utils::to_object_array(In.get<21>());
Out.managementPolicies = OpenWifi::RESTAPI_utils::to_object_array(In.get<22>());
Out.managementRoles = OpenWifi::RESTAPI_utils::to_object_array(In.get<23>());
Out.boards = OpenWifi::RESTAPI_utils::to_object_array(In.get<24>());
}
template<> void ORM::DB< OpenWifi::VenueDBRecordType, OpenWifi::ProvObjects::Venue>::Convert(const OpenWifi::ProvObjects::Venue &In, OpenWifi::VenueDBRecordType &Out) {
@@ -150,4 +153,5 @@ template<> void ORM::DB< OpenWifi::VenueDBRecordType, OpenWifi::ProvObjects::
Out.set<21>(OpenWifi::RESTAPI_utils::to_string(In.maps));
Out.set<22>(OpenWifi::RESTAPI_utils::to_string(In.managementPolicies));
Out.set<23>(OpenWifi::RESTAPI_utils::to_string(In.managementRoles));
Out.set<24>(OpenWifi::RESTAPI_utils::to_string(In.boards));
}

View File

@@ -36,6 +36,7 @@ namespace OpenWifi {
std::string,
std::string,
std::string,
std::string,
std::string
> VenueDBRecordType;