shopify_api 5.2.4 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63ec95eea11639a4bb5808aca547e3bf8cb26fb1d3cb1c7576949d99670932fe
4
- data.tar.gz: f0d6932da38d82ae6685006ff7683f4a6767f343ca344fbced06fdbfdb9cb51a
3
+ metadata.gz: 7b0ab297c1e32ac84d673b04ddf366cc5f9d43f2eb6f060d70e5d1fcc7c8736f
4
+ data.tar.gz: 99a2583bf370e73c85f2b71c4b6e99f1ac2e37db2a628a30dcbed346c29bdf8a
5
5
  SHA512:
6
- metadata.gz: 0a5f47b30dc2761fcd4fe64592f0bd8c75e97e894be120b995cd2046e7e6f912e417a48d32f6c76630ead5b9e7ebf8b8e8f8fba293dbe71d74c7c884d028b103
7
- data.tar.gz: 32c775a711e06c294ac92012bc8b15f481598f369615130629ef51343ba81fd6529f33b99fdf8c0180e7ccd14e9f0394aab0b4309a40a2e06c35140a348c2567
6
+ metadata.gz: 94e653b2a765e962ba1f4c360308bab8a66bb32b8fe487def7ef9880c4b972f934f280fce5805a7f5dcdea60b2a591c0ff4ea87dff04ce6334d490506155aa5a
7
+ data.tar.gz: 13701b452c87df0a9fb4054857f37d5821b63bb0ee8e467556bc8bb1d5beeae0712ec2457462567a45a715bc8b5a60d68aad8811385d9353e61779bec68bf060
data/.github/CODEOWNERS CHANGED
@@ -1 +1 @@
1
- * @shopify/app-partner-dev-tools-education
1
+ * @shopify/platform-dev-tools-education
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ == Version 6.0.0
2
+
3
+ * Removed undocumented `protocol` and `port` options from `ShopifyAPI::Session`.
4
+
1
5
  == Version 5.2.4
2
6
 
3
7
  * Added `currency` parameter to `ShopifyAPI::Order#capture`. This parameter is required for apps that belong to the
data/README.md CHANGED
@@ -88,20 +88,20 @@ ShopifyAPI uses ActiveResource to communicate with the REST web service. ActiveR
88
88
  We've added the create_permission_url method to make this easier, first instantiate your session object:
89
89
 
90
90
  ```ruby
91
- session = ShopifyAPI::Session.new("SHOP_NAME.myshopify.com")
91
+ shopify_session = ShopifyAPI::Session.new("SHOP_NAME.myshopify.com")
92
92
  ```
93
93
 
94
94
  Then call:
95
95
 
96
96
  ```ruby
97
97
  scope = ["write_products"]
98
- permission_url = session.create_permission_url(scope)
98
+ permission_url = shopify_session.create_permission_url(scope)
99
99
  ```
100
100
 
101
101
  or if you want a custom redirect_uri:
102
102
 
103
103
  ```ruby
104
- permission_url = session.create_permission_url(scope, "https://my_redirect_uri.com")
104
+ permission_url = shopify_session.create_permission_url(scope, "https://my_redirect_uri.com")
105
105
  ```
106
106
 
107
107
  4. Once authorized, the shop redirects the owner to the return URL of your application with a parameter named 'code'. This is a temporary token that the app can exchange for a permanent access token.
@@ -131,37 +131,37 @@ ShopifyAPI uses ActiveResource to communicate with the REST web service. ActiveR
131
131
  the params, extract the temp code and then request your token:
132
132
 
133
133
  ```ruby
134
- token = session.request_token(params)
134
+ token = shopify_session.request_token(params)
135
135
  ```
136
136
 
137
137
  This method will save the token to the session object and return it. All fields returned by Shopify, other than the access token itself, are stored in the session's `extra` attribute. For a list of all fields returned by Shopify, read [our OAuth documentation](https://help.shopify.com/api/guides/authentication/oauth#confirming-installation). If you requested an access token that is associated with a specific user, you can retreive information about this user from the `extra` hash:
