Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Return Pix payments in get_account_statements() #223

Closed
wants to merge 1 commit into from

Conversation

gutobenn
Copy link

@gutobenn gutobenn commented Apr 2, 2021

Seguindo a conversa iniciada em #194, fiz a extração do valor e do nome do destinatário para as transferências realizadas via Pix. Optei por adicionar essas duas informações à transação tomando como base os campos do evento TransferOutEvent.
Na conta que utilizei para teste não encontrei nenhum GenericFeedEvent que não fosse uma transferência Pix, mas na dúvida (principalmente por causa do nome do evento) achei melhor adicionar uma verificação para garantir que o título é algum dos valores definidos em PIX_DEBIT_TITLES.

@coveralls
Copy link

Coverage Status

Coverage decreased (-1.08%) to 98.645% when pulling cf2383c on gutobenn:pix_events into dd77a81 on andreroggeri:master.

@andreroggeri
Copy link
Owner

Fala @gutobenn, obrigado pela contribuição.

Uma dúvida, teria como diferenciar uma transação pix de entrada de uma de saída ? Imagino que sim pq o app consegue diferenciar...

@@ -154,7 +162,14 @@ def get_account_feed(self):

def get_account_statements(self):
feed = self.get_account_feed()
return list(filter(lambda x: x['__typename'] in PAYMENT_EVENT_TYPES, feed))
statements = list(filter(lambda x: x['__typename'] in PAYMENT_EVENT_TYPES or (x['__typename'] == 'GenericFeedEvent' and x['title'] in PIX_DEBIT_TITLES), feed))
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Talvez para manter esse código mais limpo poderia fazer o seguinte:

def get_account_statements(self):
  feed = self.get_account_feed()
  transformed_pix_transactions = map(parse_pix_transaction, feed)
  return list(filter(lambda x: x['__typename'] in PAYMENT_EVENT_TYPES, transformed_pix_transactions))

parse_pix_transaction seria uma função utilitaria que poderia estar em outro arquivo que faz a lógica de verificar o title mais o __typename. Aqui também seria interessante alterar o __typename para (assim poderíamos diferenciar se o valor é positivo ou negativo):

  • PixTransferOutEvent (Transferencia enviada)
  • PixTransferInEvent (Transferencia recebida)
  • PixTransferOutReversalEvent (Reembolso)

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Também adicionar um teste pra validar a implementação

andreroggeri added a commit that referenced this pull request Jun 4, 2021
andreroggeri added a commit that referenced this pull request Jun 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants