Sha256: 64f31bcfa9a7a6e2e98f90bdf5ed45742b2519937a58b53ff0eef8330dc8aab0

Contents?: true

Size: 1.14 KB

Versions: 5

Compression:

Stored size: 1.14 KB

Contents

module Workarea
  module Emarsys
    class Contact
      attr_reader :model, :options

      def initialize(model, options = {})
        @model = model
        @options = options
      end

      # @return Hash
      def to_h
        user_data = {
          "1" => contact_model.first_name,
          "2" => contact_model.last_name,
          "3" => contact_model.email
        }

        if address.present?
          address_data = {
            "10" => address.street,
            "11" => address.city,
            "12" => address.region,
            "13" => address.postal_code,
            "14" => ::Emarsys::Country.new.find_code(address.country.to_s),
            "15" => address.phone_number
          }

          user_data.merge!(address_data)
        end

        user_data
      end

      private

        def address
          options[:address]
        end

        def contact_from
          options[:contact_from]
        end

        def contact_model
          if contact_from == "user"
            Contact::User.new(model)
          elsif contact_from == "order"
            Contact::Order.new(model)
          end
        end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
workarea-emarsys-1.0.4 app/services/workarea/emarsys/contact.rb
workarea-emarsys-2.0.1 app/services/workarea/emarsys/contact.rb
workarea-emarsys-2.0.0 app/services/emarsys/contact.rb
workarea-emarsys-1.1.0 app/services/emarsys/contact.rb
workarea-emarsys-1.0.3 app/services/emarsys/contact.rb