# frozen_string_literal: true # License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later # Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE module InsertDirectDebitDetail def self.execute(params) supporter = Supporter.find(params[:supporter_id]) direct_debit_detail = {} begin DirectDebitDetail.transaction do direct_debit_detail = DirectDebitDetail.create( bic: params[:sepa_params][:bic], iban: params[:sepa_params][:iban], account_holder_name: params[:sepa_params][:name], holder: supporter ) end rescue ActiveRecord::ActiveRecordError => e 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 } end { status: :ok, json: direct_debit_detail } end end