Class: App::EbayFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/core/ebay_factory.rb

Constant Summary collapse

CONFIGURATION_PREFIX =
'ebay_'

Class Method Summary collapse

Class Method Details

.get(sandbox_production = App::Ebay::SANDBOX, api_token = nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/core/ebay_factory.rb', line 9

def self.get(sandbox_production = App::Ebay::SANDBOX, api_token = nil)

    if api_token.nil?
        raise RuntimeError, 'You must provide an API token.'
    end

    if api_token =~ /\Aebay_\S+\z/i
        api_token_final = api_token
    else
        api_token_final = "#{CONFIGURATION_PREFIX}#{api_token}"
    end

    if api_token.nil? || App::Config::param_exists(api_token_final) == false
        App::Terminal::error('Invalid API Token', "The #{App::Terminal::format_highlight('config parameter')} #{App::Terminal::format_invalid(api_token_final)} doesn't exist in: #{App::Terminal::format_directory(ConfigUnique::CONFIG_FILE)}", true)
    end

    case sandbox_production
        when App::Ebay::SANDBOX
            app_key = App::Config.param(ConfigUnique::EBAY_SANDBOX_APP)
            dev_key = App::Config.param(ConfigUnique::EBAY_SANDBOX_DEV)
            cert_key = App::Config.param(ConfigUnique::EBAY_SANDBOX_CERT)
            runame = App::Config.param(ConfigUnique::EBAY_SANDBOX_RUNAME)
            api_url = App::Ebay::SANDBOX_URL
        when App::Ebay::PRODUCTION
            app_key = App::Config.param(ConfigUnique::EBAY_PRODUCTION_APP)
            dev_key = App::Config.param(ConfigUnique::EBAY_PRODUCTION_DEV)
            cert_key = App::Config.param(ConfigUnique::EBAY_PRODUCTION_CERT)
            runame = App::Config.param(ConfigUnique::EBAY_PRODUCTION_RUNAME)
            api_url = App::Ebay::PRODUCTION_URL
        else
            raise RuntimeError, "Must specify either '#{App::Ebay::SANDBOX}' or '#{App::Ebay::PRODUCTION}', you passed: #{sandbox_production}"
    end

    App::Ebay.new(app_key, dev_key, cert_key, runame, api_url, api_token)

end