mirror of
https://github.com/Telecominfraproject/wlan-cloud-owprov.git
synced 2025-10-29 17:52:28 +00:00
Adding Subscriber Device Table
This commit is contained in:
@@ -536,7 +536,7 @@ components:
|
||||
operatorId:
|
||||
type: string
|
||||
format: uuid
|
||||
subscriberId:
|
||||
subscriberDeviceId:
|
||||
type: string
|
||||
format: uuid
|
||||
geoCode:
|
||||
@@ -658,7 +658,7 @@ components:
|
||||
operatorId:
|
||||
type: string
|
||||
format: uuid
|
||||
subscriberId:
|
||||
subscriberDeviceId:
|
||||
type: string
|
||||
format: uuid
|
||||
|
||||
|
||||
@@ -626,7 +626,31 @@ namespace OpenWifi {
|
||||
H.BadRequest(RESTAPI::Errors::InvalidSerialNumber);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
template <typename DBType, typename DBRecordType> void ReturnUpdatedObject( DBType & DB, const DBRecordType & R, RESTAPIHandler &H) {
|
||||
if(DB.UpdateRecord("id",R.info.id,R)) {
|
||||
DBRecordType Updated;
|
||||
DB.GetRecord("id",R.info.id,Updated);
|
||||
Poco::JSON::Object Answer;
|
||||
Updated.to_json(Answer);
|
||||
return H.ReturnObject(Answer);
|
||||
} else {
|
||||
H.InternalError("Record could not be updated.");
|
||||
}
|
||||
}
|
||||
|
||||
template <typename DBType, typename DBRecordType> void ReturnCreatedObject( DBType & DB, const DBRecordType & R, RESTAPIHandler &H) {
|
||||
if(DB.CreateRecord(R)) {
|
||||
DBRecordType Updated;
|
||||
DB.GetRecord("id",R.info.id,Updated);
|
||||
Poco::JSON::Object Answer;
|
||||
Updated.to_json(Answer);
|
||||
return H.ReturnObject(Answer);
|
||||
} else {
|
||||
H.InternalError("Record could not be created.");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace OpenWifi {
|
||||
}
|
||||
|
||||
// see if anyone is still using this thing
|
||||
if(!Existing.subscriberId.empty()){
|
||||
if(!Existing.subscriberDeviceId.empty()){
|
||||
return BadRequest(RESTAPI::Errors::StillInUse);
|
||||
}
|
||||
|
||||
@@ -51,21 +51,14 @@ namespace OpenWifi {
|
||||
}
|
||||
|
||||
if( !ValidDbId(NewObject.operatorId,StorageService()->OperatorDB(), false, RESTAPI::Errors::InvalidOperatorId, *this ) ||
|
||||
!ValidDbId(NewObject.managementPolicy,StorageService()->PolicyDB(), false, RESTAPI::Errors::UnknownManagementPolicyUUID, *this ) ||
|
||||
!ValidContactType(NewObject.type,*this) ||
|
||||
!ValidSubscriberId(NewObject.subscriberId,true,NewObject.primaryEmail,*this)) {
|
||||
!ValidDbId(NewObject.managementPolicy,StorageService()->PolicyDB(), true, RESTAPI::Errors::UnknownManagementPolicyUUID, *this ) ||
|
||||
!ValidDbId(NewObject.subscriberDeviceId,StorageService()->SubscriberDeviceDB(), true, RESTAPI::Errors::InvalidSubscriberDeviceId, *this ) ||
|
||||
!ValidContactType(NewObject.type,*this) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
ProvObjects::CreateObjectInfo(RawObject, UserInfo_.userinfo, NewObject.info);
|
||||
if(DB_.CreateRecord(NewObject)) {
|
||||
OpContactDB::RecordName New;
|
||||
StorageService()->OpContactDB().GetRecord("id", NewObject.info.id, New);
|
||||
Poco::JSON::Object Answer;
|
||||
New.to_json(Answer);
|
||||
return ReturnObject(Answer);
|
||||
}
|
||||
return InternalError("Contact could not be created.");
|
||||
return ReturnCreatedObject(DB_,NewObject,*this);
|
||||
}
|
||||
|
||||
void RESTAPI_op_contact_handler::DoPut() {
|
||||
@@ -84,7 +77,7 @@ namespace OpenWifi {
|
||||
|
||||
if( !ValidContactType(UpdateObj.type,*this) ||
|
||||
!ValidDbId(UpdateObj.managementPolicy,StorageService()->PolicyDB(), true, RESTAPI::Errors::UnknownManagementPolicyUUID, *this ) ||
|
||||
!ValidSubscriberId(UpdateObj.subscriberId,true,Existing.primaryEmail,*this)
|
||||
!ValidDbId(UpdateObj.subscriberDeviceId,StorageService()->SubscriberDeviceDB(), true, RESTAPI::Errors::InvalidSubscriberDeviceId, *this )
|
||||
) {
|
||||
return;
|
||||
}
|
||||
@@ -101,14 +94,10 @@ namespace OpenWifi {
|
||||
AssignIfPresent(RawObject,"phones",Existing.phones);
|
||||
AssignIfPresent(RawObject,"accessPIN",Existing.accessPIN);
|
||||
AssignIfPresent(RawObject,"secondaryEmail",Existing.secondaryEmail);
|
||||
AssignIfPresent(RawObject,"primaryEmail",Existing.primaryEmail);
|
||||
AssignIfPresent(RawObject,"subscriberDeviceId",Existing.subscriberDeviceId);
|
||||
AssignIfPresent(RawObject,"managementPolicy",Existing.managementPolicy);
|
||||
|
||||
if(DB_.UpdateRecord("id",uuid,Existing)) {
|
||||
OpContactDB::RecordName New;
|
||||
StorageService()->OpContactDB().GetRecord("id", Existing.info.id, New);
|
||||
Poco::JSON::Object Answer;
|
||||
New.to_json(Answer);
|
||||
return ReturnObject(Answer);
|
||||
}
|
||||
return InternalError("Contact could not be updated.");
|
||||
return ReturnUpdatedObject(DB_,Existing,*this);
|
||||
}
|
||||
}
|
||||
@@ -34,7 +34,7 @@ namespace OpenWifi {
|
||||
}
|
||||
|
||||
// see if anyone is still using this thing
|
||||
if(!Existing.subscriberId.empty()){
|
||||
if(!Existing.subscriberDeviceId.empty()){
|
||||
return BadRequest(RESTAPI::Errors::StillInUse);
|
||||
}
|
||||
DB_.DeleteRecord("id", uuid);
|
||||
@@ -51,20 +51,13 @@ namespace OpenWifi {
|
||||
|
||||
if( !ValidDbId(NewObject.operatorId,StorageService()->OperatorDB(), false, RESTAPI::Errors::InvalidOperatorId, *this ) ||
|
||||
!ValidDbId(NewObject.managementPolicy,StorageService()->PolicyDB(), true, RESTAPI::Errors::UnknownManagementPolicyUUID, *this ) ||
|
||||
!ValidSubscriberId(NewObject.subscriberId,true, *this) ||
|
||||
!ValidDbId(NewObject.subscriberDeviceId,StorageService()->SubscriberDeviceDB(), true, RESTAPI::Errors::InvalidSubscriberDeviceId, *this ) ||
|
||||
!ValidLocationType(NewObject.type,*this)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ProvObjects::CreateObjectInfo(RawObject, UserInfo_.userinfo, NewObject.info);
|
||||
if(DB_.CreateRecord(NewObject)) {
|
||||
OpLocationDB::RecordName New;
|
||||
StorageService()->OpLocationDB().GetRecord("id", NewObject.info.id, New);
|
||||
Poco::JSON::Object Answer;
|
||||
New.to_json(Answer);
|
||||
return ReturnObject(Answer);
|
||||
}
|
||||
return InternalError("Location could not be created.");
|
||||
return ReturnCreatedObject(DB_, NewObject, *this);
|
||||
}
|
||||
|
||||
void RESTAPI_op_location_handler::DoPut() {
|
||||
@@ -83,14 +76,14 @@ namespace OpenWifi {
|
||||
|
||||
if( !ValidLocationType(UpdateObj.type,*this) ||
|
||||
!ValidDbId(UpdateObj.managementPolicy,StorageService()->PolicyDB(), true, RESTAPI::Errors::UnknownManagementPolicyUUID, *this ) ||
|
||||
!ValidSubscriberId(UpdateObj.subscriberId,true,*this)
|
||||
!ValidDbId(UpdateObj.subscriberDeviceId,StorageService()->SubscriberDeviceDB(), true, RESTAPI::Errors::InvalidSubscriberDeviceId, *this )
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
ProvObjects::UpdateObjectInfo(RawObject, UserInfo_.userinfo, Existing.info);
|
||||
AssignIfPresent(RawObject,"type",Existing.type);
|
||||
AssignIfPresent(RawObject,"subscriberId", Existing.subscriberId);
|
||||
AssignIfPresent(RawObject,"subscriberDeviceId", Existing.subscriberDeviceId);
|
||||
AssignIfPresent(RawObject,"managementPolicy", Existing.managementPolicy);
|
||||
AssignIfPresent(RawObject,"buildingName",Existing.buildingName);
|
||||
AssignIfPresent(RawObject,"addressLines",Existing.addressLines);
|
||||
@@ -102,13 +95,6 @@ namespace OpenWifi {
|
||||
AssignIfPresent(RawObject,"phones",Existing.phones);
|
||||
AssignIfPresent(RawObject,"geoCode",Existing.geoCode);
|
||||
|
||||
if(DB_.UpdateRecord("id",uuid,Existing)) {
|
||||
OpLocationDB::RecordName New;
|
||||
StorageService()->OpLocationDB().GetRecord("id", Existing.info.id, New);
|
||||
Poco::JSON::Object Answer;
|
||||
New.to_json(Answer);
|
||||
return ReturnObject(Answer);
|
||||
}
|
||||
return InternalError("Location could not be updated.");
|
||||
return ReturnUpdatedObject(DB_,Existing,*this);
|
||||
}
|
||||
}
|
||||
@@ -148,16 +148,7 @@ namespace OpenWifi {
|
||||
AssignIfPresent(RawObject, "firmwareUpgrade", Existing.firmwareUpgrade);
|
||||
AssignIfPresent(RawObject, "firmwareRCOnly", Existing.firmwareRCOnly);
|
||||
|
||||
if(DB_.UpdateRecord("id", Existing.info.id, Existing)) {
|
||||
ProvObjects::Operator New;
|
||||
DB_.GetRecord("id",Existing.info.id,New);
|
||||
Poco::JSON::Object Answer;
|
||||
New.to_json(Answer);
|
||||
return ReturnObject(Answer);
|
||||
}
|
||||
|
||||
return InternalError("Failed updating operatpr.");
|
||||
|
||||
return ReturnUpdatedObject(DB_, Existing, *this);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -74,14 +74,7 @@ namespace OpenWifi {
|
||||
return BadRequest(RESTAPI::Errors::InvalidBillingPeriod);
|
||||
}
|
||||
|
||||
if(DB_.CreateRecord(NewObject)) {
|
||||
ProvObjects::ServiceClass New;
|
||||
StorageService()->ServiceClassDB().GetRecord("id", NewObject.info.id, New);
|
||||
Poco::JSON::Object Answer;
|
||||
New.to_json(Answer);
|
||||
return ReturnObject(Answer);
|
||||
}
|
||||
return InternalError("Service Class could not be created.");
|
||||
return ReturnCreatedObject(DB_, NewObject, *this);
|
||||
}
|
||||
|
||||
void RESTAPI_service_class_handler::DoPut() {
|
||||
@@ -114,13 +107,6 @@ namespace OpenWifi {
|
||||
Existing.variables = UpdateObj.variables;
|
||||
}
|
||||
|
||||
if(DB_.UpdateRecord("id",uuid,Existing)) {
|
||||
ProvObjects::ServiceClass New;
|
||||
StorageService()->ServiceClassDB().GetRecord("id", Existing.info.id, New);
|
||||
Poco::JSON::Object Answer;
|
||||
New.to_json(Answer);
|
||||
return ReturnObject(Answer);
|
||||
}
|
||||
return InternalError("Service Class could not be updated.");
|
||||
return ReturnUpdatedObject(DB_, Existing, *this);
|
||||
}
|
||||
}
|
||||
@@ -59,15 +59,7 @@ namespace OpenWifi {
|
||||
}
|
||||
|
||||
ProvObjects::CreateObjectInfo(RawObject,UserInfo_.userinfo,NewObject.info);
|
||||
if(DB_.CreateRecord(NewObject)) {
|
||||
SubscriberDeviceDB::RecordName New;
|
||||
DB_.GetRecord("id",NewObject.info.id,New);
|
||||
Poco::JSON::Object Answer;
|
||||
New.to_json(Answer);
|
||||
return ReturnObject(Answer);
|
||||
}
|
||||
return InternalError("Count not create record.");
|
||||
|
||||
return ReturnCreatedObject(DB_,NewObject,*this);
|
||||
}
|
||||
|
||||
void RESTAPI_sub_devices_handler::DoPut() {
|
||||
@@ -84,7 +76,37 @@ namespace OpenWifi {
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
if( !ValidDbId(UpdateObj.managementPolicy, StorageService()->PolicyDB(), true , RESTAPI::Errors::UnknownManagementPolicyUUID, *this) ||
|
||||
!ValidDbId(UpdateObj.contact, StorageService()->OpContactDB(), true, RESTAPI::Errors::InvalidContactId, *this) ||
|
||||
!ValidDbId(UpdateObj.location, StorageService()->OpLocationDB(), true, RESTAPI::Errors::InvalidLocationId, *this) ||
|
||||
!ValidDbId(UpdateObj.operatorId, StorageService()->OperatorDB(), true, RESTAPI::Errors::InvalidOperatorId, *this) ||
|
||||
!ValidDbId(UpdateObj.serviceClass, StorageService()->ServiceClassDB(), true, RESTAPI::Errors::InvalidServiceClassId, *this) ||
|
||||
!ValidSubscriberId(UpdateObj.subscriberId, true, *this) ||
|
||||
!ValidRRM(UpdateObj.rrm,*this) ||
|
||||
!ValidSerialNumber(UpdateObj.serialNumber,false,*this)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
ProvObjects::UpdateObjectInfo(RawObject,UserInfo_.userinfo,Existing.info);
|
||||
AssignIfPresent(RawObject, "deviceType", Existing.deviceType);
|
||||
AssignIfPresent(RawObject, "subscriberId", Existing.subscriberId);
|
||||
AssignIfPresent(RawObject, "location", Existing.location);
|
||||
AssignIfPresent(RawObject, "contact", Existing.contact);
|
||||
AssignIfPresent(RawObject, "managementPolicy", Existing.managementPolicy);
|
||||
AssignIfPresent(RawObject, "serviceClass", Existing.serviceClass);
|
||||
AssignIfPresent(RawObject, "qrCode", Existing.qrCode);
|
||||
AssignIfPresent(RawObject, "geoCode", Existing.geoCode);
|
||||
AssignIfPresent(RawObject, "rrm", Existing.rrm);
|
||||
AssignIfPresent(RawObject, "state", Existing.state);
|
||||
AssignIfPresent(RawObject, "locale", Existing.locale);
|
||||
AssignIfPresent(RawObject, "billingCode", Existing.billingCode);
|
||||
AssignIfPresent(RawObject, "realMacAddress", Existing.realMacAddress);
|
||||
|
||||
if(RawObject->has("configuration")) {
|
||||
Existing.configuration = UpdateObj.configuration;
|
||||
}
|
||||
return ReturnUpdatedObject(DB_,Existing,*this);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -371,7 +371,7 @@ namespace OpenWifi::ProvObjects {
|
||||
field_to_json( Obj,"mobiles",mobiles);
|
||||
field_to_json( Obj,"geoCode",geoCode);
|
||||
field_to_json( Obj,"operatorId",operatorId);
|
||||
field_to_json( Obj,"subscriberId",subscriberId);
|
||||
field_to_json( Obj,"subscriberDeviceId",subscriberDeviceId);
|
||||
field_to_json( Obj,"managementPolicy",managementPolicy);
|
||||
}
|
||||
|
||||
@@ -389,7 +389,7 @@ namespace OpenWifi::ProvObjects {
|
||||
field_from_json( Obj,"mobiles",mobiles);
|
||||
field_from_json( Obj,"geoCode",geoCode);
|
||||
field_from_json( Obj,"operatorId",operatorId);
|
||||
field_from_json( Obj,"subscriberId",subscriberId);
|
||||
field_from_json( Obj,"subscriberDeviceId",subscriberDeviceId);
|
||||
field_from_json( Obj,"managementPolicy",managementPolicy);
|
||||
return true;
|
||||
} catch (...) {
|
||||
@@ -473,7 +473,7 @@ namespace OpenWifi::ProvObjects {
|
||||
field_to_json( Obj,"secondaryEmail",secondaryEmail);
|
||||
field_to_json( Obj,"accessPIN",accessPIN);
|
||||
field_to_json( Obj,"operatorId",operatorId);
|
||||
field_to_json( Obj,"subscriberId",subscriberId);
|
||||
field_to_json( Obj,"subscriberDeviceId",subscriberDeviceId);
|
||||
field_to_json( Obj,"managementPolicy",managementPolicy);
|
||||
}
|
||||
|
||||
@@ -493,7 +493,7 @@ namespace OpenWifi::ProvObjects {
|
||||
field_from_json( Obj,"secondaryEmail",secondaryEmail);
|
||||
field_from_json( Obj,"accessPIN",accessPIN);
|
||||
field_from_json( Obj,"operatorId",operatorId);
|
||||
field_from_json( Obj,"subscriberId",subscriberId);
|
||||
field_from_json( Obj,"subscriberDeviceId",subscriberDeviceId);
|
||||
field_from_json( Obj,"managementPolicy",managementPolicy);
|
||||
return true;
|
||||
} catch (...) {
|
||||
|
||||
@@ -213,7 +213,7 @@ namespace OpenWifi::ProvObjects {
|
||||
Types::StringVec mobiles;
|
||||
std::string geoCode;
|
||||
Types::UUID_t operatorId;
|
||||
Types::UUID_t subscriberId;
|
||||
Types::UUID_t subscriberDeviceId;
|
||||
Types::UUID_t managementPolicy;
|
||||
|
||||
void to_json(Poco::JSON::Object &Obj) const;
|
||||
@@ -307,7 +307,7 @@ namespace OpenWifi::ProvObjects {
|
||||
std::string secondaryEmail;
|
||||
std::string accessPIN;
|
||||
Types::UUID_t operatorId;
|
||||
Types::UUID_t subscriberId;
|
||||
Types::UUID_t subscriberDeviceId;
|
||||
Types::UUID_t managementPolicy;
|
||||
|
||||
void to_json(Poco::JSON::Object &Obj) const;
|
||||
|
||||
@@ -98,6 +98,7 @@ namespace OpenWifi::RESTAPI::Errors {
|
||||
static const std::string InvalidLocationType{"Invalid location type"};
|
||||
static const std::string InvalidOperatorId{"Invalid operator ID"};
|
||||
static const std::string InvalidServiceClassId{"Invalid service class ID"};
|
||||
static const std::string InvalidSubscriberDeviceId{"Invalid subscriber device ID"};
|
||||
}
|
||||
|
||||
namespace OpenWifi::RESTAPI::Protocol {
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace OpenWifi {
|
||||
ORM::Field{"operatorId",ORM::FieldType::FT_TEXT},
|
||||
ORM::Field{"tags",ORM::FieldType::FT_TEXT},
|
||||
ORM::Field{"managementPolicy",ORM::FieldType::FT_TEXT},
|
||||
ORM::Field{"subscriberId",ORM::FieldType::FT_TEXT}
|
||||
ORM::Field{"subscriberDeviceId",ORM::FieldType::FT_TEXT}
|
||||
};
|
||||
|
||||
static ORM::IndexVec OpContactDB_Indexes{
|
||||
@@ -70,7 +70,7 @@ template<> void ORM::DB<OpenWifi::OpContactDBRecordType, OpenWifi::ProvObjects::
|
||||
Out.operatorId = In.get<18>();
|
||||
Out.info.tags = OpenWifi::RESTAPI_utils::to_taglist(In.get<19>());
|
||||
Out.managementPolicy = In.get<20>();
|
||||
Out.subscriberId = In.get<21>();
|
||||
Out.subscriberDeviceId = In.get<21>();
|
||||
}
|
||||
|
||||
template<> void ORM::DB<OpenWifi::OpContactDBRecordType, OpenWifi::ProvObjects::OperatorContact>::Convert(const OpenWifi::ProvObjects::OperatorContact &In, OpenWifi::OpContactDBRecordType &Out) {
|
||||
@@ -95,5 +95,5 @@ template<> void ORM::DB<OpenWifi::OpContactDBRecordType, OpenWifi::ProvObjects::
|
||||
Out.set<18>(In.operatorId);
|
||||
Out.set<19>(OpenWifi::RESTAPI_utils::to_string(In.info.tags));
|
||||
Out.set<20>(In.managementPolicy);
|
||||
Out.set<21>(In.subscriberId);
|
||||
Out.set<21>(In.subscriberDeviceId);
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace OpenWifi {
|
||||
ORM::Field{"operatorId",ORM::FieldType::FT_TEXT},
|
||||
ORM::Field{"tags",ORM::FieldType::FT_TEXT},
|
||||
ORM::Field{"managementPolicy",ORM::FieldType::FT_TEXT},
|
||||
ORM::Field{"subscriberId",ORM::FieldType::FT_TEXT}
|
||||
ORM::Field{"subscriberDeviceId",ORM::FieldType::FT_TEXT}
|
||||
};
|
||||
|
||||
static ORM::IndexVec OpLocationDB_Indexes{
|
||||
@@ -65,7 +65,7 @@ template<> void ORM::DB<OpenWifi::OpLocationDBRecordType , OpenWifi::ProvObjects
|
||||
Out.operatorId = In.get<16>();
|
||||
Out.info.tags = OpenWifi::RESTAPI_utils::to_taglist(In.get<17>());
|
||||
Out.managementPolicy = In.get<18>();
|
||||
Out.subscriberId = In.get<19>();
|
||||
Out.subscriberDeviceId = In.get<19>();
|
||||
}
|
||||
|
||||
template<> void ORM::DB<OpenWifi::OpLocationDBRecordType, OpenWifi::ProvObjects::OperatorLocation>::Convert(const OpenWifi::ProvObjects::OperatorLocation &In, OpenWifi::OpLocationDBRecordType &Out) {
|
||||
@@ -88,5 +88,5 @@ template<> void ORM::DB<OpenWifi::OpLocationDBRecordType, OpenWifi::ProvObjects:
|
||||
Out.set<16>(In.operatorId);
|
||||
Out.set<17>(OpenWifi::RESTAPI_utils::to_string(In.info.tags));
|
||||
Out.set<18>(In.managementPolicy);
|
||||
Out.set<19>(In.subscriberId);
|
||||
Out.set<19>(In.subscriberDeviceId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user