omniauth-ebay 0.9.4 → 1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm --create use 1.9.3@omniauth-ebay
1
+ rvm --create use ruby-1.9.3-p362@omniauth-ebay
data/README.md CHANGED
@@ -17,13 +17,15 @@ Note: The examples are for a Rails 3 app.
17
17
 
18
18
  ```ruby
19
19
  Rails.application.config.middleware.use OmniAuth::Builder do
20
- provider :ebay, "runame", "devid", "appid", "certid", "siteid", "apiurl", "auth_type"
20
+ provider :ebay, "runame", "devid", "appid", "certid", "siteid", "environment", "auth_type"
21
21
  end
22
22
  ```
23
23
 
24
24
  Insert your app credentials in the given order. You can find out these details by going into your developer's account at [eBay DevZone](https://developer.ebay.com/DevZone/account/)
25
25
 
26
- `auth_type` - The only optional argument when initializing the strategy, by default it's configured to SSO(SingleSignOn),
26
+ `environment` - Defaults to `:production` and other valid option is `:sandbox`
27
+
28
+ `auth_type` - An optional argument when initializing the strategy, by default it's configured to SSO(SingleSignOn),
27
29
  and should be changed to AuthType::Simple (SignIn), as it's the standard option.
28
30
 
29
31
  * To use the strategy, you will need to access it's omniauth provider path: `/auth/ebay`. The callback phase path is the default one: `/auth/ebay/callback`.
@@ -13,7 +13,27 @@ module EbayAPI
13
13
  end
14
14
  end
15
15
 
16
- EBAY_LOGIN_URL = "https://signin.ebay.com/ws/eBayISAPI.dll"
16
+ EBAY_PRODUCTION_LOGIN_URL = "https://signin.ebay.com/ws/eBayISAPI.dll"
17
+ EBAY_SANDBOX_LOGIN_URL = "https://signin.sandbox.ebay.com/ws/eBayISAPI.dll"
18
+
19
+ EBAY_PRODUCTION_XML_API_URL = "https://api.ebay.com/ws/api.dll"
20
+ EBAY_SANDBOX_XML_API_URL = "https://api.sandbox.ebay.com/ws/api.dll"
21
+
22
+
23
+ def sandbox?
24
+ options.environment == :sandbox
25
+ end
26
+
27
+ def login_url
28
+ return EBAY_SANDBOX_LOGIN_URL if sandbox?
29
+ EBAY_PRODUCTION_LOGIN_URL
30
+ end
31
+
32
+ def api_url
33
+ return EBAY_SANDBOX_XML_API_URL if sandbox?
34
+ EBAY_PRODUCTION_XML_API_URL
35
+ end
36
+
17
37
  X_EBAY_API_REQUEST_CONTENT_TYPE = 'text/xml'
18
38
  X_EBAY_API_COMPATIBILITY_LEVEL = '675'
19
39
  X_EBAY_API_GETSESSIONID_CALL_NAME = 'GetSessionID'
@@ -83,7 +103,6 @@ module EbayAPI
83
103
  end
84
104
 
85
105
  def ebay_login_url(session_id, ruparams={})
86
- login_url = options.loginurl || EBAY_LOGIN_URL
87
106
  url = "#{login_url}?#{options.auth_type}&runame=#{options.runame}&#{session_id_field_name}=#{URI.escape(session_id).gsub('+', '%2B')}"
88
107
 
89
108
  ruparams[:internal_return_to] = internal_return_to if internal_return_to
@@ -97,7 +116,7 @@ module EbayAPI
97
116
 
98
117
  def api(call_name, request)
99
118
  headers = ebay_request_headers(call_name, request.length.to_s)
100
- url = URI.parse(options.apiurl)
119
+ url = URI.parse(api_url)
101
120
  req = Net::HTTP::Post.new(url.path, headers)
102
121
  http = Net::HTTP.new(url.host, url.port)
103
122
  http.use_ssl = true
@@ -1,5 +1,5 @@
1
1
  module OmniAuth
2
2
  module Ebay
3
- VERSION = "0.9.4"
3
+ VERSION = '1.0'
4
4
  end
5
5
  end
@@ -14,16 +14,15 @@ module OmniAuth
14
14
  SIMPLE_SID_FIELD_NAME = "SessId"
15
15
  end
16
16
 
17
- args [:runame, :devid, :appid, :certid, :siteid, :apiurl, :auth_type, :loginurl]
17
+ args [:runame, :devid, :appid, :certid, :siteid, :environment, :auth_type]
18
18
  option :name, "ebay"
19
19
  option :runame, nil
20
20
  option :devid, nil
21
21
  option :appid, nil
22
22
  option :certid, nil
23
23
  option :siteid, nil
24
- option :apiurl, nil
24
+ option :environment, :production
25
25
  option :auth_type, AuthType::SSO
26
- option :loginurl, nil
27
26
 
28
27
  uid { raw_info['EIASToken'] }
29
28
  info do
@@ -32,40 +32,62 @@ describe EbayAPI do
32
32
  subject.ebay_login_url(unescaped_session_id).should include("sid=#{CGI.escape(unescaped_session_id)}")
