Sha256: 04aab9444c1f243ebc0c6cbe285eb8fed65ea22af468e4a16dfd5b083849bc54

Contents?: true

Size: 1002 Bytes

Versions: 3

Compression:

Stored size: 1002 Bytes

Contents

class <%= controller_class %> < ApplicationController
  def create
    @<%= payable %> = <%= payable_class %>.create!(create_params)
    srv = PuntoPagosRails::TransactionService.new(@<%= payable %>)

    if srv.create
      redirect_to(srv.process_url)
    else
      render_payment_error_view(srv.error)
    end
  end

  def notification
    response = PuntoPagosRails::TransactionService.notificate(params, request.headers)
    render(json: response)
  end

  def success
    @<%= payable %> = <%= payable %>_by_token
  end

  def error
    @<%= payable %> = <%= payable %>_by_token
    render_payment_error_view(I18n.t("punto_pagos_rails.errors.invalid_puntopagos_payment"))
  end

  private

  def render_payment_error_view(error_message)
    render("error", locals: { error_message: error_message })
  end

  def <%= payable %>_by_token
    @<%= payable %> ||= <%= payable_class %>.by_token(params[:token])
  end

  def create_params
    params.require(:<%= payable %>).permit(:amount)
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
punto_pagos_rails-1.0.2 lib/generators/punto_pagos_rails/payment_flow/templates/transactions_controller.rb.erb
punto_pagos_rails-1.0.1 lib/generators/punto_pagos_rails/payment_flow/templates/transactions_controller.rb.erb
punto_pagos_rails-1.0.0 lib/generators/punto_pagos_rails/payment_flow/templates/transactions_controller.rb.erb