138
138
 
139
139
  ```ruby
140
140
  # a list of all granted scopes
141
- granted_scopes = session.extra['scope']
141
+ granted_scopes = shopify_session.extra['scope']
142
142
  # a hash containing the user information
143
- user = session.extra['associated_user']
143
+ user = shopify_session.extra['associated_user']
144
144
  # the access scopes available to this user, which may be a subset of the access scopes granted to this app.
145
- active_scopes = session.extra['associated_user_scope']
145
+ active_scopes = shopify_session.extra['associated_user_scope']
146
146
  # the time at which this token expires; this is automatically converted from 'expires_in' returned by Shopify
147
- expires_at = session.extra['expires_at']
147
+ expires_at = shopify_session.extra['expires_at']
148
148
  ```
149
149
 
150
150
  For the security of your application, after retrieving an access token you must validate the following:
151
- 1) The list of scopes in `session.extra['scope']` is the same as you requested.
152
- 2) If you requested an online-mode access token, `session.extra['associated_user']` must be present.
151
+ 1) The list of scopes in `shopify_session.extra['scope']` is the same as you requested.
152
+ 2) If you requested an online-mode access token, `shopify_session.extra['associated_user']` must be present.
153
153
  Failing either of these tests means the end-user may have tampered with the url parameters during the OAuth authentication phase. You should avoid using this access token and revoke it immediately. If you use the [`omniauth-shopify-oauth2`](https://github.com/Shopify/omniauth-shopify-oauth2) gem these checks are done automatically for you.
154
154
 
155
155
  For future sessions simply pass in the `token` and `extra` hash (optional) when creating the session object:
156
156
 
157
157
  ```ruby
158
- session = ShopifyAPI::Session.new("SHOP_NAME.myshopify.com", token, extra)
158
+ shopify_session = ShopifyAPI::Session.new("SHOP_NAME.myshopify.com", token, extra)
159
159
  ```
160
160
 
161
161
  5. The session must be activated before use:
162
162
 
163
163
  ```ruby
164
- ShopifyAPI::Base.activate_session(session)
164
+ ShopifyAPI::Base.activate_session(shopify_session)
165
165
  ```
166
166
 
167
167
  6. Now you're ready to make authorized API requests to your shop! Data is returned as ActiveResource instances:
@@ -7,8 +7,7 @@ module ShopifyAPI
7
7
  end
8
8
 
9
9
  class Session
10
- cattr_accessor :api_key, :secret, :protocol, :myshopify_domain, :port
11
- self.protocol = 'https'
10
+ cattr_accessor :api_key, :secret, :myshopify_domain
12
11
  self.myshopify_domain = 'myshopify.com'
13
12
 
14
13
  attr_accessor :url, :token, :name, :extra
@@ -44,8 +43,7 @@ module ShopifyAPI
44
43
  shop = shop.slice(0, idx)
45
44
  end
46
45
  return nil if shop.empty?
47
- shop = "#{shop}.#{myshopify_domain}"
48
- port ? "#{shop}:#{port}" : shop
46
+ "#{shop}.#{myshopify_domain}"
49
47
  rescue URI::InvalidURIError
50
48
  nil
51
49
  end
@@ -105,7 +103,7 @@ module ShopifyAPI
105
103
  end
106
104
 
107
105
  def site
108
- "#{protocol}://#{url}/admin"
106
+ "https://#{url}/admin"
109
107
  end
110
108
 
111
109
  def valid?
@@ -128,17 +126,18 @@ module ShopifyAPI
128
126
  end
129
127
 
130
128
  private
131
- def parameterize(params)
132
- URI.escape(params.collect{|k,v| "#{k}=#{v}"}.join('&'))
133
- end
134
129
 
135
- def access_token_request(code)
136
- uri = URI.parse("#{protocol}://#{url}/admin/oauth/access_token")
137
- https = Net::HTTP.new(uri.host, uri.port)
138
- https.use_ssl = true
139
- request = Net::HTTP::Post.new(uri.request_uri)
140
- request.set_form_data({"client_id" => api_key, "client_secret" => secret, "code" => code})
141
- https.request(request)
142
- end
130
+ def parameterize(params)
131
+ URI.escape(params.collect { |k, v| "#{k}=#{v}" }.join('&'))
132
+ end
133
+
134
+ def access_token_request(code)
135
+ uri = URI.parse("https://#{url}/admin/oauth/access_token")
136
+ https = Net::HTTP.new(uri.host, uri.port)
137
+ https.use_ssl = true
138
+ request = Net::HTTP::Post.new(uri.request_uri)
139
+ request.set_form_data('client_id' => api_key, 'client_secret' => secret, 'code' => code)
140
+ https.request(request)
141
+ end
143
142
  end
144
143
  end
@@ -1,3 +1,3 @@
1
1
  module ShopifyAPI
2
- VERSION = "5.2.4"
2
+ VERSION = "6.0.0"
3
3
  end
data/test/product_test.rb CHANGED
@@ -47,4 +47,14 @@ class ProductTest < Test::Unit::TestCase
47
47
  variant.price = "0.50"
48
48
  variant.save
49
49
  end
50
+
51
+ def test_price_range
52
+ assert_equal('199.00', @product.price_range)
53
+ end
54
+
55
+ def test_price_range_when_has_different_price
56
+ @product.variants[0].price = '100.00'
57
+
58
+ assert_equal('100.00 - 199.00', @product.price_range)
59
+ end
50
60
  end
data/test/session_test.rb CHANGED
@@ -56,10 +56,6 @@ class SessionTest < Test::Unit::TestCase
56
56
  assert_equal "My test secret", ShopifyAPI::Session.secret
57
57
  end
58
58
 
59
- test "use 'https' protocol by default for all sessions" do
60
- assert_equal 'https', ShopifyAPI::Session.protocol
61
- end
62
-
63
59
  test "#temp reset ShopifyAPI::Base.site to original value" do
64
60
 
65
61
  ShopifyAPI::Session.setup(:api_key => "key", :secret => "secret")
@@ -115,28 +111,6 @@ class SessionTest < Test::Unit::TestCase
115
111
  assert_equal false, session.valid?
116
112
  end
117
113
 
118
- test "#temp reset ShopifyAPI::Base.site to original value when using a non-standard port" do
119
- ShopifyAPI::Session.setup(:api_key => "key", :secret => "secret")
120
- session1 = ShopifyAPI::Session.new('fakeshop.myshopify.com:3000', 'token1')
121
- ShopifyAPI::Base.activate_session(session1)
122
- end
123
-
124
- test "myshopify_domain supports non-standard ports" do
125
- begin
126
- ShopifyAPI::Session.setup(:api_key => "key", :secret => "secret", :myshopify_domain => 'localhost', port: '3000')
127
- session = ShopifyAPI::Session.new('fakeshop.localhost:3000', 'token1')
128
- ShopifyAPI::Base.activate_session(session)
129
- assert_equal 'https://fakeshop.localhost:3000/admin', ShopifyAPI::Base.site.to_s
130
-
131
- session = ShopifyAPI::Session.new('fakeshop', 'token1')
132
- ShopifyAPI::Base.activate_session(session)
133
- assert_equal 'https://fakeshop.localhost:3000/admin', ShopifyAPI::Base.site.to_s
134
- ensure
135
- ShopifyAPI::Session.myshopify_domain = "myshopify.com"
136
- ShopifyAPI::Session.port = nil
137
- end
138
- end
139
-
140
114
  test "return site for session" do
141
115
  session = ShopifyAPI::Session.new("testshop.myshopify.com", "any-token")
142
116
  assert_equal "https://testshop.myshopify.com/admin", session.site
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopify_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.4
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-09 00:00:00.000000000 Z
11
+ date: 2019-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeresource