Sha256: c8b0e07d71b6b38103de4d57e539e21e9f4a71108b32ea58d392027ad287fe17

Contents?: true

Size: 1.21 KB

Versions: 3

Compression:

Stored size: 1.21 KB

Contents

module TrakioClient
  class Company < EndPoint

    def run p = {}
      properties = p[:properties] || {}
      company_id = p[:company_id] || self.company_id
      check_parameters company_id, properties, (p[:people_distinct_ids] || [])

      params = {
        company_id: company_id,
        properties: properties,
      }
      distinct_ids = distinct_ids_from_params p
      params[:people_distinct_ids] = distinct_ids unless distinct_ids.empty?

      send_request 'company', params
    end

    def distinct_ids_from_params p
      ids = p[:people_distinct_ids] || []
      distinct_id = p[:distinct_id] || self.distinct_id
      ids << distinct_id if distinct_id
      ids.reject!(&:nil?)
      ids.map!(&:to_s)
      ids
    end

    def check_parameters company_id, properties, distinct_ids
      if !company_id
        raise Exceptions::MissingParameter.new('The `company_id` parameter must be provided.')
      end
      if !properties.is_a?(Hash)
        raise Exceptions::InvalidParameter.new("The `properties` parameter must be a hash.")
      end
      if !distinct_ids.is_a?(Array)
        raise Exceptions::InvalidParameter.new('The `people_distinct_ids` parameter must be an array.')
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
trakio-ruby-0.2.3 lib/trakio_client/company.rb
trakio-ruby-0.2.2 lib/trakio_client/company.rb
trakio-ruby-0.2.1 lib/trakio_client/company.rb