mirror of
				https://github.com/Telecominfraproject/wlan-cloud-ucentralsec.git
				synced 2025-10-31 10:47:48 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			1437 lines
		
	
	
		
			48 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			1437 lines
		
	
	
		
			48 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| //
 | |
| //	License type: BSD 3-Clause License
 | |
| //	License copy: https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/blob/master/LICENSE
 | |
| //
 | |
| //	Created by Stephane Bourque on 2021-03-04.
 | |
| //	Arilia Wireless Inc.
 | |
| //
 | |
| 
 | |
| #include "RESTAPI_ProvObjects.h"
 | |
| #include "framework/MicroServiceFuncs.h"
 | |
| #include "framework/RESTAPI_utils.h"
 | |
| #include "framework/utils.h"
 | |
| 
 | |
| using OpenWifi::RESTAPI_utils::field_from_json;
 | |
| using OpenWifi::RESTAPI_utils::field_to_json;
 | |
| 
 | |
| namespace OpenWifi::ProvObjects {
 | |
| 
 | |
| 	void ObjectInfo::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "id", id);
 | |
| 		field_to_json(Obj, "name", name);
 | |
| 		field_to_json(Obj, "description", description);
 | |
| 		field_to_json(Obj, "created", created);
 | |
| 		field_to_json(Obj, "modified", modified);
 | |
| 		field_to_json(Obj, "notes", notes);
 | |
| 		field_to_json(Obj, "tags", tags);
 | |
| 	}
 | |
| 
 | |
| 	bool ObjectInfo::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "id", id);
 | |
| 			field_from_json(Obj, "name", name);
 | |
| 			field_from_json(Obj, "description", description);
 | |
| 			field_from_json(Obj, "created", created);
 | |
| 			field_from_json(Obj, "modified", modified);
 | |
| 			field_from_json(Obj, "notes", notes);
 | |
| 			field_from_json(Obj, "tags", tags);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void ManagementPolicyEntry::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "users", users);
 | |
| 		field_to_json(Obj, "resources", resources);
 | |
| 		field_to_json(Obj, "access", access);
 | |
| 		field_to_json(Obj, "policy", policy);
 | |
| 	}
 | |
| 
 | |
| 	bool ManagementPolicyEntry::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "users", users);
 | |
| 			field_from_json(Obj, "resources", resources);
 | |
| 			field_from_json(Obj, "access", access);
 | |
| 			field_from_json(Obj, "policy", policy);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void ManagementPolicy::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "entries", entries);
 | |
| 		field_to_json(Obj, "inUse", inUse);
 | |
| 		field_to_json(Obj, "entity", entity);
 | |
| 	}
 | |
| 
 | |
| 	bool ManagementPolicy::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "entries", entries);
 | |
| 			field_from_json(Obj, "inUse", inUse);
 | |
| 			field_from_json(Obj, "entity", entity);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void Entity::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "parent", parent);
 | |
| 		field_to_json(Obj, "venues", venues);
 | |
| 		field_to_json(Obj, "children", children);
 | |
| 		field_to_json(Obj, "contacts", contacts);
 | |
| 		field_to_json(Obj, "locations", locations);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 		field_to_json(Obj, "deviceConfiguration", deviceConfiguration);
 | |
| 		field_to_json(Obj, "devices", devices);
 | |
| 		field_to_json(Obj, "deviceRules", deviceRules);
 | |
| 		field_to_json(Obj, "sourceIP", sourceIP);
 | |
| 		field_to_json(Obj, "variables", variables);
 | |
| 		field_to_json(Obj, "managementPolicies", managementPolicies);
 | |
| 		field_to_json(Obj, "managementRoles", managementRoles);
 | |
| 		field_to_json(Obj, "maps", maps);
 | |
| 		field_to_json(Obj, "configurations", configurations);
 | |
| 	}
 | |
| 
 | |
| 	bool Entity::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "parent", parent);
 | |
| 			field_from_json(Obj, "venues", venues);
 | |
| 			field_from_json(Obj, "children", children);
 | |
| 			field_from_json(Obj, "contacts", contacts);
 | |
| 			field_from_json(Obj, "locations", locations);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			field_from_json(Obj, "deviceConfiguration", deviceConfiguration);
 | |
| 			field_from_json(Obj, "devices", devices);
 | |
| 			field_from_json(Obj, "deviceRules", deviceRules);
 | |
| 			field_from_json(Obj, "sourceIP", sourceIP);
 | |
| 			field_from_json(Obj, "variables", variables);
 | |
| 			field_from_json(Obj, "managementPolicies", managementPolicies);
 | |
| 			field_from_json(Obj, "managementRoles", managementRoles);
 | |
| 			field_from_json(Obj, "maps", maps);
 | |
| 			field_from_json(Obj, "configurations", configurations);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void DiGraphEntry::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "parent", parent);
 | |
| 		field_to_json(Obj, "child", child);
 | |
| 	}
 | |
| 
 | |
| 	bool DiGraphEntry::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "parent", parent);
 | |
| 			field_from_json(Obj, "child", child);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void Venue::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "parent", parent);
 | |
| 		field_to_json(Obj, "entity", entity);
 | |
| 		field_to_json(Obj, "children", children);
 | |
| 		field_to_json(Obj, "devices", devices);
 | |
| 		field_to_json(Obj, "topology", topology);
 | |
| 		field_to_json(Obj, "parent", parent);
 | |
| 		field_to_json(Obj, "design", design);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 		field_to_json(Obj, "deviceConfiguration", deviceConfiguration);
 | |
| 		field_to_json(Obj, "contacts", contacts);
 | |
| 		field_to_json(Obj, "location", location);
 | |
| 		field_to_json(Obj, "deviceRules", deviceRules);
 | |
| 		field_to_json(Obj, "sourceIP", sourceIP);
 | |
| 		field_to_json(Obj, "variables", variables);
 | |
| 		field_to_json(Obj, "managementPolicies", managementPolicies);
 | |
| 		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) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "parent", parent);
 | |
| 			field_from_json(Obj, "entity", entity);
 | |
| 			field_from_json(Obj, "children", children);
 | |
| 			field_from_json(Obj, "devices", devices);
 | |
| 			field_from_json(Obj, "topology", topology);
 | |
| 			field_from_json(Obj, "parent", parent);
 | |
| 			field_from_json(Obj, "design", design);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			field_from_json(Obj, "deviceConfiguration", deviceConfiguration);
 | |
| 			field_from_json(Obj, "contacts", contacts);
 | |
| 			field_from_json(Obj, "location", location);
 | |
