Sha256: 6874fae26efa564ba4a04b4b417dda16287e0dde5c3f67c42ed87ada838cdccd

Contents?: true

Size: 1.2 KB

Versions: 26

Compression:

Stored size: 1.2 KB

Contents

require 'rest-client'
module Mautic
  class FormHelper

    # shortcut
    def self.submit(url: nil, form: nil, request: nil, &block)
      m = new(url || Mautic.config.mautic_url, request)
      m.send_data form, &block
    end

    attr_reader :url, :host
    attr_accessor :forward_ip
    attr_writer :data

    def initialize(url, request = nil)
      @url = url

      @host = request&.host
      @forward_ip = request&.remote_ip
    end

    def send_data(form_id, &block)
      @collector = OpenStruct.new(formId: form_id)
      yield @collector
      self.data = @collector.to_h

      push
    end

    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

    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
    alias_method :push, :submit
  end

end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
mautic-3.1.0 lib/mautic/form_helper.rb
mautic-3.0.0 lib/mautic/form_helper.rb
mautic-2.6.1 lib/mautic/form_helper.rb
mautic-2.6.0 lib/mautic/form_helper.rb
mautic-2.5.0 lib/mautic/form_helper.rb
mautic-2.4.0 lib/mautic/form_helper.rb
mautic-2.3.11 lib/mautic/form_helper.rb
mautic-2.3.10 lib/mautic/form_helper.rb
mautic-2.3.9 lib/mautic/form_helper.rb
mautic-2.3.8 lib/mautic/form_helper.rb
mautic-2.3.7 lib/mautic/form_helper.rb
mautic-2.3.6 lib/mautic/form_helper.rb
mautic-2.3.5 lib/mautic/form_helper.rb
mautic-2.3.4 lib/mautic/form_helper.rb
mautic-2.3.3 lib/mautic/form_helper.rb
mautic-2.3.1 lib/mautic/form_helper.rb
mautic-2.2.2 lib/mautic/form_helper.rb
mautic-2.1.1 lib/mautic/form_helper.rb
mautic-0.1.8 lib/mautic/form_helper.rb
mautic-0.1.7 lib/mautic/form_helper.rb