passworks 0.0.2 → 0.0.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2e228956e308b9106c06b47e6a98dfdcbe75abd5
4
- data.tar.gz: 658a22d96039d37794e5547df43a91955296650d
3
+ metadata.gz: 8f8e460863f22f0cf87d9d704464f8e6f0676aae
4
+ data.tar.gz: b79ca3099d9c6dfa1b619c9a089d72924fa0e037
5
5
  SHA512:
6
- metadata.gz: 6e73735c8ef5dd8c7a5871c0648a06e4ef532d5142d418a022ea5dec3c2642ab9d3d664a3c16a1c339fd719e8a7e5620c46c4ad4689eaa61582836897233a663
7
- data.tar.gz: a80c649284f072c38275d59dfc428c07af333fb8ebd81e0c25e8566e764724f51656440fa8c3ab674a868a7138f63e418d6bbd9f56b43ce1ff02c57b56feb12d
6
+ metadata.gz: 3ab1e5aadfc12791813cd5343991e057470a74c4be50ff7b807cea2265657e19573248ae517594b5f510c38b975d43b7debad98eb1e3782d063e76cc2771422a
7
+ data.tar.gz: 15fe3347b92715aa19dd2486ebe0423ab39a40f97e767c0d35642303c6c14e6c2326737b8a4e5951a532691950547e7edd126e3496104c648b594a6e873dead9
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ bundler_args: --without development
3
+ rvm:
4
+ - 1.9.3
5
+ - 2.0.0
6
+ - 2.1.1
7
+ - jruby-19mode
8
+ - rbx-2.1.1
@@ -3,6 +3,16 @@
3
3
  This file is a manually maintained list of changes for each release. Feel free to add your
4
4
  changes here when sending pull requests. Also send corrections if you spot any mistakes.
5
5
 
6
+ ## v0.0.3 (2015-01-16)
7
+ * Bug fix: Missing 'event_tickets' namespace for from client
8
+ * Bug fix: Passworks::Response#ok? now returning correct information
9
+ * Feature: Implemented custom push message in the PassResource#push via :push_message attribute
10
+ ```ruby
11
+ # @pass is a PassResource instance that maps to a pass in the system
12
+ @pass.push({push_message: "hello world"})
13
+ ```
14
+
15
+
6
16
  ## v0.0.2 (2014-10-31)
7
17
  * Bug fix: Fixed typo in the code that prevent creating an Asset
8
18
 
@@ -35,8 +35,7 @@ module Passworks
35
35
  # @!method generics
36
36
  # Allows to to access the Generic API
37
37
  # @return [Passworks::RequestProxy]
38
-
39
- %w(assets boarding_passes store_cards coupons generics).each do |collection_name|
38
+ %w(assets boarding_passes store_cards coupons event_tickets generics).each do |collection_name|
40
39
  define_method(collection_name) do
41
40
  Passworks::RequestProxy.new(self, collection_name, nil)
42
41
  end
@@ -27,7 +27,7 @@ module Passworks
27
27
  yield resource_class.new(client, collection_name, item_data)
28
28
  end
29
29
  next_page = response.next_page
30
- break if next_page.nil?
30
+ break if next_page == 0
31
31
  end
32
32
  self
33
33
  end
@@ -14,8 +14,9 @@ module Passworks
14
14
 
15
15
  # Sends a push notification to all clients with this pass installed
16
16
  # @return [Boolean] True in case the pass
17
- def push
18
- client.post("#{collection_name}/#{collection_uuid}/passes/#{id}/push").ok?
17
+ def push(options={})
18
+ options = { body: options } unless options.empty?
19
+ client.post("#{collection_name}/#{collection_uuid}/passes/#{id}/push", options).ok?
19
20
  end
20
21
 
21
22
  # Updates the {PassResource} and returns the updated instance
@@ -30,11 +30,15 @@ module Passworks
30
30
  end
31
31
 
32
32
  def http_status
33
- @response[:status].to_i
33
+ @response.status
34
+ end
35
+
36
+ def response
37
+ @response
34
38
  end
35
39
 
36
40
  def ok?
