lib/peddler/marketplace.rb in peddler-2.1.1 vs lib/peddler/marketplace.rb in peddler-2.3.0

- old
+ new

@@ -1,31 +1,26 @@ # frozen_string_literal: true module Peddler - # @api private + # @!visibility private # @see https://docs.developer.amazonservices.com/en_US/dev_guide/DG_Endpoints.html - Marketplace = Struct.new(:id, :country_code, :host) do + class Marketplace class << self attr_reader :all def find(key) - marketplace = if key.nil? - missing_key! - elsif key.size == 2 - find_by_country_code(key) - else - find_by_id(key) - end + missing_key! unless key + marketplace = key.size == 2 ? find_by_country(key) : find_by_id(key) marketplace || not_found!(key) end private - def find_by_country_code(country_code) - country_code = 'GB' if country_code == 'UK' - all.find { |marketplace| marketplace.country_code == country_code } + def find_by_country(code) + code = 'GB' if code == 'UK' + all.find { |marketplace| marketplace.country_code == code } end def find_by_id(id) all.find { |marketplace| marketplace.id == id } end @@ -37,35 +32,44 @@ def not_found!(country_code) raise ArgumentError, %("#{country_code}" is not a valid marketplace) end end + attr_reader :id, :country_code, :host + + def initialize(id, country_code, host) + @id = id + @country_code = country_code + @host = host + end + def encoding case country_code when 'JP' 'Windows-31J' - when 'CN' - 'UTF-16' else 'CP1252' end end @all = [ + ['A2Q3Y263D00KWC', 'BR', 'mws.amazonservices.com'], ['A2EUQ1WTGCTBG2', 'CA', 'mws.amazonservices.com'], ['A1AM78C64UM0Y8', 'MX', 'mws.amazonservices.com'], ['ATVPDKIKX0DER', 'US', 'mws.amazonservices.com'], - ['A2Q3Y263D00KWC', 'BR', 'mws.amazonservices.com'], + ['A2VIGQ35RCS4UG', 'AE', 'mws.amazonservices.ae'], ['A1PA6795UKMFR9', 'DE', 'mws-eu.amazonservices.com'], + ['ARBP9OOSHTCHU', 'EG', 'mws-eu.amazonservices.com'], ['A1RKKUPIHCS9HS', 'ES', 'mws-eu.amazonservices.com'], ['A13V1IB3VIYZZH', 'FR', 'mws-eu.amazonservices.com'], - ['APJ6JRA9NG5V4', 'IT', 'mws-eu.amazonservices.com'], ['A1F83G8C2ARO7P', 'GB', 'mws-eu.amazonservices.com'], - ['A33AVAJ2PDY3EV', 'TR', 'mws-eu.amazonservices.com'], ['A21TJRUUN4KGV', 'IN', 'mws.amazonservices.in'], + ['APJ6JRA9NG5V4', 'IT', 'mws-eu.amazonservices.com'], + ['A17E79C6D8DWNP', 'SA', 'mws-eu.amazonservices.com'], + ['A33AVAJ2PDY3EV', 'TR', 'mws-eu.amazonservices.com'], + ['A19VAU5U5O7RUS', 'SG', 'mws-fe.amazonservices.com'], ['A39IBJ37TRP1C6', 'AU', 'mws.amazonservices.com.au'], - ['A1VC38T7YXB528', 'JP', 'mws.amazonservices.jp'], - ['AAHKV2X7AFYLW', 'CN', 'mws.amazonservices.com.cn'] + ['A1VC38T7YXB528', 'JP', 'mws.amazonservices.jp'] ].map do |values| new(*values) end end end