Files
sure/app/controllers/api/v1/transfers_controller.rb
ghost 8abecf8a8d feat(exports): preserve transfer decisions (#1639)
* feat(exports): preserve transfer decisions

* fix(api): apply transfer date filters to both sides

* fix(api): refine transfer decision handling

* fix(api): align transfer decision schemas

* fix(api): use current context for transfer filters

* fix(api): include either side in transfer date filters

* fix(api): deduplicate transfer decision filters

* fix(api): guard transfer decision exports
2026-05-08 23:03:57 +02:00

41 lines
933 B
Ruby

# 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