37
- (http_status >= 200) && (http_status < 300)
41
+ @response.success?
38
42
  end
39
43
 
40
44
  def headers
@@ -1,3 +1,3 @@
1
1
  module Passworks
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -31,4 +31,5 @@ Gem::Specification.new do |spec|
31
31
  spec.add_development_dependency "minitest"
32
32
  spec.add_development_dependency "webmock"
33
33
  spec.add_development_dependency "vcr"
34
+ spec.add_development_dependency "minitest-vcr"
34
35
  end
Binary file
@@ -0,0 +1,48 @@
1
+ require File.expand_path 'spec_helper.rb', __dir__
2
+
3
+ describe 'Assets', :vcr do
4
+
5
+ before do
6
+ @client = Passworks.new
7
+ end
8
+
9
+ it "calling #assets method from the client should return RequestProxy" do
10
+ @client.assets.must_be_instance_of Passworks::RequestProxy
11
+ end
12
+
13
+ it "fetching all assets should return CollectionProxy" do
14
+ @client.assets.all.must_be_instance_of Passworks::CollectionProxy
15
+ end
16
+
17
+ it "all.to_a should return an array" do
18
+ @client.assets.all(per_page: 1).to_a.must_be_instance_of Array
19
+ end
20
+
21
+ it "create and asset" do
22
+ # check if ok
23
+ asset = @client.assets.create({
24
+ file: test_asset_path("logo.png"),
25
+ asset_type: 'logo'
26
+ })
27
+
28
+ asset.must_be_instance_of Passworks::AssetResource
29
+ end
30
+
31
+ it 'fetch the asset using #find' do
32
+ asset ||= @client.assets.create({
33
+ file: test_asset_path("logo.png"),
34
+ asset_type: 'logo'
35
+ })
36
+
37
+ # try to fetch the asset
38
+ fetched_asset = @client.assets.find(asset.id)
39
+
40
+ # fetched asset can't be nil
41
+ fetched_asset.wont_be_nil
42
+
43
+ # must must be same as
44
+ asset.id.must_equal fetched_asset.id
45
+ end
46
+
47
+
48
+ end
@@ -0,0 +1,60 @@
1
+ require File.expand_path 'spec_helper.rb', __dir__
2
+
3
+ describe 'Coupons', :vcr do
4
+
5
+ before do
6
+ @client = Passworks.new
7
+ end
8
+
9
+ it "calling #coupons method from the client should return a RequestProxy" do
10
+ @client.coupons.must_be_instance_of Passworks::RequestProxy
11
+ end
12
+
13
+ it "fetching #all coupons should return a CollectionProxy" do
14
+ @client.coupons.all.must_be_instance_of Passworks::CollectionProxy
15
+ end
16
+
17
+ it "#all.to_a should return an array" do
18
+ @client.coupons.all(per_page: 1).to_a.must_be_instance_of Array
19
+ end
20
+
21
+ it "#create an coupon from RequestProxy object" do
22
+
23
+ coupon = @client.coupons.create({
24
+ name: "New coupon #{Time.now.to_s}",
25
+ icon_id: icon_asset_instance.id
26
+ })
27
+
28
+ coupon.must_be_instance_of Passworks::CampaignResource
29
+
30
+ # if you created a coupon campaing the return collection should be a "coupons"
31
+ coupon.collection_name.must_equal "coupons"
32
+ end
33
+
34
+ it "#passes on a CampaignResource should return RequestProxy and #all should return an Passworks::CollectionProxy" do
35
+
36
+ coupon = @client.coupons.create({
37
+ name: "New coupon #{Time.now.to_s}",
38
+ icon_id: icon_asset_instance.id
39
+ })
40
+
41
+ coupon.passes.must_be_instance_of Passworks::RequestProxy
42
+
43
+ coupon.passes.all(per_page: 1).must_be_instance_of Passworks::CollectionProxy
44
+ end
45
+
46
+ it "create a pass for an coupon campaign" do
47
+ coupon = @client.coupons.create({
48
+ name: "New coupon #{Time.now.to_s}",
49
+ icon_id: icon_asset_instance.id
50
+ })
51
+
52
+ coupon_pass = coupon.passes.create()
53
+
54
+ coupon_pass.must_be_instance_of Passworks::PassResource
55
+
56
+ coupon_pass.collection_name.must_equal "coupons"
57
+ end
58
+
59
+
60
+ end
@@ -0,0 +1,7 @@
1
+ describe 'Passworks' do
2
+
3
+ it 'should have a version' do
4
+ Passworks::VERSION.wont_be_nil
5
+ end
6
+
7
+ end
@@ -0,0 +1,32 @@
1
+ ENV['RACK_ENV'] = 'test'
2
+
3
+ require 'minitest/autorun'
4
+ require 'minitest/pride'
5
+ require 'minitest-vcr'
6
+ require 'webmock/minitest'
7
+
8
+ require 'pry'
9
+ require 'pry-byebug'
10
+
11
+ MinitestVcr::Spec.configure!
12
+
13
+ require File.expand_path './support/vcr_setup.rb', __dir__
14
+
15
+ require File.expand_path '../lib/passworks.rb' , __dir__
16
+
17
+ Passworks.configure do |config|
18
+ config.api_username = ENV['PASSWORKS_API_USERNAME']
19
+ config.api_secret = ENV['PASSWORKS_API_SECRET']
20
+ config.endpoint = 'http://api.passworks.git:3000'
21
+ end
22
+
23
+ def test_asset_path(file)
24
+ File.expand_path "./support/assets/#{file}", __dir__
25
+ end
26
+
27
+ def icon_asset_instance
28
+ @icon_asset_instance ||= @client.assets.create({
29
+ file: test_asset_path("logo.png"),
30
+ asset_type: 'icon'
31
+ })
32
+ end
Binary file
@@ -0,0 +1,8 @@
1
+ require 'vcr'
2
+
3
+ VCR.configure do |c|
4
+ c.cassette_library_dir = 'spec/cassettes'
5
+ c.hook_into :webmock
6
+ c.filter_sensitive_data('PASSWORKS_API_USERNAME'){ ENV['PASSWORKS_API_USERNAME'] }
7
+ c.filter_sensitive_data('PASSWORKS_API_SECRET'){ ENV['PASSWORKS_API_SECRET'] }
8
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passworks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis Mendes
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-10-31 00:00:00.000000000 Z
13
+ date: 2015-01-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday
@@ -138,6 +138,20 @@ dependencies:
138
138
  - - '>='
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: minitest-vcr
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - '>='
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - '>='
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
141
155
  description: Provides a simple interface to Passworks API
