class RajaOngkir::Helper

Helper for RajaOngkir::Client

Attributes

api_key[RW]

Public Class Methods

build_costs_query(origin_id, destination_id, grams, courier) click to toggle source
# File lib/raja_ongkir/helper.rb, line 14
def self.build_costs_query(origin_id, destination_id, grams, courier)
  {
    headers: {
      'key' => api_key,
      'content-type' => 'application/x-www-form-urlencoded'
    },
    body: "origin=#{origin_id}&destination=#{destination_id}&" \
    "weight=#{grams}&courier=#{courier}"
  }
end
build_query(query = {}) click to toggle source
# File lib/raja_ongkir/helper.rb, line 41
def build_query(query = {})
  query ||= {}
  { query: query, headers: { 'key' => api_key } }
end
filter_by_keyword(items, q) click to toggle source
# File lib/raja_ongkir/helper.rb, line 53
def filter_by_keyword(items, q)
  item = items.first
  if item['city_name']
    key = 'city_name'
  elsif item['province']
    key = 'province'
  end
  items.select do |p|
    p[key].downcase =~ /#{Regexp.quote(q.downcase)}/
  end
end
items_from_resp(response) click to toggle source
# File lib/raja_ongkir/helper.rb, line 46
def items_from_resp(response)
  status = response['rajaongkir']['status']
  items = response['rajaongkir']['results']
  return items if status['code'] >= 200 && status['code'] < 300
  raise "#{status['description']} CODE #{status['code']}"
end
sanitize_costs_params(origin_id, destination_id, grams, courier) click to toggle source
# File lib/raja_ongkir/helper.rb, line 5
def self.sanitize_costs_params(origin_id, destination_id, grams, courier)
  origin_id = origin_id.to_i
  destination_id = destination_id.to_i
  grams = grams.to_i
  raise 'origin_id, destination_id, and grams must be a positive Integer' if
  origin_id <= 0 || destination_id <= 0 || grams <= 0
  [origin_id, destination_id, grams, courier]
end
sanitize_params(q, options) click to toggle source

rubocop:disable Metrics/AbcSize rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity

# File lib/raja_ongkir/helper.rb, line 27
def self.sanitize_params(q, options)
  return [nil, options.merge(q)] if
  options.length <= 0 && q && q.is_a?(Hash)
  raise 'Provided q must be a String' if
  (options.length <= 0 && q && !q.is_a?(String)) ||
  (!options.empty? && !q.nil? && !q.is_a?(String))

  [q, options]
end