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)
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)
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)