| 			field_from_json(Obj, "deviceRules", deviceRules);
 | |
| 			field_from_json(Obj, "sourceIP", sourceIP);
 | |
| 			field_from_json(Obj, "variables", variables);
 | |
| 			field_from_json(Obj, "managementPolicies", managementPolicies);
 | |
| 			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 (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void Operator::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 		field_to_json(Obj, "managementRoles", managementRoles);
 | |
| 		field_to_json(Obj, "deviceRules", deviceRules);
 | |
| 		field_to_json(Obj, "variables", variables);
 | |
| 		field_to_json(Obj, "defaultOperator", defaultOperator);
 | |
| 		field_to_json(Obj, "sourceIP", sourceIP);
 | |
| 		field_to_json(Obj, "registrationId", registrationId);
 | |
| 	}
 | |
| 
 | |
| 	bool Operator::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			field_from_json(Obj, "managementRoles", managementRoles);
 | |
| 			field_from_json(Obj, "deviceRules", deviceRules);
 | |
| 			field_from_json(Obj, "variables", variables);
 | |
| 			field_from_json(Obj, "defaultOperator", defaultOperator);
 | |
| 			field_from_json(Obj, "sourceIP", sourceIP);
 | |
| 			field_from_json(Obj, "registrationId", registrationId);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void OperatorList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "operators", operators);
 | |
| 	}
 | |
| 
 | |
| 	bool OperatorList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "operators", operators);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void ServiceClass::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "operatorId", operatorId);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 		field_to_json(Obj, "cost", cost);
 | |
| 		field_to_json(Obj, "currency", currency);
 | |
| 		field_to_json(Obj, "period", period);
 | |
| 		field_to_json(Obj, "billingCode", billingCode);
 | |
| 		field_to_json(Obj, "variables", variables);
 | |
| 		field_to_json(Obj, "defaultService", defaultService);
 | |
| 	}
 | |
| 
 | |
| 	bool ServiceClass::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "operatorId", operatorId);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			field_from_json(Obj, "cost", cost);
 | |
| 			field_from_json(Obj, "currency", currency);
 | |
| 			field_from_json(Obj, "period", period);
 | |
| 			field_from_json(Obj, "billingCode", billingCode);
 | |
| 			field_from_json(Obj, "variables", variables);
 | |
| 			field_from_json(Obj, "defaultService", defaultService);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void ServiceClassList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "serviceClasses", serviceClasses);
 | |
| 	}
 | |
| 
 | |
| 	bool ServiceClassList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "serviceClasses", serviceClasses);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void UserInfoDigest::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "id", id);
 | |
| 		field_to_json(Obj, "entity", loginId);
 | |
| 		field_to_json(Obj, "children", userType);
 | |
| 	}
 | |
| 
 | |
| 	bool UserInfoDigest::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "id", id);
 | |
| 			field_from_json(Obj, "entity", loginId);
 | |
| 			field_from_json(Obj, "children", userType);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void ManagementRole::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 		field_to_json(Obj, "users", users);
 | |
| 		field_to_json(Obj, "entity", entity);
 | |
| 		field_to_json(Obj, "venue", venue);
 | |
| 	}
 | |
| 
 | |
| 	bool ManagementRole::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			field_from_json(Obj, "users", users);
 | |
| 			field_from_json(Obj, "entity", entity);
 | |
| 			field_from_json(Obj, "venue", venue);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void Location::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "type", OpenWifi::ProvObjects::to_string(type));
 | |
| 		field_to_json(Obj, "buildingName", buildingName);
 | |
| 		field_to_json(Obj, "addressLines", addressLines);
 | |
| 		field_to_json(Obj, "city", city);
 | |
| 		field_to_json(Obj, "state", state);
 | |
| 		field_to_json(Obj, "postal", postal);
 | |
| 		field_to_json(Obj, "country", country);
 | |
| 		field_to_json(Obj, "phones", phones);
 | |
| 		field_to_json(Obj, "mobiles", mobiles);
 | |
| 		field_to_json(Obj, "geoCode", geoCode);
 | |
| 		field_to_json(Obj, "inUse", inUse);
 | |
| 		field_to_json(Obj, "entity", entity);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 	}
 | |
| 
 | |
| 	bool Location::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			std::string tmp_type;
 | |
| 			field_from_json(Obj, "type", tmp_type);
 | |
| 			type = location_from_string(tmp_type);
 | |
| 			field_from_json(Obj, "buildingName", buildingName);
 | |
| 			field_from_json(Obj, "addressLines", addressLines);
 | |
| 			field_from_json(Obj, "city", city);
 | |
| 			field_from_json(Obj, "state", state);
 | |
| 			field_from_json(Obj, "postal", postal);
 | |
| 			field_from_json(Obj, "country", country);
 | |
| 			field_from_json(Obj, "phones", phones);
 | |
| 			field_from_json(Obj, "mobiles", mobiles);
 | |
| 			field_from_json(Obj, "geoCode", geoCode);
 | |
| 			field_from_json(Obj, "inUse", inUse);
 | |
| 			field_from_json(Obj, "entity", entity);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void OperatorLocation::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "type", type);
 | |
| 		field_to_json(Obj, "buildingName", buildingName);
 | |
| 		field_to_json(Obj, "addressLines", addressLines);
 | |
| 		field_to_json(Obj, "city", city);
 | |
| 		field_to_json(Obj, "state", state);
 | |
| 		field_to_json(Obj, "postal", postal);
 | |
| 		field_to_json(Obj, "country", country);
 | |
| 		field_to_json(Obj, "phones", phones);
 | |
| 		field_to_json(Obj, "mobiles", mobiles);
 | |
| 		field_to_json(Obj, "geoCode", geoCode);
 | |
| 		field_to_json(Obj, "operatorId", operatorId);
 | |
| 		field_to_json(Obj, "subscriberDeviceId", subscriberDeviceId);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 	}
 | |
| 
 | |
| 	bool OperatorLocation::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "type", type);
 | |
| 			field_from_json(Obj, "buildingName", buildingName);
 | |
| 			field_from_json(Obj, "addressLines", addressLines);
 | |
| 			field_from_json(Obj, "city", city);
 | |
| 			field_from_json(Obj, "state", state);
 | |
| 			field_from_json(Obj, "postal", postal);
 | |
| 			field_from_json(Obj, "country", country);
 | |
| 			field_from_json(Obj, "phones", phones);
 | |
| 			field_from_json(Obj, "mobiles", mobiles);
 | |
| 			field_from_json(Obj, "geoCode", geoCode);
 | |
| 			field_from_json(Obj, "operatorId", operatorId);
 | |