33
33
  end
34
34
 
35
- context :SingleSignOn do
36
- it "should return ebay login url with internal return to when internal_return_to given in request" do
35
+ context :sandbox do
36
+ it "should return the sandbox ebay login/api urls when sandbox environment is specified" do
37
37
  subject.stub(:internal_return_to) { internal_return_to }
38
38
  params = {}
39
39
  params[:internal_return_to] = internal_return_to
40
40
  params[:sid] = session_id
41
- subject.ebay_login_url(session_id).should == "#{EbayAPI::EBAY_LOGIN_URL}?#{singleSignOn}&runame=runame&sid=#{session_id}&ruparams=#{to_query(params)}"
42
- end
43
-
44
- it "should return ebay login url without internal return to when internal_return_to isn't given in request" do
45
- subject.stub(:internal_return_to) { false }
46
- params = {}
47
- params[:sid] = session_id
48
- subject.ebay_login_url(session_id).should == "#{EbayAPI::EBAY_LOGIN_URL}?#{singleSignOn}&runame=runame&sid=#{session_id}&ruparams=#{to_query(params)}"
41
+ subject.options.environment = :sandbox
42
+ subject.login_url.should == EbayAPI::EBAY_SANDBOX_LOGIN_URL
43
+ subject.api_url.should == EbayAPI::EBAY_SANDBOX_XML_API_URL
49
44
  end
50
45
  end
51
46
 
52
- context :SignIn do
53
- before :each do
54
- subject.options.auth_type = OmniAuth::Strategies::Ebay::AuthType::Simple
55
- end
56
- it "should return ebay login url with internal_return_to when internal_return_to given in request" do
47
+ context :production do
48
+ it "should return the production login/api urls when production environment is specified" do
57
49
  subject.stub(:internal_return_to) { internal_return_to }
58
50
  params = {}
59
51
  params[:internal_return_to] = internal_return_to
60
52
  params[:sid] = session_id
61
- subject.ebay_login_url(session_id).should == "#{EbayAPI::EBAY_LOGIN_URL}?#{signIn}&runame=runame&SessId=#{session_id}&ruparams=#{to_query(params)}"
53
+ subject.login_url.should == EbayAPI::EBAY_PRODUCTION_LOGIN_URL
54
+ subject.api_url.should == EbayAPI::EBAY_PRODUCTION_XML_API_URL
55
+ end
56
+ context :SingleSignOn do
57
+ it "should return ebay login url with internal return to when internal_return_to given in request" do
58
+ subject.stub(:internal_return_to) { internal_return_to }
59
+ params = {}
60
+ params[:internal_return_to] = internal_return_to
61
+ params[:sid] = session_id
62
+ subject.ebay_login_url(session_id).should == "#{EbayAPI::EBAY_PRODUCTION_LOGIN_URL}?#{singleSignOn}&runame=runame&sid=#{session_id}&ruparams=#{to_query(params)}"
63
+ end
64
+
65
+ it "should return ebay login url without internal return to when internal_return_to isn't given in request" do
66
+ subject.stub(:internal_return_to) { false }
67
+ params = {}
68
+ params[:sid] = session_id
69
+ subject.ebay_login_url(session_id).should == "#{EbayAPI::EBAY_PRODUCTION_LOGIN_URL}?#{singleSignOn}&runame=runame&sid=#{session_id}&ruparams=#{to_query(params)}"
70
+ end
62
71
  end
63
72
 
64
- it "should return ebay login url without internal return to when internal_return_to isn't given in request" do
65
- subject.stub(:internal_return_to) { false }
66
- params = {}
67
- params[:sid] = session_id
68
- subject.ebay_login_url(session_id).should == "#{EbayAPI::EBAY_LOGIN_URL}?#{signIn}&runame=runame&SessId=#{session_id}&ruparams=#{to_query(params)}"
73
+ context :SignIn do
74
+ before :each do
75
+ subject.options.auth_type = OmniAuth::Strategies::Ebay::AuthType::Simple
76
+ end
77
+ it "should return ebay login url with internal_return_to when internal_return_to given in request" do
78
+ subject.stub(:internal_return_to) { internal_return_to }
79
+ params = {}
80
+ params[:internal_return_to] = internal_return_to
81
+ params[:sid] = session_id
82
+ subject.ebay_login_url(session_id).should == "#{EbayAPI::EBAY_PRODUCTION_LOGIN_URL}?#{signIn}&runame=runame&SessId=#{session_id}&ruparams=#{to_query(params)}"
83
+ end
84
+
85
+ it "should return ebay login url without internal return to when internal_return_to isn't given in request" do
86
+ subject.stub(:internal_return_to) { false }
87
+ params = {}
88
+ params[:sid] = session_id
89
+ subject.ebay_login_url(session_id).should == "#{EbayAPI::EBAY_PRODUCTION_LOGIN_URL}?#{signIn}&runame=runame&SessId=#{session_id}&ruparams=#{to_query(params)}"
90
+ end
69
91
  end
70
92
  end
71
93
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-ebay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: '1.0'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-10 00:00:00.000000000 Z
12
+ date: 2014-04-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: omniauth