mirror of
				https://github.com/Telecominfraproject/wlan-cloud-ucentralfms.git
				synced 2025-10-31 02:37:46 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			299 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			299 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| //
 | |
| // Created by stephane bourque on 2021-07-12.
 | |
| //
 | |
| 
 | |
| #include "RESTAPI_FMSObjects.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::FMSObjects {
 | |
| 
 | |
| 	void Firmware::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "id", id);
 | |
| 		field_to_json(Obj, "release", release);
 | |
| 		field_to_json(Obj, "deviceType", deviceType);
 | |
| 		field_to_json(Obj, "description", description);
 | |
| 		field_to_json(Obj, "revision", revision);
 | |
| 		field_to_json(Obj, "uri", uri);
 | |
| 		field_to_json(Obj, "image", image);
 | |
| 		field_to_json(Obj, "imageDate", imageDate);
 | |
| 		field_to_json(Obj, "size", size);
 | |
| 		field_to_json(Obj, "downloadCount", downloadCount);
 | |
| 		field_to_json(Obj, "firmwareHash", firmwareHash);
 | |
| 		field_to_json(Obj, "owner", owner);
 | |
| 		field_to_json(Obj, "location", location);
 | |
| 		field_to_json(Obj, "uploader", uploader);
 | |
| 		field_to_json(Obj, "digest", digest);
 | |
| 		field_to_json(Obj, "latest", latest);
 | |
| 		field_to_json(Obj, "notes", notes);
 | |
| 		field_to_json(Obj, "created", created);
 | |
| 	};
 | |
| 
 | |
| 	bool Firmware::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "id", id);
 | |
| 			field_from_json(Obj, "release", release);
 | |
| 			field_from_json(Obj, "deviceType", deviceType);
 | |
| 			field_from_json(Obj, "description", description);
 | |
| 			field_from_json(Obj, "revision", revision);
 | |
| 			field_from_json(Obj, "uri", uri);
 | |
| 			field_from_json(Obj, "image", image);
 | |
| 			field_from_json(Obj, "imageDate", imageDate);
 | |
| 			field_from_json(Obj, "size", size);
 | |
| 			field_from_json(Obj, "downloadCount", downloadCount);
 | |
| 			field_from_json(Obj, "firmwareHash", firmwareHash);
 | |
| 			field_from_json(Obj, "owner", owner);
 | |
| 			field_from_json(Obj, "location", location);
 | |
| 			field_from_json(Obj, "uploader", uploader);
 | |
| 			field_from_json(Obj, "digest", digest);
 | |
| 			field_from_json(Obj, "latest", latest);
 | |
| 			field_from_json(Obj, "notes", notes);
 | |
| 			field_from_json(Obj, "created", created);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return true;
 | |
| 	}
 | |
| 
 | |
| 	void FirmwareList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "firmwares", firmwares);
 | |
| 	}
 | |
| 
 | |
| 	bool FirmwareList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "firmwares", firmwares);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void DeviceType::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "id", id);
 | |
| 		field_to_json(Obj, "deviceType", deviceType);
 | |
| 		field_to_json(Obj, "manufacturer", manufacturer);
 | |
| 		field_to_json(Obj, "model", model);
 | |
| 		field_to_json(Obj, "policy", policy);
 | |
| 		field_to_json(Obj, "notes", notes);
 | |
| 		field_to_json(Obj, "lastUpdate", lastUpdate);
 | |
| 		field_to_json(Obj, "created", created);
 | |
| 		field_to_json(Obj, "id", id);
 | |
| 		field_to_json(Obj, "id", id);
 | |
| 		field_to_json(Obj, "id", id);
 | |
| 	}
 | |
| 
 | |
| 	bool DeviceType::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "id", id);
 | |
| 			field_from_json(Obj, "deviceType", deviceType);
 | |
| 			field_from_json(Obj, "manufacturer", manufacturer);
 | |
| 			field_from_json(Obj, "model", model);
 | |
| 			field_from_json(Obj, "policy", policy);
 | |
| 			field_from_json(Obj, "notes", notes);
 | |
| 			field_from_json(Obj, "lastUpdate", lastUpdate);
 | |
| 			field_from_json(Obj, "created", created);
 | |
| 			field_from_json(Obj, "id", id);
 | |
| 			field_from_json(Obj, "id", id);
 | |
| 			field_from_json(Obj, "id", id);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void DeviceTypeList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "deviceTypes", deviceTypes);
 | |
| 	}
 | |
| 
 | |
| 	bool DeviceTypeList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "deviceTypes", deviceTypes);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void RevisionHistoryEntry::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "id", id);
 | |
| 		field_to_json(Obj, "serialNumber", serialNumber);
 | |
| 		field_to_json(Obj, "fromRelease", fromRelease);
 | |
| 		field_to_json(Obj, "toRelease", toRelease);
 | |
| 		field_to_json(Obj, "commandUUID", commandUUID);
 | |
| 		field_to_json(Obj, "revisionId", revisionId);
 | |
| 		field_to_json(Obj, "upgraded", upgraded);
 | |
| 	}
 | |
| 
 | |
| 	bool RevisionHistoryEntry::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "id", id);
 | |
| 			field_from_json(Obj, "serialNumber", serialNumber);
 | |
| 			field_from_json(Obj, "fromRelease", fromRelease);
 | |
| 			field_from_json(Obj, "toRelease", toRelease);
 | |
| 			field_from_json(Obj, "commandUUID", commandUUID);
 | |
| 			field_from_json(Obj, "revisionId", revisionId);
 | |
| 			field_from_json(Obj, "upgraded", upgraded);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void RevisionHistoryEntryList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "deviceTypes", history);
 | |
| 	}
 | |
| 
 | |