| 			field_from_json(Obj, "subscriberDeviceId", subscriberDeviceId);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void SubLocation::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "type", type);
 | |
| 		field_to_json(Obj, "buildingName", buildingName);
 | |
| 		field_to_json(Obj, "addressLines", addressLines);
 | |
| 		field_to_json(Obj, "city", city);
 | |
| 		field_to_json(Obj, "state", state);
 | |
| 		field_to_json(Obj, "postal", postal);
 | |
| 		field_to_json(Obj, "country", country);
 | |
| 		field_to_json(Obj, "phones", phones);
 | |
| 		field_to_json(Obj, "mobiles", mobiles);
 | |
| 		field_to_json(Obj, "geoCode", geoCode);
 | |
| 	}
 | |
| 
 | |
| 	bool SubLocation::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "type", type);
 | |
| 			field_from_json(Obj, "buildingName", buildingName);
 | |
| 			field_from_json(Obj, "addressLines", addressLines);
 | |
| 			field_from_json(Obj, "city", city);
 | |
| 			field_from_json(Obj, "state", state);
 | |
| 			field_from_json(Obj, "postal", postal);
 | |
| 			field_from_json(Obj, "country", country);
 | |
| 			field_from_json(Obj, "phones", phones);
 | |
| 			field_from_json(Obj, "mobiles", mobiles);
 | |
| 			field_from_json(Obj, "geoCode", geoCode);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void OperatorLocationList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "locations", locations);
 | |
| 	}
 | |
| 
 | |
| 	bool OperatorLocationList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "locations", locations);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void Contact::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "type", to_string(type));
 | |
| 		field_to_json(Obj, "title", title);
 | |
| 		field_to_json(Obj, "salutation", salutation);
 | |
| 		field_to_json(Obj, "firstname", firstname);
 | |
| 		field_to_json(Obj, "lastname", lastname);
 | |
| 		field_to_json(Obj, "initials", initials);
 | |
| 		field_to_json(Obj, "visual", visual);
 | |
| 		field_to_json(Obj, "mobiles", mobiles);
 | |
| 		field_to_json(Obj, "phones", phones);
 | |
| 		field_to_json(Obj, "primaryEmail", primaryEmail);
 | |
| 		field_to_json(Obj, "secondaryEmail", secondaryEmail);
 | |
| 		field_to_json(Obj, "accessPIN", accessPIN);
 | |
| 		field_to_json(Obj, "inUse", inUse);
 | |
| 		field_to_json(Obj, "entity", entity);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 	}
 | |
| 
 | |
| 	bool Contact::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			std::string tmp_type;
 | |
| 			field_from_json(Obj, "type", tmp_type);
 | |
| 			type = contact_from_string(tmp_type);
 | |
| 			field_from_json(Obj, "title", title);
 | |
| 			field_from_json(Obj, "salutation", salutation);
 | |
| 			field_from_json(Obj, "firstname", firstname);
 | |
| 			field_from_json(Obj, "lastname", lastname);
 | |
| 			field_from_json(Obj, "initials", initials);
 | |
| 			field_from_json(Obj, "visual", visual);
 | |
| 			field_from_json(Obj, "mobiles", mobiles);
 | |
| 			field_from_json(Obj, "phones", phones);
 | |
| 			field_from_json(Obj, "primaryEmail", primaryEmail);
 | |
| 			field_from_json(Obj, "secondaryEmail", secondaryEmail);
 | |
| 			field_from_json(Obj, "accessPIN", accessPIN);
 | |
| 			field_from_json(Obj, "inUse", inUse);
 | |
| 			field_from_json(Obj, "entity", entity);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void OperatorContact::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "type", type);
 | |
| 		field_to_json(Obj, "title", title);
 | |
| 		field_to_json(Obj, "salutation", salutation);
 | |
| 		field_to_json(Obj, "firstname", firstname);
 | |
| 		field_to_json(Obj, "lastname", lastname);
 | |
| 		field_to_json(Obj, "initials", initials);
 | |
| 		field_to_json(Obj, "visual", visual);
 | |
| 		field_to_json(Obj, "mobiles", mobiles);
 | |
| 		field_to_json(Obj, "phones", phones);
 | |
| 		field_to_json(Obj, "primaryEmail", primaryEmail);
 | |
| 		field_to_json(Obj, "secondaryEmail", secondaryEmail);
 | |
| 		field_to_json(Obj, "accessPIN", accessPIN);
 | |
| 		field_to_json(Obj, "operatorId", operatorId);
 | |
| 		field_to_json(Obj, "subscriberDeviceId", subscriberDeviceId);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 	}
 | |
| 
 | |
| 	bool OperatorContact::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "type", type);
 | |
| 			field_from_json(Obj, "title", title);
 | |
| 			field_from_json(Obj, "salutation", salutation);
 | |
| 			field_from_json(Obj, "firstname", firstname);
 | |
| 			field_from_json(Obj, "lastname", lastname);
 | |
| 			field_from_json(Obj, "initials", initials);
 | |
| 			field_from_json(Obj, "visual", visual);
 | |
| 			field_from_json(Obj, "mobiles", mobiles);
 | |
| 			field_from_json(Obj, "phones", phones);
 | |
| 			field_from_json(Obj, "primaryEmail", primaryEmail);
 | |
| 			field_from_json(Obj, "secondaryEmail", secondaryEmail);
 | |
| 			field_from_json(Obj, "accessPIN", accessPIN);
 | |
| 			field_from_json(Obj, "operatorId", operatorId);
 | |
| 			field_from_json(Obj, "subscriberDeviceId", subscriberDeviceId);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void SubContact::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "type", type);
 | |
| 		field_to_json(Obj, "title", title);
 | |
| 		field_to_json(Obj, "salutation", salutation);
 | |
| 		field_to_json(Obj, "firstname", firstname);
 | |
| 		field_to_json(Obj, "lastname", lastname);
 | |
| 		field_to_json(Obj, "initials", initials);
 | |
| 		field_to_json(Obj, "visual", visual);
 | |
| 		field_to_json(Obj, "mobiles", mobiles);
 | |
| 		field_to_json(Obj, "phones", phones);
 | |
| 		field_to_json(Obj, "primaryEmail", primaryEmail);
 | |
| 		field_to_json(Obj, "secondaryEmail", secondaryEmail);
 | |
| 		field_to_json(Obj, "accessPIN", accessPIN);
 | |
| 	}
 | |
| 
 | |
| 	bool SubContact::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "type", type);
 | |
| 			field_from_json(Obj, "title", title);
 | |
