class Gemgento::API::SOAP::Directory::Country

Public Class Methods

fetch_all() click to toggle source

Fetch all Countries from Magento and sync them to Gemgento.

@return [Void]

# File lib/gemgento/api/soap/directory/country.rb, line 10
def self.fetch_all
  response = list

  if response.success?
    response.body[:countries][:item].each do |country|
      sync_magento_to_local(country)
    end
  end
end
list() click to toggle source

Get a list of Countries from Magento.

@return [Gemgento::MagentoResponse]

# File lib/gemgento/api/soap/directory/country.rb, line 23
def self.list
  response = MagentoApi.create_call(:directory_country_list)

  if response.success? && !response.body[:countries][:item].is_a?(Array)
    response.body[:countries][:item] = [response.body[:countries][:item]]
  end

  return response
end

Private Class Methods

sync_magento_to_local(source) click to toggle source

Save Magento product attribute set to local

# File lib/gemgento/api/soap/directory/country.rb, line 36
def self.sync_magento_to_local(source)
  country = Gemgento::Country.where(magento_id: source[:country_id]).first_or_initialize
  country.magento_id = source[:country_id]
  country.iso2_code = source[:iso2_code]
  country.iso3_code = source[:iso3_code]
  country.name = source[:name]
  country.save
end