class OnnistuuFi::Form

Attributes

options[R]

Public Class Methods

new(signer, options = {}) click to toggle source
# File lib/onnistuu_fi/form.rb, line 5
def initialize(signer, options = {})
  @signer = signer
  @options = options

  data = {
    stamp: @options.delete(:stamp) || Time.now,
    return_success: @options.delete(:return_success),
    document: @options.delete(:document),
    requirements: @options.delete(:requirements)
  }
  iv, signed_data = signer.encrypt(data)

  options[:iv] = iv
  options[:data] = signed_data
  validate_options!
end

Public Instance Methods

generate_html() click to toggle source
# File lib/onnistuu_fi/form.rb, line 22
def generate_html
  "<form action='#{API_ENDPOINT}' method='post'>
    #{fields.compact.join("\n")}
    <input type='hidden' name='padding' value='pkcs5' />
    <input type='hidden' name='cipher' value='rijndael-128' />
    #{@options[:button]}
  </form>"
end

Private Instance Methods

fields() click to toggle source
# File lib/onnistuu_fi/form.rb, line 37
def fields
  [:customer, :return_failure, :return_success, :data, :iv].map {|field_name|
    if options[field_name]
      hidden_field(field_name, options[field_name])
    end
  }
end
hidden_field(name, value) click to toggle source
# File lib/onnistuu_fi/form.rb, line 45
def hidden_field(name, value)
  "<input type='hidden' name='#{name.to_s}' value='#{value.to_s}' />"
end
validate_options!() click to toggle source
# File lib/onnistuu_fi/form.rb, line 33
def validate_options!
  # TODO
end