35 lines
1.3 KiB
Ruby
35 lines
1.3 KiB
Ruby
# encoding: UTF-8
|
|
# frozen_string_literal: true
|
|
|
|
module API
|
|
module V2
|
|
module Management
|
|
class TradingFees < Grape::API
|
|
desc 'Returns trading_fees table as paginated collection' do
|
|
@settings[:scope] = :read_trading_fees
|
|
end
|
|
params do
|
|
optional :group,
|
|
type: String,
|
|
desc: 'Member group'
|
|
optional :market_id,
|
|
type: String,
|
|
desc: 'Market id',
|
|
values: { value: -> { ::Market.ids.append(::TradingFee::ANY) },
|
|
message: 'Market does not exist' }
|
|
optional :page, type: Integer, default: 1, integer_gt_zero: true, desc: 'The page number (defaults to 1).'
|
|
optional :limit, type: Integer, default: 100, range: 1..1000, desc: 'The number of objects per page (defaults to 100, maximum is 1000).'
|
|
end
|
|
post '/fee_schedule/trading_fees' do
|
|
TradingFee
|
|
.order(id: :desc)
|
|
.tap { |t| t.where!(market_id: params[:market_id]) if params[:market_id] }
|
|
.tap { |t| t.where!(group: params[:group]) if params[:group] }
|
|
.tap { |q| present paginate(q), with: API::V2::Entities::TradingFee }
|
|
status 200
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|