| 			field_from_json(Obj, "salutation", salutation);
 | |
| 			field_from_json(Obj, "firstname", firstname);
 | |
| 			field_from_json(Obj, "lastname", lastname);
 | |
| 			field_from_json(Obj, "initials", initials);
 | |
| 			field_from_json(Obj, "visual", visual);
 | |
| 			field_from_json(Obj, "mobiles", mobiles);
 | |
| 			field_from_json(Obj, "phones", phones);
 | |
| 			field_from_json(Obj, "primaryEmail", primaryEmail);
 | |
| 			field_from_json(Obj, "secondaryEmail", secondaryEmail);
 | |
| 			field_from_json(Obj, "accessPIN", accessPIN);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void OperatorContactList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "contacts", contacts);
 | |
| 	}
 | |
| 
 | |
| 	bool OperatorContactList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "contacts", contacts);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void InventoryTag::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "serialNumber", serialNumber);
 | |
| 		field_to_json(Obj, "venue", venue);
 | |
| 		field_to_json(Obj, "entity", entity);
 | |
| 		field_to_json(Obj, "subscriber", subscriber);
 | |
| 		field_to_json(Obj, "deviceType", deviceType);
 | |
| 		field_to_json(Obj, "qrCode", qrCode);
 | |
| 		field_to_json(Obj, "geoCode", geoCode);
 | |
| 		field_to_json(Obj, "location", location);
 | |
| 		field_to_json(Obj, "contact", contact);
 | |
| 		field_to_json(Obj, "deviceConfiguration", deviceConfiguration);
 | |
| 		field_to_json(Obj, "deviceRules", deviceRules);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 		field_to_json(Obj, "state", state);
 | |
| 		field_to_json(Obj, "devClass", devClass);
 | |
| 		field_to_json(Obj, "locale", locale);
 | |
| 		field_to_json(Obj, "realMacAddress", realMacAddress);
 | |
| 		field_to_json(Obj, "doNotAllowOverrides", doNotAllowOverrides);
 | |
| 	}
 | |
| 
 | |
| 	bool InventoryTag::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "serialNumber", serialNumber);
 | |
| 			field_from_json(Obj, "venue", venue);
 | |
| 			field_from_json(Obj, "entity", entity);
 | |
| 			field_from_json(Obj, "subscriber", subscriber);
 | |
| 			field_from_json(Obj, "deviceType", deviceType);
 | |
| 			field_from_json(Obj, "qrCode", qrCode);
 | |
| 			field_from_json(Obj, "geoCode", geoCode);
 | |
| 			field_from_json(Obj, "location", location);
 | |
| 			field_from_json(Obj, "contact", contact);
 | |
| 			field_from_json(Obj, "deviceConfiguration", deviceConfiguration);
 | |
| 			field_from_json(Obj, "deviceRules", deviceRules);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			field_from_json(Obj, "state", state);
 | |
| 			field_from_json(Obj, "devClass", devClass);
 | |
| 			field_from_json(Obj, "locale", locale);
 | |
| 			field_from_json(Obj, "realMacAddress", realMacAddress);
 | |
| 			field_from_json(Obj, "doNotAllowOverrides", doNotAllowOverrides);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void InventoryConfigApplyResult::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "appliedConfiguration", appliedConfiguration);
 | |
| 		field_to_json(Obj, "warnings", warnings);
 | |
| 		field_to_json(Obj, "errors", errors);
 | |
| 		field_to_json(Obj, "errorCode", errorCode);
 | |
| 	}
 | |
| 
 | |
| 	bool InventoryConfigApplyResult::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "appliedConfiguration", appliedConfiguration);
 | |
| 			field_from_json(Obj, "warnings", warnings);
 | |
| 			field_from_json(Obj, "errors", errors);
 | |
| 			field_from_json(Obj, "errorCode", errorCode);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void InventoryTagList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "taglist", taglist);
 | |
| 	}
 | |
| 
 | |
| 	bool InventoryTagList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "taglist", taglist);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	};
 | |
| 
 | |
| 	void DeviceConfigurationElement::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "name", name);
 | |
| 		field_to_json(Obj, "description", description);
 | |
| 		field_to_json(Obj, "weight", weight);
 | |
| 		field_to_json(Obj, "configuration", configuration);
 | |
| 	}
 | |
| 
 | |
| 	bool DeviceConfigurationElement::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "name", name);
 | |
| 			field_from_json(Obj, "description", description);
 | |
| 			field_from_json(Obj, "weight", weight);
 | |
| 			field_from_json(Obj, "configuration", configuration);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void DeviceConfiguration::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 		field_to_json(Obj, "deviceTypes", deviceTypes);
 | |
| 		field_to_json(Obj, "subscriberOnly", subscriberOnly);
 | |
| 		field_to_json(Obj, "entity", entity);
 | |
| 		field_to_json(Obj, "venue", venue);
 | |
| 		field_to_json(Obj, "subscriber", subscriber);
 | |
| 		field_to_json(Obj, "configuration", configuration);
 | |
| 		field_to_json(Obj, "inUse", inUse);
 | |
| 		field_to_json(Obj, "variables", variables);
 | |
| 		field_to_json(Obj, "deviceRules", deviceRules);
 | |
| 	}
 | |
| 
 | |
| 	bool DeviceConfiguration::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			field_from_json(Obj, "deviceTypes", deviceTypes);
 | |
| 			field_from_json(Obj, "inUse", inUse);
 | |
| 			field_from_json(Obj, "variables", variables);
 | |
| 			field_from_json(Obj, "subscriberOnly", subscriberOnly);
 | |
| 			field_from_json(Obj, "entity", entity);
 | |
| 			field_from_json(Obj, "venue", venue);
 | |
| 			field_from_json(Obj, "subscriber", subscriber);
 | |
| 			field_from_json(Obj, "configuration", configuration);
 | |
| 			field_from_json(Obj, "deviceRules", deviceRules);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void Report::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "snapshot", snapShot);
 | |
| 		field_to_json(Obj, "devices", tenants);
 | |
| 	};
 | |
| 
 | |
| 	void Report::reset() { tenants.clear(); }
 | |
| 
 | |
| 	void ExpandedUseEntry::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "uuid", uuid);
 | |
| 		field_to_json(Obj, "name", name);
 | |
| 		field_to_json(Obj, "description", description);
 | |
| 	}
 | |
| 
 | |
| 	bool ExpandedUseEntry::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "uuid", uuid);
 | |
| 			field_from_json(Obj, "name", name);
 | |
| 			field_from_json(Obj, "description", description);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void ExpandedUseEntryList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "type", type);
 | |