142
156
  email:
143
157
  - luis@passworks.io
@@ -148,6 +162,7 @@ extensions: []
148
162
  extra_rdoc_files: []
149
163
  files:
150
164
  - .gitignore
165
+ - .travis.yml
151
166
  - CHANGELOG.md
152
167
  - Gemfile
153
168
  - README.md
@@ -183,6 +198,14 @@ files:
183
198
  - lib/passworks/response.rb
184
199
  - lib/passworks/version.rb
185
200
  - passworks.gemspec
201
+ - spec/.DS_Store
202
+ - spec/assets_spec.rb
203
+ - spec/coupons_spec.rb
204
+ - spec/passworks_spec.rb
205
+ - spec/spec_helper.rb
206
+ - spec/support/.DS_Store
207
+ - spec/support/assets/logo.png
208
+ - spec/support/vcr_setup.rb
186
209
  homepage: https://www.passworks.io
187
210
  licenses:
188
211
  - MIT
@@ -207,4 +230,13 @@ rubygems_version: 2.2.2
207
230
  signing_key:
208
231
  specification_version: 4
209
232
  summary: Passworks API client
210
- test_files: []
233
+ test_files:
234
+ - spec/.DS_Store
235
+ - spec/assets_spec.rb
236
+ - spec/coupons_spec.rb
237
+ - spec/passworks_spec.rb
238
+ - spec/spec_helper.rb
239
+ - spec/support/.DS_Store
240
+ - spec/support/assets/logo.png
241
+ - spec/support/vcr_setup.rb
242
+ has_rdoc: