class Gemgento::API::SOAP::Directory::Region

Public Class Methods

fetch_all() click to toggle source
# File lib/gemgento/api/soap/directory/region.rb, line 7
def self.fetch_all
  ::Gemgento::Country.all.each do |country|
    response = list(country.iso2_code)

    if response.success?
      response.body[:countries][:item].each do |region|
        sync_magento_to_local(region, country)
      end
    end

  end
end
list(country) click to toggle source
# File lib/gemgento/api/soap/directory/region.rb, line 20
def self.list(country)
  response = MagentoApi.create_call(:directory_region_list, {country: country})

  if response.success?
    if response.body[:countries][:item].nil?
      response.body[:countries][:item] = []
    elsif !response.body[:countries][:item].is_a? Array
      response.body[:countries][:item] = [response.body[:countries][:item]]
    end
  end

  return response
end

Private Class Methods

sync_magento_to_local(source, country) click to toggle source

Save Magento product attribute set to local

# File lib/gemgento/api/soap/directory/region.rb, line 37
def self.sync_magento_to_local(source, country)
  region = Gemgento::Region.where(magento_id: source[:region_id]).first_or_initialize
  region.magento_id = source[:region_id]
  region.code = source[:code]
  region.name = source[:name]
  region.country = country
  region.save
end