def test_json_serializer_with_geoobject_adapter(self): """ test new serialization in contrast with legacy serializer to ensure compatibility """ from FreeTAKServer.model.FTSModel.Event import Event from FreeTAKServer.controllers.serializers.api_adapters.api_adapters import GeoObjectAdapter basejson = { "attitude": "friendly", "how": "nonCoT", "name": "testing", "latitude": "37.5677889", "longitude": "12.345678", "geoObject": "Ground", "timeout": "120" } jsonobj = JsonController().serialize_geoobject_post(basejson) simpleCoTObject = SendSimpleCoTController(jsonobj).getCoTObject() xml_legacy = etree.fromstring(simpleCoTObject.xmlString) xml_legacy.attrib['uid'] = '123' xml_legacy.attrib['time'] = '24' xml_legacy.attrib['start'] = '849' xml_legacy.attrib['stale'] = '3333' newObject = GeoObjectAdapter().from_api_to_fts_object(basejson) xml_updated = etree.fromstring(newObject.xmlString) xml_updated.attrib['uid'] = '123' xml_updated.attrib['time'] = '24' xml_updated.attrib['start'] = '849' xml_updated.attrib['stale'] = '3333' xml_legacy = etree.tostring(xml_legacy).decode() xml_updated = etree.tostring(xml_updated).decode() self.assertEqual(xml_legacy, xml_updated)
def test_json_serializer_with_presence_adapter(self): from FreeTAKServer.model.FTSModel.Event import Event from FreeTAKServer.controllers.RestMessageControllers.SendPresenceController import SendPresenceController from FreeTAKServer.controllers.serializers.api_adapters.api_adapters import PresenceAdapter basejson = { "how": "nonCoT", "name": "testing", "latitude": "34.5677889", "longitude": "12.345678", "role": "Team Member", "team": "Cyan" } jsonobj = JsonController().serialize_presence_post(basejson) simpleCoTObject = SendPresenceController(jsonobj).getCoTObject() xml_legacy = etree.fromstring(simpleCoTObject.xmlString) xml_legacy.attrib['uid'] = '123' xml_legacy.attrib['time'] = '24' xml_legacy.attrib['start'] = '849' xml_legacy.attrib['stale'] = '3333' newObject = PresenceAdapter().from_api_to_fts_object(basejson) xml_updated = etree.fromstring(newObject.xmlString) xml_updated.attrib['uid'] = '123' xml_updated.attrib['time'] = '24' xml_updated.attrib['start'] = '849' xml_updated.attrib['stale'] = '3333' xml_legacy = etree.tostring(xml_legacy).decode() xml_updated = etree.tostring(xml_updated).decode() self.assertEqual(xml_legacy, xml_updated)
def create_geoobject(json_data: dict) -> object: """ create a geoobject FTSModel Object From information specified in supplied JSON argument @param json_data: @return: """ jsonobj = JsonController().serialize_geoobject_post(json_data) simpleCoTObject = SendSimpleCoTController(jsonobj).getCoTObject() return simpleCoTObject
def deleteEmergency(): try: from json import dumps jsondata = request.get_json(force=True) jsonobj = JsonController().serialize_emergency_delete(jsondata) EmergencyObject = SendEmergencyController(jsonobj).getCoTObject() APIPipe.send(EmergencyObject) return 'success', 200 except Exception as e: return str(e), 500
def postEmergency(): try: from json import dumps jsondata = request.get_json(force=True) jsonobj = JsonController().serialize_emergency_post(jsondata) EmergencyObject = SendEmergencyController(jsonobj).getCoTObject() APIPipe.send(EmergencyObject) return EmergencyObject.modelObject.getuid(), 200 except Exception as e: return str(e), 200
def postChatToAll(): try: from json import dumps #jsondata = {'message': 'test abc', 'sender': 'natha'} jsondata = request.get_json(force=True) jsonobj = JsonController().serialize_chat_post(jsondata) ChatObject = SendChatController(jsonobj).getCoTObject() APIPipe.send(ChatObject) return 'success', 200 except Exception as e: return str(e), 500
def postGeoObject(): try: from json import dumps #jsondata = {'longitude': '12.345678', 'latitude': '34.5677889', 'attitude': 'friend', 'geoObject': 'Ground', 'how': 'nonCoT', 'name': 'testing123'} jsondata = request.get_json(force=True) jsonobj = JsonController().serialize_geoobject_post(jsondata) simpleCoTObject = SendSimpleCoTController(jsonobj).getCoTObject() APIPipe.send(simpleCoTObject) return simpleCoTObject.modelObject.getuid(), 200 except Exception as e: return str(e), 500
def postPresence(): try: from json import dumps #jsondata = {'longitude': '12.345678', 'latitude': '34.5677889', 'how': 'nonCoT', 'name': 'testing123'} jsondata = request.get_json(force=True) jsonobj = JsonController().serialize_presence_post(jsondata) Presence = SendPresenceController(jsonobj).getCoTObject() APIPipe.send(Presence) return Presence.modelObject.getuid(), 200 except Exception as e: return str(e), 500
def create_emergency(json_data: dict) -> object: """ @rtype: Event @param json_data: @type json_data: dict @return emergency_object: """ json_obj = JsonController().serialize_emergency_post(json_data) emergency_object = SendEmergencyController(json_obj).getCoTObject() return emergency_object
def create_presence(jsondata: dict) -> object: """ create a presence FTSModel Object from information specified in supplied Json argument @type: object @param jsondata: @return Event: @raise Exception: """ try: json_obj = JsonController().serialize_presence_post(jsondata) presence = SendPresenceController(json_obj).getCoTObject() return presence except Exception as e: raise e
def test_json_serializer_with_chat_adapter(self): from FreeTAKServer.controllers.serializers.api_adapters.api_adapters import ChatAdapter basejson = {"message": "testing", "sender": "apiuser"} jsonobj = JsonController().serialize_chat_post(basejson) simpleCoTObject = SendChatController(jsonobj).getCoTObject() xml_legacy = etree.fromstring(simpleCoTObject.xmlString) xml_legacy.attrib['uid'] = '123' xml_legacy.attrib['time'] = '24' xml_legacy.attrib['start'] = '849' xml_legacy.attrib['stale'] = '3333' newObject = ChatAdapter().from_api_to_fts_object(basejson) xml_updated = etree.fromstring(newObject.xmlString) xml_updated.attrib['uid'] = '123' xml_updated.attrib['time'] = '24' xml_updated.attrib['start'] = '849' xml_updated.attrib['stale'] = '3333' xml_legacy = etree.tostring(xml_legacy).decode() xml_updated = etree.tostring(xml_updated).decode() self.assertEqual(xml_legacy, xml_updated)
def test_json_serializer_with_emergency_adapter(self): from FreeTAKServer.controllers.RestMessageControllers.SendEmergencyController import SendEmergencyController from FreeTAKServer.controllers.serializers.api_adapters.api_adapters import EmergencyOnAdapter basejson = {"emergencyType": "911 Alert", "name": "test"} jsonobj = JsonController().serialize_emergency_post(basejson) EmergencyObject = SendEmergencyController(jsonobj).getCoTObject() xml_legacy = etree.fromstring(EmergencyObject.xmlString) xml_legacy.attrib['uid'] = '123' xml_legacy.attrib['time'] = '24' xml_legacy.attrib['start'] = '849' xml_legacy.attrib['stale'] = '3333' newObject = EmergencyOnAdapter().from_api_to_fts_object(basejson) xml_updated = etree.fromstring(newObject.xmlString) xml_updated.attrib['uid'] = '123' xml_updated.attrib['time'] = '24' xml_updated.attrib['start'] = '849' xml_updated.attrib['stale'] = '3333' xml_legacy = etree.tostring(xml_legacy).decode() xml_updated = etree.tostring(xml_updated).decode() self.assertEqual(xml_legacy, xml_updated)
def create_chat_to_all(json_data: dict) -> object: """ create a chat to all object """ json_obj = JsonController().serialize_chat_post(json_data) chat_object = SendChatController(json_obj).getCoTObject() return chat_object