| 		field_to_json(Obj, "entries", entries);
 | |
| 	}
 | |
| 
 | |
| 	bool ExpandedUseEntryList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "type", type);
 | |
| 			field_from_json(Obj, "entries", entries);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void ExpandedUseEntryMapList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "entries", entries);
 | |
| 	}
 | |
| 
 | |
| 	bool ExpandedUseEntryMapList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "entries", entries);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void UuidList::to_json(Poco::JSON::Object &Obj) const { field_to_json(Obj, "list", list); }
 | |
| 
 | |
| 	bool UuidList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "list", list);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void ObjectACL::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "users", users);
 | |
| 		field_to_json(Obj, "roles", roles);
 | |
| 		field_to_json(Obj, "access", access);
 | |
| 	}
 | |
| 
 | |
| 	bool ObjectACL::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "users", users);
 | |
| 			field_from_json(Obj, "roles", roles);
 | |
| 			field_from_json(Obj, "access", access);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void ObjectACLList::to_json(Poco::JSON::Object &Obj) const { field_to_json(Obj, "list", list); }
 | |
| 
 | |
| 	bool ObjectACLList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "list", list);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void Map::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "data", data);
 | |
| 		field_to_json(Obj, "entity", entity);
 | |
| 		field_to_json(Obj, "creator", creator);
 | |
| 		field_to_json(Obj, "visibility", visibility);
 | |
| 		field_to_json(Obj, "access", access);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 		field_to_json(Obj, "venue", venue);
 | |
| 	}
 | |
| 
 | |
| 	bool Map::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			RESTAPI_utils::field_from_json(Obj, "data", data);
 | |
| 			RESTAPI_utils::field_from_json(Obj, "entity", entity);
 | |
| 			RESTAPI_utils::field_from_json(Obj, "creator", creator);
 | |
| 			RESTAPI_utils::field_from_json(Obj, "visibility", visibility);
 | |
| 			RESTAPI_utils::field_from_json(Obj, "access", access);
 | |
| 			RESTAPI_utils::field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			RESTAPI_utils::field_from_json(Obj, "venue", venue);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		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);
 | |
| 	}
 | |
| 
 | |
| 	bool MapList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			RESTAPI_utils::field_from_json(Obj, "list", list);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void SignupEntry::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "email", email);
 | |
| 		field_to_json(Obj, "userId", userId);
 | |
| 		field_to_json(Obj, "macAddress", macAddress);
 | |
| 		field_to_json(Obj, "serialNumber", serialNumber);
 | |
| 		field_to_json(Obj, "submitted", submitted);
 | |
| 		field_to_json(Obj, "completed", completed);
 | |
| 		field_to_json(Obj, "status", status);
 | |
| 		field_to_json(Obj, "error", error);
 | |
| 		field_to_json(Obj, "statusCode", statusCode);
 | |
| 		field_to_json(Obj, "deviceID", deviceID);
 | |
| 		field_to_json(Obj, "registrationId", registrationId);
 | |
| 		field_to_json(Obj, "operatorId", operatorId);
 | |
| 	}
 | |
| 
 | |
| 	bool SignupEntry::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "email", email);
 | |
| 			field_from_json(Obj, "userId", userId);
 | |
| 			field_from_json(Obj, "macAddress", macAddress);
 | |
| 			field_from_json(Obj, "serialNumber", serialNumber);
 | |
| 			field_from_json(Obj, "submitted", submitted);
 | |
| 			field_from_json(Obj, "completed", completed);
 | |
| 			field_from_json(Obj, "status", status);
 | |
| 			field_from_json(Obj, "error", error);
 | |
| 			field_from_json(Obj, "statusCode", statusCode);
 | |
| 			field_from_json(Obj, "deviceID", deviceID);
 | |
| 			field_from_json(Obj, "registrationId", registrationId);
 | |
| 			field_from_json(Obj, "operatorId", operatorId);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void Variable::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "type", type);
 | |
| 		field_to_json(Obj, "weight", weight);
 | |
| 		field_to_json(Obj, "prefix", prefix);
 | |
| 		field_to_json(Obj, "value", value);
 | |
| 	}
 | |
| 
 | |
| 	bool Variable::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "type", type);
 | |
| 			field_from_json(Obj, "weight", weight);
 | |
| 			field_from_json(Obj, "prefix", prefix);
 | |
| 			field_from_json(Obj, "value", value);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void VariableList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "variables", variables);
 | |
| 	}
 | |
| 
 | |
| 	bool VariableList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "variables", variables);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void VariableBlock::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "variables", variables);
 | |
| 		field_to_json(Obj, "entity", entity);
 | |
| 		field_to_json(Obj, "venue", venue);
 | |
| 		field_to_json(Obj, "subscriber", subscriber);
 | |
| 		field_to_json(Obj, "inventory", inventory);
 | |
| 		field_to_json(Obj, "configurations", configurations);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 	}
 | |
| 
 | |
| 	bool VariableBlock::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "variables", variables);
 | |
| 			field_from_json(Obj, "entity", entity);
 | |
| 			field_from_json(Obj, "venue", venue);
 | |
| 			field_from_json(Obj, "subscriber", subscriber);
 | |
| 			field_from_json(Obj, "inventory", inventory);
 | |
| 			field_from_json(Obj, "configurations", configurations);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void VariableBlockList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "variableBlocks", variableBlocks);
 | |
| 	}
 | |
| 
 | |
| 	bool VariableBlockList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "variableBlocks", variableBlocks);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void ConfigurationDetails::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "configuration", configuration);
 | |
| 		field_to_json(Obj, "rrm", rrm);
 | |
| 		field_to_json(Obj, "firmwareRCOnly", firmwareRCOnly);
 | |
| 		field_to_json(Obj, "firmwareUpgrade", firmwareUpgrade);
 | |
| 	}
 | |
| 
 | |
| 	bool ConfigurationDetails::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "configuration", configuration);
 | |
| 			field_from_json(Obj, "rrm", rrm);
 | |
| 			field_from_json(Obj, "firmwareRCOnly", firmwareRCOnly);
 | |
| 			field_from_json(Obj, "firmwareUpgrade", firmwareUpgrade);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void SubscriberDevice::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		info.to_json(Obj);
 | |
| 		field_to_json(Obj, "serialNumber", serialNumber);
 | |
| 		field_to_json(Obj, "deviceType", deviceType);
 | |
| 		field_to_json(Obj, "operatorId", operatorId);
 | |
| 		field_to_json(Obj, "subscriberId", subscriberId);
 | |
| 		field_to_json(Obj, "location", location);
 | |
