Exemple #1
0
 def prepare_response(self, xml, response=None):
     if self.is_xml():
         return xml
     if response is None:
         response = Response.parsexml(xml)
     if self.is_dict():
         return response.data
     if self.is_json():
         return json.dumps(response.data)
Exemple #2
0
    def perform(self, request, relogin=None):
        try:
            query = self.get_query()
            reply = request(query)
            if relogin is None:
                return self.prepare_response(reply)

            response = Response.parsexml(reply)
            if self.needs_relogin(response):
                response = None
                relogin()
                reply = request(query)
            return self.prepare_response(reply, response)
        except Exception as e:
            return self.prepare_error(e)
Exemple #3
0
    def perform(self, request, relogin=None):
        try:
            query = self.get_query()
            reply = request(query)
            if relogin is None:
                return self.prepare_response(reply)

            ### TODO: FIXME relogin is buggy because of 2002 can happen on different occasions
            response = Response.parsexml(reply)
            if response.data.get('result_code', '0') == '2002':
                response = None
                relogin()
                reply = request(query)
            return self.prepare_response(reply, response)
        except Exception as e:
            return self.prepare_error(e)