Example #1
0
 def from_api_to_fts_object(self, api_json: dict) -> Types.specific_cot:
     from FreeTAKServer.model.SpecificCoT.SendEmergency import SendEmergency
     serialized_json = self.serialize_initial_json(api_json)
     CoTObject = self._create_cot_object(serialized_json,
                                         Event.emergecyOn(),
                                         SendEmergency())
     return CoTObject
    def send_active_emergencys(self, client):
        """
        this function needs to be cleaned up however it's functionality is as follows
        it query's the DB for active emergency's at which point it iterates over all
        emergency objects, transforms them into model objects and then xmlStrings
        finally the object is sent to the client.
        """
        try:

            from FreeTAKServer.model.SpecificCoT.SendEmergency import SendEmergency
            from lxml import etree
            emergencys = self.dbController.query_ActiveEmergency()
            for emergency in emergencys:
                emergencyobj = SendEmergency()
                modelObject = Event.emergecyOn()

                filledModelObject = SqlAlchemyObjectController(
                ).convert_sqlalchemy_to_modelobject(emergency.event,
                                                    modelObject)
                # emergencyobj.setXmlString(XMLCoTController().serialize_model_to_CoT(filledModelObject))
                emergencyobj.setXmlString(
                    etree.tostring((XmlSerializer().from_fts_object_to_format(
                        filledModelObject))))
                print(emergencyobj.xmlString)
                emergencyobj.setModelObject(filledModelObject)
                SendDataController().sendDataInQueue(None, emergencyobj,
                                                     [client])

        except Exception as e:
            import traceback
            self.logger.error(traceback.format_exc())
            self.logger.error(
                'an exception has been thrown in sending active emergencies ' +
                str(e))
Example #3
0
 def __init__(self, json):
     if isinstance(json, EmergencyPost):
         tempObject = event.emergecyOn()
     elif isinstance(json, EmergencyDelete):
         tempObject = event.emergecyOff()
     else:
         raise Exception(
             'unsupported object type passed under json argument')
     object = SendEmergency()
     object.setModelObject(tempObject)
     object.modelObject = self._serializeJsonToModel(
         object.modelObject, json)
     object.setXmlString(XMLCoTController().serialize_model_to_CoT(
         object.modelObject))
     self.setCoTObject(object)
    def __init__(self, RawCoT):
        if RawCoT.status == 'on':
            tempObject = super().Event.emergecyOn()
            object = SendEmergency()
            object.status = 'on'
            self.fill_object(object, tempObject, RawCoT, addToDB=False)
            obj = self.getObject()
            DatabaseController().create_ActiveEmergency(obj.modelObject)

        elif RawCoT.status == 'off':
            tempObject = super().Event.emergecyOff()
            object = SendEmergency()
            object.status = 'off'
            self.fill_object(object, tempObject, RawCoT, addToDB=False)
            obj = self.getObject()
            DatabaseController().remove_ActiveEmergency(
                query=f'uid = "{obj.modelObject.uid}"')