| 		field_to_json(Obj, "contact", contact);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 		field_to_json(Obj, "serviceClass", serviceClass);
 | |
| 		field_to_json(Obj, "qrCode", qrCode);
 | |
| 		field_to_json(Obj, "geoCode", geoCode);
 | |
| 		field_to_json(Obj, "deviceRules", deviceRules);
 | |
| 		field_to_json(Obj, "state", state);
 | |
| 		field_to_json(Obj, "locale", locale);
 | |
| 		field_to_json(Obj, "billingCode", billingCode);
 | |
| 		field_to_json(Obj, "configuration", configuration);
 | |
| 		field_to_json(Obj, "suspended", suspended);
 | |
| 		field_to_json(Obj, "realMacAddress", realMacAddress);
 | |
| 	}
 | |
| 
 | |
| 	bool SubscriberDevice::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			info.from_json(Obj);
 | |
| 			field_from_json(Obj, "serialNumber", serialNumber);
 | |
| 			field_from_json(Obj, "deviceType", deviceType);
 | |
| 			field_from_json(Obj, "operatorId", operatorId);
 | |
| 			field_from_json(Obj, "subscriberId", subscriberId);
 | |
| 			field_from_json(Obj, "location", location);
 | |
| 			field_from_json(Obj, "contact", contact);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			field_from_json(Obj, "serviceClass", serviceClass);
 | |
| 			field_from_json(Obj, "qrCode", qrCode);
 | |
| 			field_from_json(Obj, "geoCode", geoCode);
 | |
| 			field_from_json(Obj, "deviceRules", deviceRules);
 | |
| 			field_from_json(Obj, "state", state);
 | |
| 			field_from_json(Obj, "locale", locale);
 | |
| 			field_from_json(Obj, "billingCode", billingCode);
 | |
| 			field_from_json(Obj, "configuration", configuration);
 | |
| 			field_from_json(Obj, "suspended", suspended);
 | |
| 			field_from_json(Obj, "realMacAddress", realMacAddress);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void SubscriberDeviceList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "subscriberDevices", subscriberDevices);
 | |
| 	}
 | |
| 
 | |
| 	bool SubscriberDeviceList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "subscriberDevices", subscriberDevices);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void VenueDeviceList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "id", id);
 | |
| 		field_to_json(Obj, "name", name);
 | |
| 		field_to_json(Obj, "description", description);
 | |
| 		field_to_json(Obj, "devices", devices);
 | |
| 	}
 | |
| 
 | |
| 	bool VenueDeviceList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "id", id);
 | |
| 			field_from_json(Obj, "name", name);
 | |
| 			field_from_json(Obj, "description", description);
 | |
| 			field_from_json(Obj, "devices", devices);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	bool UpdateObjectInfo(const Poco::JSON::Object::Ptr &O, const SecurityObjects::UserInfo &U,
 | |
| 						  ObjectInfo &I) {
 | |
| 		uint64_t Now = Utils::Now();
 | |
| 		if (O->has("name"))
 | |
| 			I.name = O->get("name").toString();
 | |
| 
 | |
| 		if (I.name.empty())
 | |
| 			return false;
 | |
| 
 | |
| 		if (O->has("description"))
 | |
| 			I.description = O->get("description").toString();
 | |
| 		SecurityObjects::MergeNotes(O, U, I.notes);
 | |
| 		SecurityObjects::NoteInfoVec N;
 | |
| 		for (auto &i : I.notes) {
 | |
| 			if (i.note.empty())
 | |
| 				continue;
 | |
| 			N.push_back(
 | |
| 				SecurityObjects::NoteInfo{.created = Now, .createdBy = U.email, .note = i.note});
 | |
| 		}
 | |
| 		I.modified = Now;
 | |
| 		return true;
 | |
| 	}
 | |
| 
 | |
| 	bool CreateObjectInfo(const Poco::JSON::Object::Ptr &O, const SecurityObjects::UserInfo &U,
 | |
| 						  ObjectInfo &I) {
 | |
| 		uint64_t Now = Utils::Now();
 | |
| 		if (O->has("name"))
 | |
| 			I.name = O->get("name").toString();
 | |
| 
 | |
| 		if (I.name.empty())
 | |
| 			return false;
 | |
| 
 | |
| 		if (O->has("description"))
 | |
| 			I.description = O->get("description").toString();
 | |
| 
 | |
| 		SecurityObjects::NoteInfoVec N;
 | |
| 		for (auto &i : I.notes) {
 | |
| 			if (i.note.empty())
 | |
| 				continue;
 | |
| 			N.push_back(
 | |
| 				SecurityObjects::NoteInfo{.created = Now, .createdBy = U.email, .note = i.note});
 | |
| 		}
 | |
| 		I.notes = N;
 | |
| 		I.modified = I.created = Now;
 | |
| 		I.id = MicroServiceCreateUUID();
 | |
| 
 | |
| 		return true;
 | |
| 	}
 | |
| 
 | |
| 	bool CreateObjectInfo([[maybe_unused]] const SecurityObjects::UserInfo &U, ObjectInfo &I) {
 | |
| 		I.modified = I.created = Utils::Now();
 | |
| 		I.id = MicroServiceCreateUUID();
 | |
| 		return true;
 | |
| 	}
 | |
| 
 | |
| 	void DeviceRules::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "rcOnly", rcOnly);
 | |
| 		field_to_json(Obj, "rrm", rrm);
 | |
| 		field_to_json(Obj, "firmwareUpgrade", firmwareUpgrade);
 | |
| 	}
 | |
| 
 | |
| 	bool DeviceRules::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "rcOnly", rcOnly);
 | |
| 			field_from_json(Obj, "rrm", rrm);
 | |
| 			field_from_json(Obj, "firmwareUpgrade", firmwareUpgrade);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void RRMAlgorithmDetails::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "name", name);
 | |
| 		field_to_json(Obj, "parameters", parameters);
 | |
| 	}
 | |
| 
 | |
| 	bool RRMAlgorithmDetails::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "name", name);
 | |
| 			field_from_json(Obj, "parameters", parameters);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void RRMDetails::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "vendor", vendor);
 | |
| 		field_to_json(Obj, "schedule", schedule);
 | |
| 		field_to_json(Obj, "algorithms", algorithms);
 | |
| 	}
 | |
| 
 | |
| 	bool RRMDetails::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "vendor", vendor);
 | |
| 			field_from_json(Obj, "schedule", schedule);
 | |
| 			field_from_json(Obj, "algorithms", algorithms);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void ConfigurationOverride::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "source", source);
 | |
