lib/peddler/marketplace.rb in peddler-1.6.5 vs lib/peddler/marketplace.rb in peddler-1.6.6
- old
+ new
@@ -1,59 +1,27 @@
# frozen_string_literal: true
module Peddler
# @api private
# @see https://docs.developer.amazonservices.com/en_US/dev_guide/DG_Endpoints.html
- class Marketplace
- IDS = {
- 'CA' => 'A2EUQ1WTGCTBG2',
- 'MX' => 'A1AM78C64UM0Y8',
- 'US' => 'ATVPDKIKX0DER',
- 'BR' => 'A2Q3Y263D00KWC',
- 'DE' => 'A1PA6795UKMFR9',
- 'ES' => 'A1RKKUPIHCS9HS',
- 'FR' => 'A13V1IB3VIYZZH',
- 'IT' => 'APJ6JRA9NG5V4',
- 'UK' => 'A1F83G8C2ARO7P',
- 'IN' => 'A21TJRUUN4KGV',
- 'AU' => 'A39IBJ37TRP1C6',
- 'JP' => 'A1VC38T7YXB528',
- 'CN' => 'AAHKV2X7AFYLW'
- }.freeze
+ Marketplace = Struct.new(:id, :country_code, :host) do
+ class << self
+ attr_reader :all
- HOSTS = {
- 'CA' => 'mws.amazonservices.com',
- 'MX' => 'mws.amazonservices.com',
- 'US' => 'mws.amazonservices.com',
- 'BR' => 'mws.amazonservices.com',
- 'DE' => 'mws-eu.amazonservices.com',
- 'ES' => 'mws-eu.amazonservices.com',
- 'FR' => 'mws-eu.amazonservices.com',
- 'IT' => 'mws-eu.amazonservices.com',
- 'UK' => 'mws-eu.amazonservices.com',
- 'IN' => 'mws.amazonservices.in',
- 'AU' => 'mws.amazonservices.com.au',
- 'JP' => 'mws.amazonservices.jp',
- 'CN' => 'mws.amazonservices.com.cn'
- }.freeze
+ def find(id)
+ all.find { |marketplace| marketplace.id == id } || begin
+ message = if id
+ %("#{id}" is not a valid MarketplaceId)
+ else
+ 'missing MarketplaceId'
+ end
- BadId = Class.new(StandardError)
-
- attr_reader :id
-
- def initialize(id)
- @id = id || raise(BadId, 'missing MarketplaceId')
+ raise ArgumentError, message
+ end
+ end
end
- def country_code
- @country_code ||= find_country_code
- end
-
- def host
- @host ||= find_host
- end
-
# Caveat: We use the supersets Windows-31J and CP1252 in place of Shift_JIS
# and ISO 8859-1 respectively to handle edge cases where latter will not
# support some characters. The supersets should be safe to use as drop-in
# replacements.
def encoding
@@ -65,16 +33,24 @@
else
'CP1252'
end
end
- private
-
- def find_country_code
- IDS.key(id) || raise(BadId, %("#{id}" is not a valid MarketplaceId))
- end
-
- def find_host
- HOSTS[country_code]
+ @all = [
+ ['A2EUQ1WTGCTBG2', 'CA', 'mws.amazonservices.com'],
+ ['A1AM78C64UM0Y8', 'MX', 'mws.amazonservices.com'],
+ ['ATVPDKIKX0DER', 'US', 'mws.amazonservices.com'],
+ ['A2Q3Y263D00KWC', 'BR', 'mws.amazonservices.com'],
+ ['A1PA6795UKMFR9', 'DE', 'mws-eu.amazonservices.com'],
+ ['A1RKKUPIHCS9HS', 'ES', 'mws-eu.amazonservices.com'],
+ ['A13V1IB3VIYZZH', 'FR', 'mws-eu.amazonservices.com'],
+ ['APJ6JRA9NG5V4', 'IT', 'mws-eu.amazonservices.com'],
+ ['A1F83G8C2ARO7P', 'UK', 'mws-eu.amazonservices.com'],
+ ['A21TJRUUN4KGV', 'IN', 'mws.amazonservices.in'],
+ ['A39IBJ37TRP1C6', 'AU', 'mws.amazonservices.com.au'],
+ ['A1VC38T7YXB528', 'JP', 'mws.amazonservices.jp'],
+ ['AAHKV2X7AFYLW', 'CN', 'mws.amazonservices.com.cn']
+ ].map do |values|
+ new(*values)
end
end
end