2019-07-30 21:29:24 +00:00
# frozen_string_literal: true
2018-03-25 16:15:39 +00:00
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
2018-03-25 17:30:42 +00:00
module InsertDirectDebitDetail
def self . execute ( params )
supporter = Supporter . find ( params [ :supporter_id ] )
direct_debit_detail = { }
begin
2019-07-30 21:29:24 +00:00
DirectDebitDetail . transaction do
2018-03-25 17:30:42 +00:00
direct_debit_detail = DirectDebitDetail . create (
bic : params [ :sepa_params ] [ :bic ] ,
iban : params [ :sepa_params ] [ :iban ] ,
account_holder_name : params [ :sepa_params ] [ :name ] ,
holder : supporter
)
2019-07-30 21:29:24 +00:00
end
2018-03-25 17:30:42 +00:00
rescue ActiveRecord :: ActiveRecordError = > e
2019-07-30 21:29:24 +00:00
return { json : { error : " Oops! There was an error saving your direct debit details, and it did not complete. Please try again in a moment. Error: #{ e } " } , status : :unprocessable_entity }
2018-03-25 17:30:42 +00:00
end
2019-07-30 21:29:24 +00:00
{ status : :ok , json : direct_debit_detail }
2018-03-25 17:30:42 +00:00
end
end