| 		field_to_json(Obj, "reason", reason);
 | |
| 		field_to_json(Obj, "parameterName", parameterName);
 | |
| 		field_to_json(Obj, "parameterType", parameterType);
 | |
| 		field_to_json(Obj, "parameterValue", parameterValue);
 | |
| 		field_to_json(Obj, "modified", modified);
 | |
| 	}
 | |
| 
 | |
| 	bool ConfigurationOverride::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "source", source);
 | |
| 			field_from_json(Obj, "reason", reason);
 | |
| 			field_from_json(Obj, "parameterName", parameterName);
 | |
| 			field_from_json(Obj, "parameterType", parameterType);
 | |
| 			field_from_json(Obj, "parameterValue", parameterValue);
 | |
| 			field_from_json(Obj, "modified", modified);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void ConfigurationOverrideList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "serialNumber", serialNumber);
 | |
| 		field_to_json(Obj, "managementPolicy", managementPolicy);
 | |
| 		field_to_json(Obj, "overrides", overrides);
 | |
| 	}
 | |
| 
 | |
| 	bool ConfigurationOverrideList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "serialNumber", serialNumber);
 | |
| 			field_from_json(Obj, "managementPolicy", managementPolicy);
 | |
| 			field_from_json(Obj, "overrides", overrides);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
|     void GLBLRAccountInfo::to_json(Poco::JSON::Object &Obj) const {
 | |
|         info.to_json(Obj);
 | |
|         field_to_json(Obj, "privateKey", privateKey);
 | |
|         field_to_json(Obj, "country", country);
 | |
|         field_to_json(Obj, "province", province);
 | |
|         field_to_json(Obj, "city", city);
 | |
|         field_to_json(Obj, "organization", organization);
 | |
|         field_to_json(Obj, "commonName", commonName);
 | |
|         field_to_json(Obj, "CSR", CSR);
 | |
|         field_to_json(Obj, "CSRPrivateKey", CSRPrivateKey);
 | |
|         field_to_json(Obj, "CSRPublicKey", CSRPublicKey);
 | |
|         field_to_json(Obj, "GlobalReachAcctId", GlobalReachAcctId);
 | |
|     }
 | |
| 
 | |
|     bool GLBLRAccountInfo::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
|         try {
 | |
|             info.from_json(Obj);
 | |
|             field_from_json(Obj, "privateKey", privateKey);
 | |
|             field_from_json(Obj, "country", country);
 | |
|             field_from_json(Obj, "province", province);
 | |
|             field_from_json(Obj, "city", city);
 | |
|             field_from_json(Obj, "organization", organization);
 | |
|             field_from_json(Obj, "commonName", commonName);
 | |
|             field_from_json(Obj, "CSR", CSR);
 | |
|             field_from_json(Obj, "CSRPrivateKey", CSRPrivateKey);
 | |
|             field_from_json(Obj, "CSRPublicKey", CSRPublicKey);
 | |
|             field_from_json(Obj, "GlobalReachAcctId", GlobalReachAcctId);
 | |
|             return true;
 | |
|         } catch (const Poco::Exception &E) {
 | |
| 
 | |
|         }
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     void GLBLRCertificateInfo::to_json(Poco::JSON::Object &Obj) const {
 | |
|         field_to_json(Obj, "id", id);
 | |
|         field_to_json(Obj, "name", name);
 | |
|         field_to_json(Obj, "accountId", accountId);
 | |
|         field_to_json(Obj, "csr", csr);
 | |
|         field_to_json(Obj, "certificate", certificate);
 | |
|         field_to_json(Obj, "certificateChain", certificateChain);
 | |
|         field_to_json(Obj, "certificateId", certificateId);
 | |
|         field_to_json(Obj, "expiresAt", expiresAt);
 | |
|         field_to_json(Obj, "created", created);
 | |
|     }
 | |
| 
 | |
|     bool GLBLRCertificateInfo::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
|         try {
 | |
|             field_from_json(Obj, "id", id);
 | |
|             field_from_json(Obj, "name", name);
 | |
|             field_from_json(Obj, "accountId", accountId);
 | |
|             field_from_json(Obj, "csr", csr);
 | |
|             field_from_json(Obj, "certificate", certificate);
 | |
|             field_from_json(Obj, "certificateChain", certificateChain);
 | |
|             field_from_json(Obj, "certificateId", certificateId);
 | |
|             field_from_json(Obj, "expiresAt", expiresAt);
 | |
|             field_from_json(Obj, "created", created);
 | |
|             return true;
 | |
|         } catch (const Poco::Exception &E) {
 | |
| 
 | |
|         }
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     void GooglOrionAccountInfo::to_json(Poco::JSON::Object &Obj) const {
 | |
|         info.to_json(Obj);
 | |
|         field_to_json(Obj, "privateKey", privateKey);
 | |
|         field_to_json(Obj, "certificate", certificate);
 | |
|         field_to_json(Obj, "cacerts", cacerts);
 | |
|     }
 | |
| 
 | |
|     bool GooglOrionAccountInfo::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
|         try {
 | |
|             info.from_json(Obj);
 | |
|             field_from_json(Obj, "privateKey", privateKey);
 | |
|             field_from_json(Obj, "certificate", certificate);
 | |
|             field_from_json(Obj, "cacerts", cacerts);
 | |
|             return true;
 | |
|         } catch (const Poco::Exception &E) {
 | |
| 
 | |
|         }
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     void RADIUSServer::to_json(Poco::JSON::Object &Obj) const {
 | |
|         field_to_json(Obj, "Hostname", Hostname);
 | |
|         field_to_json(Obj, "IP", IP);
 | |
|         field_to_json(Obj, "Port", Port);
 | |
|         field_to_json(Obj, "Secret", Secret);
 | |
|     }
 | |
| 
 | |
|     bool RADIUSServer::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
|         try {
 | |
|             field_from_json(Obj, "Hostname", Hostname);
 | |
|             field_from_json(Obj, "IP", IP);
 | |
|             field_from_json(Obj, "Port", Port);
 | |
|             field_from_json(Obj, "Secret", Secret);
 | |
|             return true;
 | |
|         } catch (const Poco::Exception &E) {
 | |
| 
 | |
|         }
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     void RADIUSEndPointRadiusType::to_json(Poco::JSON::Object &Obj) const {
 | |
|         field_to_json(Obj, "Authentication", Authentication);
 | |
|         field_to_json(Obj, "Accounting", Accounting);
 | |
|         field_to_json(Obj, "CoA", CoA);
 | |
|         field_to_json(Obj, "AccountingInterval", AccountingInterval);
 | |
|     }
 | |
