# frozen_string_literal: true class Api::V1::TransfersController < Api::V1::BaseController include Pagy::Backend include Api::V1::TransferDecisionFiltering before_action :ensure_read_scope before_action :set_transfer, only: :show def index transfers_query = apply_transfer_decision_filters(transfers_scope, status_model: Transfer).order(created_at: :desc) @per_page = safe_per_page_param @pagy, @transfers = pagy( transfers_query, page: safe_page_param, limit: @per_page ) render :index rescue Api::V1::TransferDecisionFiltering::InvalidFilterError => e render_validation_error(e.message) end def show render :show end private def set_transfer raise ActiveRecord::RecordNotFound unless valid_uuid?(params[:id]) @transfer = transfers_scope.find(params[:id]) end def transfers_scope transfer_decision_scope(Transfer) end end