| 	bool RevisionHistoryEntryList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "deviceTypes", history);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void FirmwareAgeDetails::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "latestId", latestId);
 | |
| 		field_to_json(Obj, "image", image);
 | |
| 		field_to_json(Obj, "imageDate", imageDate);
 | |
| 		field_to_json(Obj, "revision", revision);
 | |
| 		field_to_json(Obj, "uri", uri);
 | |
| 		field_to_json(Obj, "age", age);
 | |
| 		field_to_json(Obj, "latest", latest);
 | |
| 	}
 | |
| 
 | |
| 	bool FirmwareAgeDetails::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "latestId", latestId);
 | |
| 			field_from_json(Obj, "image", image);
 | |
| 			field_from_json(Obj, "imageDate", imageDate);
 | |
| 			field_from_json(Obj, "revision", revision);
 | |
| 			field_from_json(Obj, "uri", uri);
 | |
| 			field_from_json(Obj, "age", age);
 | |
| 			field_from_json(Obj, "latest", latest);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void DeviceConnectionInformation::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "serialNumber", serialNumber);
 | |
| 		field_to_json(Obj, "revision", revision);
 | |
| 		field_to_json(Obj, "deviceType", deviceType);
 | |
| 		field_to_json(Obj, "endPoint", endPoint);
 | |
| 		field_to_json(Obj, "lastUpdate", lastUpdate);
 | |
| 		field_to_json(Obj, "status", status);
 | |
| 	}
 | |
| 
 | |
| 	bool DeviceConnectionInformation::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "serialNumber", serialNumber);
 | |
| 			field_from_json(Obj, "revision", revision);
 | |
| 			field_from_json(Obj, "deviceType", deviceType);
 | |
| 			field_from_json(Obj, "endPoint", endPoint);
 | |
| 			field_from_json(Obj, "lastUpdate", lastUpdate);
 | |
| 			field_from_json(Obj, "status", status);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void DeviceReport::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "ouis", OUI_);
 | |
| 		field_to_json(Obj, "revisions", Revisions_);
 | |
| 		field_to_json(Obj, "deviceTypes", DeviceTypes_);
 | |
| 		field_to_json(Obj, "status", Status_);
 | |
| 		field_to_json(Obj, "endPoints", EndPoints_);
 | |
| 		field_to_json(Obj, "usingLatest", UsingLatest_);
 | |
| 		field_to_json(Obj, "unknownFirmwares", UnknownFirmwares_);
 | |
| 		field_to_json(Obj, "snapshot", snapshot);
 | |
| 		field_to_json(Obj, "numberOfDevices", numberOfDevices);
 | |
| 		field_to_json(Obj, "totalSecondsOld", totalSecondsOld_);
 | |
| 	}
 | |
| 
 | |
| 	void DeviceReport::reset() {
 | |
| 		OUI_.clear();
 | |
| 		Revisions_.clear();
 | |
| 		DeviceTypes_.clear();
 | |
| 		Status_.clear();
 | |
| 		EndPoints_.clear();
 | |
| 		UsingLatest_.clear();
 | |
| 		UnknownFirmwares_.clear();
 | |
| 		totalSecondsOld_.clear();
 | |
| 		numberOfDevices = 0;
 | |
| 		snapshot = Utils::Now();
 | |
| 	}
 | |
| 
 | |
| 	bool DeviceReport::from_json([[maybe_unused]] const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void DeviceInformation::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "serialNumber", serialNumber);
 | |
| 		field_to_json(Obj, "history", history);
 | |
| 		field_to_json(Obj, "currentFirmware", currentFirmware);
 | |
| 		field_to_json(Obj, "currentFirmwareDate", currentFirmwareDate);
 | |
| 		field_to_json(Obj, "latestFirmware", latestFirmware);
 | |
| 		field_to_json(Obj, "latestFirmwareDate", latestFirmwareDate);
 | |
| 		field_to_json(Obj, "latestFirmwareAvailable", latestFirmwareAvailable);
 | |
| 		field_to_json(Obj, "latestFirmwareURI", latestFirmwareURI);
 | |
| 	}
 | |
| 
 | |
| 	bool DeviceInformation::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "serialNumber", serialNumber);
 | |
| 			field_from_json(Obj, "history", history);
 | |
| 			field_from_json(Obj, "currentFirmware", currentFirmware);
 | |
| 			field_from_json(Obj, "currentFirmwareDate", currentFirmwareDate);
 | |
| 			field_from_json(Obj, "latestFirmware", latestFirmware);
 | |
| 			field_from_json(Obj, "latestFirmwareDate", latestFirmwareDate);
 | |
| 			field_from_json(Obj, "latestFirmwareAvailable", latestFirmwareAvailable);
 | |
| 			field_from_json(Obj, "latestFirmwareURI", latestFirmwareURI);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void DeviceCurrentInfo::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "serialNumber", serialNumber);
 | |
| 		field_to_json(Obj, "revision", revision);
 | |
| 		field_to_json(Obj, "upgraded", upgraded);
 | |
| 	}
 | |
| 
 | |
| 	bool DeviceCurrentInfo::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "serialNumber", serialNumber);
 | |
| 			field_from_json(Obj, "revision", revision);
 | |
| 			field_from_json(Obj, "upgraded", upgraded);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| 	void DeviceCurrentInfoList::to_json(Poco::JSON::Object &Obj) const {
 | |
| 		field_to_json(Obj, "devices", devices);
 | |
| 	}
 | |
| 
 | |
| 	bool DeviceCurrentInfoList::from_json(const Poco::JSON::Object::Ptr &Obj) {
 | |
| 		try {
 | |
| 			field_from_json(Obj, "devices", devices);
 | |
| 			return true;
 | |
| 		} catch (...) {
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 
 | |
| } // namespace OpenWifi::FMSObjects
 | 
