From 251c5a8eb80c94bdf1f1f156425831047ab51a13 Mon Sep 17 00:00:00 2001 From: Rogerio Pontual <44991200+jyeshe@users.noreply.github.com> Date: Mon, 5 Sep 2022 19:17:56 +0900 Subject: [PATCH] fix: map recipient record when filtering by nft collection (#890) --- .../controllers/aexn_transfer_controller.ex | 8 ++++++-- lib/ae_mdw_web/views/aexn_view.ex | 11 ++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/ae_mdw_web/controllers/aexn_transfer_controller.ex b/lib/ae_mdw_web/controllers/aexn_transfer_controller.ex index 24847be65..67ae1e3db 100644 --- a/lib/ae_mdw_web/controllers/aexn_transfer_controller.ex +++ b/lib/ae_mdw_web/controllers/aexn_transfer_controller.ex @@ -120,7 +120,11 @@ defmodule AeMdwWeb.AexnTransferController do json(conn, transfers) end - defp contract_transfers_reply(%Conn{assigns: assigns} = conn, contract_id, tagged_account_pk) do + defp contract_transfers_reply( + %Conn{assigns: assigns} = conn, + contract_id, + {filter_by, _pk} = tagged_account_pk + ) do %{pagination: pagination, cursor: cursor, state: state} = assigns with {:ok, contract_pk} <- Validate.id(contract_id, [:contract_pubkey]), @@ -134,7 +138,7 @@ defmodule AeMdwWeb.AexnTransferController do cursor ) - data = Enum.map(transfers_keys, &contract_transfer_to_map(state, &1)) + data = Enum.map(transfers_keys, &contract_transfer_to_map(state, filter_by, &1)) paginate(conn, prev_cursor, data, next_cursor) else diff --git a/lib/ae_mdw_web/views/aexn_view.ex b/lib/ae_mdw_web/views/aexn_view.ex index 65e3120c2..f2904c7ec 100644 --- a/lib/ae_mdw_web/views/aexn_view.ex +++ b/lib/ae_mdw_web/views/aexn_view.ex @@ -96,14 +96,23 @@ defmodule AeMdwWeb.AexnView do def pair_transfer_to_map(state, {type, sender_pk, recipient_pk, call_txi, amount, log_idx}), do: do_transfer_to_map(state, {type, sender_pk, call_txi, recipient_pk, amount, log_idx}) - @spec contract_transfer_to_map(State.t(), contract_transfer_key()) :: map() + @spec contract_transfer_to_map(State.t(), :from | :to, contract_transfer_key()) :: map() def contract_transfer_to_map( state, + :from, {_create_txi, sender_pk, call_txi, recipient_pk, token_id, log_idx} ) do do_transfer_to_map(state, {:aex141, sender_pk, call_txi, recipient_pk, token_id, log_idx}) end + def contract_transfer_to_map( + state, + :to, + {_create_txi, recipient_pk, call_txi, sender_pk, token_id, log_idx} + ) do + do_transfer_to_map(state, {:aex141, sender_pk, call_txi, recipient_pk, token_id, log_idx}) + end + # # Private functions #