| 
 | |
|     bool RADIUSEndPointRadiusType::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
|         try {
 | |
|             field_from_json(Obj, "Authentication", Authentication);
 | |
|             field_from_json(Obj, "Accounting", Accounting);
 | |
|             field_from_json(Obj, "CoA", CoA);
 | |
|             field_from_json(Obj, "AccountingInterval", AccountingInterval);
 | |
|             return true;
 | |
|         } catch (const Poco::Exception &E) {
 | |
| 
 | |
|         }
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     void RADIUSEndPointRadsecType::to_json(Poco::JSON::Object &Obj) const {
 | |
|         field_to_json(Obj, "Hostname", Hostname);
 | |
|         field_to_json(Obj, "IP", IP);
 | |
|         field_to_json(Obj, "Port", Port);
 | |
|         field_to_json(Obj, "Secret", Secret);
 | |
|         field_to_json(Obj, "OpenRoamingType", OpenRoamingType);
 | |
|         field_to_json(Obj, "UseOpenRoamingAccount", UseOpenRoamingAccount);
 | |
|         field_to_json(Obj, "Weight", Weight);
 | |
|         field_to_json(Obj, "Certificate", Certificate);
 | |
|         field_to_json(Obj, "PrivateKey", PrivateKey);
 | |
|         field_to_json(Obj, "CaCerts", CaCerts);
 | |
|         field_to_json(Obj, "AllowSelfSigned", AllowSelfSigned);
 | |
|     }
 | |
| 
 | |
|     bool RADIUSEndPointRadsecType::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
|         try {
 | |
|             field_from_json(Obj, "Hostname", Hostname);
 | |
|             field_from_json(Obj, "IP", IP);
 | |
|             field_from_json(Obj, "Port", Port);
 | |
|             field_from_json(Obj, "Secret", Secret);
 | |
|             field_from_json(Obj, "OpenRoamingType", OpenRoamingType);
 | |
|             field_from_json(Obj, "UseOpenRoamingAccount", UseOpenRoamingAccount);
 | |
|             field_from_json(Obj, "Weight", Weight);
 | |
|             field_from_json(Obj, "Certificate", Certificate);
 | |
|             field_from_json(Obj, "PrivateKey", PrivateKey);
 | |
|             field_from_json(Obj, "CaCerts", CaCerts);
 | |
|             field_from_json(Obj, "AllowSelfSigned", AllowSelfSigned);
 | |
|             return true;
 | |
|         } catch (const Poco::Exception &E) {
 | |
| 
 | |
|         }
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     void RADIUSEndPoint::to_json(Poco::JSON::Object &Obj) const {
 | |
|         info.to_json(Obj);
 | |
|         field_to_json(Obj, "Type", Type);
 | |
|         field_to_json(Obj, "RadsecServers", RadsecServers);
 | |
|         field_to_json(Obj, "RadiusServers", RadiusServers);
 | |
|         field_to_json(Obj, "PoolStrategy", PoolStrategy);
 | |
|         field_to_json(Obj, "Index", Index);
 | |
|         field_to_json(Obj, "UsedBy", UsedBy);
 | |
|         field_to_json(Obj, "UseGWProxy", UseGWProxy);
 | |
|         field_to_json(Obj, "NasIdentifier", NasIdentifier);
 | |
|         field_to_json(Obj, "AccountingInterval", AccountingInterval);
 | |
|     }
 | |
| 
 | |
|     bool RADIUSEndPoint::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
|         try {
 | |
|             info.from_json(Obj);
 | |
|             field_from_json(Obj, "Type", Type);
 | |
|             field_from_json(Obj, "RadsecServers", RadsecServers);
 | |
|             field_from_json(Obj, "RadiusServers", RadiusServers);
 | |
|             field_from_json(Obj, "PoolStrategy", PoolStrategy);
 | |
|             field_from_json(Obj, "Index", Index);
 | |
|             field_from_json(Obj, "UsedBy", UsedBy);
 | |
|             field_from_json(Obj, "UseGWProxy", UseGWProxy);
 | |
|             field_from_json(Obj, "NasIdentifier", NasIdentifier);
 | |
|             field_from_json(Obj, "AccountingInterval", AccountingInterval);
 | |
|             return true;
 | |
|         } catch (const Poco::Exception &E) {
 | |
| 
 | |
|         }
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     void RADIUSEndpointUpdateStatus::to_json(Poco::JSON::Object &Obj) const {
 | |
|         field_to_json(Obj, "lastUpdate", lastUpdate);
 | |
|         field_to_json(Obj, "lastConfigurationChange", lastConfigurationChange);
 | |
|     }
 | |
| 
 | |
|     bool RADIUSEndpointUpdateStatus::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
|         try {
 | |
|             field_from_json(Obj, "lastUpdate", lastUpdate);
 | |
|             field_from_json(Obj, "lastConfigurationChange", lastConfigurationChange);
 | |
|             return true;
 | |
|         } catch (const Poco::Exception &E) {
 | |
| 
 | |
|         }
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     bool RADIUSEndpointUpdateStatus::Read() {
 | |
|         Poco::File  F(OpenWifi::MicroServiceDataDirectory()+"/RADIUSEndpointUpdateStatus.json");
 | |
|         try {
 | |
|             if (F.exists()) {
 | |
|                 Poco::JSON::Parser P;
 | |
|                 std::ifstream ifs(F.path(), std::ios_base::in | std::ios_base::binary);
 | |
|                 auto Obj = P.parse(ifs);
 | |
|                 return from_json(Obj.extract<Poco::JSON::Object::Ptr>());
 | |
|             }
 | |
|         } catch (...) {
 | |
|         }
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     bool RADIUSEndpointUpdateStatus::Save() {
 | |
|         Poco::File  F(OpenWifi::MicroServiceDataDirectory()+"/RADIUSEndpointUpdateStatus.json");
 | |
|         try {
 | |
|             Poco::JSON::Object Obj;
 | |
|             to_json(Obj);
 | |
|             std::ofstream O(F.path(), std::ios_base::out | std::ios_base::trunc | std::ios_base::binary);
 | |
|             Poco::JSON::Stringifier::stringify(Obj, O);
 | |
|             return true;
 | |
|         } catch (...) {
 | |
|         }
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     bool RADIUSEndpointUpdateStatus::ChangeConfiguration() {
 | |
|         Read();
 | |
|         lastConfigurationChange = Utils::Now();
 | |
|         return Save();
 | |
|     }
 | |
| 
 | |
| } // namespace OpenWifi::ProvObjects
 | 
