class Mautic::FormHelper

Attributes

data[W]
forward_ip[RW]
host[R]
url[R]

Public Class Methods

new(url, request = nil) click to toggle source
# File lib/mautic/form_helper.rb, line 15
def initialize(url, request = nil)
  @url = url

  @host = request&.host
  @forward_ip = request&.remote_ip
end
submit(url: nil, form: nil, request: nil, &block) click to toggle source

shortcut

# File lib/mautic/form_helper.rb, line 6
def self.submit(url: nil, form: nil, request: nil, &block)
  m = new(url || Mautic.config.mautic_url, request)
  m.send_data form, &block
end

Public Instance Methods

data() click to toggle source
# File lib/mautic/form_helper.rb, line 30
def data
  raise ArgumentError if @data.nil?
  defaults = {
    'submit' => '1',
    'return' => host,
    'domain' => host
  }
  defaults.merge(@data.to_h).inject({}){|mem, (name, value)| mem["mauticform[#{name}]"] = value; mem}
end
push()
Alias for: submit
send_data(form_id) { |collector| ... } click to toggle source
# File lib/mautic/form_helper.rb, line 22
def send_data(form_id, &block)
  @collector = OpenStruct.new(formId: form_id)
  yield @collector
  self.data = @collector.to_h

  push
end
submit() click to toggle source
# File lib/mautic/form_helper.rb, line 40
def submit
  uri = URI.parse(url)
  uri.path = '/form/submit'
  headers = {}
  headers.store 'X-Forwarded-For', forward_ip if forward_ip
  begin
    @response = RestClient.post uri.to_s, data, headers
  rescue RestClient::Found => e
    @response = e
  end

end
Also aliased as: push