def add_data(self, el): """ Turn a XML element into a class attribute as needed. """ from apirequests import Request node = DataTree.parse(xml=el, engine=self.engine) if isinstance(node, Request): self.request = node elif isinstance(node, Authorization): if hasattr(self, 'auth_list'): self.auths.append(node) else: assert not hasattr(self, 'auth') self.auth = node elif isinstance(node, AccountingOp): if hasattr(self, 'op_list'): self.ops.append(node) else: assert not hasattr(self, 'op') self.op = node elif isinstance(node, CreditRestoreResult): self.credit_restore = node elif isinstance(node, FormerResultCheck): self.former_req = node elif isinstance(node, AcctOpList): self.op_list = node self.ops = [] elif isinstance(node, AuthListTag) or isinstance( node, OrderStatus): self.auth_list = node self.auths = [] else: raise "Not implemented yet", el._name
def __init__(self, *args, **kwargs): super(AccountingOp, self).__init__(*args, **kwargs) xml = self.xml self.id = str(xml.IDtrans) self.request_ts = ParseDateTime(str(xml.TimestampRic)) self.processing_ts = ParseDateTime(str(xml.TimestampElab)) self.type = OperationType.parse(str(xml.TipoOp)) self.amount = Amount.parse(str(xml.Importo)) self.status = AcctStatus.parse(str(xml.Stato)) self.auth = DataTree.parse(xml.Autorizzazione, engine=self.engine)