class NeverBounce::API::Request::JobsCreate

Attributes

allow_manual_review[RW]

@return [Boolean]

auto_parse[RW]

@return [Boolean]

auto_start[RW]

@return [Boolean]

callback_headers[RW]

@return [Hash]

callback_url[RW]

@return [String]

filename[RW]

@return [String]

historical[RW]

@return [Boolean]

input[RW]

Input specification. @return [String] URL if input_location is "remote". @return [Array<Array<email, name>>] Structure if <tt>input_location is “supplied”.

input_location[RW]

@return [String]

run_sample[RW]

@return [Boolean]

Public Class Methods

http_method() click to toggle source

@return [Symbol]

# File lib/never_bounce/api/request/jobs_create.rb, line 43
def self.http_method
  :post
end
path() click to toggle source

@return [String]

# File lib/never_bounce/api/request/jobs_create.rb, line 48
def self.path
  "jobs/create"
end
response_klass() click to toggle source

@return [Response::JobsCreate]

# File lib/never_bounce/api/request/jobs_create.rb, line 53
def self.response_klass
  Response::JobsCreate
end

Public Instance Methods

leverage_historical() click to toggle source
# File lib/never_bounce/api/request/jobs_create.rb, line 38
def leverage_historical
  defined?(@historical) ? @historical : true
end
mode_h() click to toggle source

Return a ready-to-merge mode attributes hash. @return [Hash]

# File lib/never_bounce/api/request/jobs_create.rb, line 59
def mode_h
  @mode_h ||= {}.tap do |_|
    unless (v = auto_start).nil?
      _[:auto_start] = v
    end

    unless (v = auto_parse).nil?
      _[:auto_parse] = v
    end

    unless (v = run_sample).nil?
      _[:run_sample] = v
    end

    unless (v = allow_manual_review).nil?
      _[:allow_manual_review] = v
    end

    unless (v = callback_url).nil?
      _[:callback_url] = v
    end

    unless (v = callback_headers).nil?
      _[:callback_headers] = v
    end

    unless historical.nil?
      _[:request_meta_data] = {leverage_historical_data: leverage_historical}
    end
  end
end
to_h() click to toggle source

@return [Hash]

# File lib/never_bounce/api/request/jobs_create.rb, line 92
def to_h
  input = require_attr(:input)
  input_location = require_attr(:input_location)

  # Validate `input_location` and `input`.

  if not ["remote_url", "supplied"].include? input_location
    raise AttributeError, "Unknown `input_location`: #{input_location.inspect}"
  end

  if input_location == "supplied"
    raise AttributeError, "Invalid `input` for `input_location` == #{input_location.inspect}: #{input.inspect}" if not input.is_a? Array

    # Skim through elements of `input`, raise if invalid structure detected, with details.
    input.each do |elem|
      em = [AttributeError, "Invalid `input` element: #{elem.inspect}"]
      raise(*em) unless elem.is_a? Array
      raise(*em) unless elem.map(&:class) == [String, String]
    end
  end

  # Result.
  {
    input: input,
    input_location: input_location,
    filename: require_attr(:filename),
    key: require_attr(:api_key),
  }.merge(mode_h)
end