lightrail_client 1.0.1 → 1.1.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
  SHA1:
3
- metadata.gz: 9c6b4592ac7e30408700f5d577f53a4aadbd35b8
4
- data.tar.gz: e12987b5719e1399001fca35e5e612fbac84acb5
3
+ metadata.gz: d4b03b92b6056752123712d93bc1e574be852468
4
+ data.tar.gz: 7bf40af48e0fdf721dc0507e8636ac392f200a33
5
5
  SHA512:
6
- metadata.gz: aad950b69d0821be109cf07e2523697d30b9c3e5a09a280755ccaa7d0dc3a389ca2bee54566a9107d2c9d364c0ccf62925e60931a99c9c3b7135c0331ebc704b
7
- data.tar.gz: d721b386ccc2fb6d99a95c4d882284064db901ecf573045a74e9aaec25c6a94ab5daada340b7aedbfee08feeb798064bbd0c07102e319e11b125be92edfa8c45
6
+ metadata.gz: 72a74728a92d19ae2236e7ded5ad73ba364351d7dcbe99e6baccf885413cb6b48ce5f875b4d26c458bef912fea4dd56dfb1fa86730daff7e6ed084028a803205
7
+ data.tar.gz: 16874d6fb03e23c298996710ad3c0aa6a949f0a9b50d0ec77927a47f0e4725dec6adce72aad4aaca2bdf80b25d97435339c1aa14204422408b6e5d6285f49682
data/README.md CHANGED
@@ -295,6 +295,14 @@ After checking out the repo, run `bin/setup` to install dependencies, then run `
295
295
 
296
296
  To install this gem onto your local machine, run `bundle exec rake install`.
297
297
 
298
+ ### Publishing
299
+
300
+ Make sure to bump the version number before publishing changes.
301
+
302
+ Run `gem build lightrail_client` to build the gem locally. The output will contain the gem name, version, and filename of the built `.gem`.
303
+
304
+ Run `gem push {{filename}}` to publish to RubyGems.
305
+
298
306
  ## License
299
307
 
300
308
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -1,6 +1,6 @@
1
1
  module Lightrail
2
2
  class ShopperTokenFactory
3
- def self.generate (contact, validity_in_seconds=nil)
3
+ def self.generate (contact, options=nil)
4
4
  raise Lightrail::BadParameterError.new("Lightrail::api_key is not set") unless Lightrail::api_key
5
5
  raise Lightrail::BadParameterError.new("Lightrail::shared_secret is not set") unless Lightrail::shared_secret
6
6
 
@@ -9,14 +9,33 @@ module Lightrail
9
9
  Lightrail::Validator.has_valid_user_supplied_id?(contact))
10
10
 
11
11
  g = {}
12
- if (Lightrail::Validator.has_valid_or_empty_shopper_id?(contact))
12
+ if Lightrail::Validator.has_valid_or_empty_shopper_id?(contact)
13
13
  g['shi'] = Lightrail::Validator.get_shopper_id(contact)
14
- elsif (Lightrail::Validator.has_valid_contact_id?(contact))
14
+ elsif Lightrail::Validator.has_valid_contact_id?(contact)
15
15
  g['coi'] = Lightrail::Validator.get_contact_id(contact)
16
- elsif (Lightrail::Validator.has_valid_user_supplied_id?(contact))
16
+ elsif Lightrail::Validator.has_valid_user_supplied_id?(contact)
17
17
  g['cui'] = Lightrail::Validator.get_user_supplied_id(contact)
18
18
  end
19
19
 
20
+ validity_in_seconds = 43200
21
+ metadata = nil
22
+ if !options
23
+ # no-op
24
+ elsif options.is_a?(Numeric)
25
+ # support for legacy code when options was validity_in_seconds
26
+ validity_in_seconds = options
27
+ elsif options.is_a?(Hash)
28
+ if options.has_key?(:validity_in_seconds)
29
+ validity_in_seconds = options[:validity_in_seconds]
30
+ end
31
+ if options.has_key?(:metadata)
32
+ metadata = options[:metadata]
33
+ end
34
+ end
35
+
36
+ if validity_in_seconds <= 0
37
+ raise Lightrail::LightrailArgumentError.new("validity_in_seconds must be > 0")
38
+ end
20
39
 
21
40
  payload = Lightrail::api_key.split('.')
22
41
  payload = JSON.parse(Base64.decode64(payload[1]))
@@ -28,14 +47,15 @@ module Lightrail
28
47
  payload = {
29
48
  g: g,
30
49
  iat: iat,
50
+ exp: iat + validity_in_seconds,
31
51
  iss: "MERCHANT"
32
52
  }
33
53
 
34
- if validity_in_seconds
35
- payload['exp'] = iat + validity_in_seconds
54
+ if metadata
55
+ payload["metadata"] = metadata
36
56
  end
37
57
 
38
58
  JWT.encode(payload, Lightrail::shared_secret, 'HS256')
39
59
  end
40
60
  end
41
- end
61
+ end
@@ -1,3 +1,3 @@
1
1
  module Lightrail
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lightrail_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lightrail
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-16 00:00:00.000000000 Z
11
+ date: 2018-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler