diff --git a/app/graphql/inputs/deposit_order_filter_input.rb b/app/graphql/inputs/deposit_order_filter_input.rb new file mode 100644 index 0000000..b1ddab8 --- /dev/null +++ b/app/graphql/inputs/deposit_order_filter_input.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true +module Inputs + class DepositOrderFilterInput < Types::BaseInputObject + argument :status, [Types::ProcessStatusEnum], required: false + end +end diff --git a/app/graphql/types/query_type.rb b/app/graphql/types/query_type.rb index 9d41d4f..48ae7f8 100644 --- a/app/graphql/types/query_type.rb +++ b/app/graphql/types/query_type.rb @@ -32,9 +32,13 @@ module Types ransack(scope, filter) end - field :deposit_orders, DepositOrderType.connection_type, null: false - def deposit_orders - Pundit.policy_scope(current_user, DepositOrder) + field :deposit_orders, DepositOrderType.connection_type, null: false do + argument :filter, Inputs::DepositOrderFilterInput, required: false + end + + def deposit_orders(filter: nil) + scope = Pundit.policy_scope(current_user, DepositOrder) + scope.where(status: filter.status) if filter&.status end end end diff --git a/app/javascript/__generated__/schema.graphql b/app/javascript/__generated__/schema.graphql index 29a8a31..5b9dc6b 100644 --- a/app/javascript/__generated__/schema.graphql +++ b/app/javascript/__generated__/schema.graphql @@ -211,6 +211,10 @@ type DepositOrderEdge { node: DepositOrder! } +input DepositOrderFilterInput { + status: [ProcessStatus!] +} + type FiatBalance implements Node { amountCents: Int! amountCurrency: String! @@ -335,6 +339,7 @@ type Query { Returns the elements in the list that come before the specified cursor. """ before: String + filter: DepositOrderFilterInput """ Returns the first _n_ elements from the list.