wegift-ruby-client 1.7.2 → 1.8.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 354e3ffd5e6a48aa62b42f45f18befa65c58a175
4
- data.tar.gz: 23e9db8aa35458e2fd47c2c5f39b2d87606cac50
2
+ SHA256:
3
+ metadata.gz: 93fcfceee73c751a093784421b2949ac0e220599fd88a9e74f7573d3ca9f9326
4
+ data.tar.gz: d9eb089ab2bbc0534d8bb08c30f3b38ea8bd6a9108316a648bfbd8ef5654c4c0
5
5
  SHA512:
6
- metadata.gz: 2226058175cac736b14c6810c0482dec1fe8ae5b79f3ed0229340c477319eeb2da5a57e6f7c977ef41c697a57cb13fdf5d3aad683b473e256a990e07b7be0fd8
7
- data.tar.gz: 7344a534379e21c0999a5f64d890f8359a35706e04ab2d1aac57f8562c014e292c537b1f926365366d5b8d961175b543fce35a1f58b41e524a74d8bd10c838ed
6
+ metadata.gz: 867d00650d5da67a8049bf44fd1a7dd03beddfa43a4b8b647298b6ca659a42a85c0bcc8ebaa7bf24046d4bbf399c27e07e3c1a5ca3346fbb3358a77a8afc6bb5
7
+ data.tar.gz: ff53bae7dae3bc129699d9b17f09558f20d7967320640480f740fb4b5f811d36af4dd7c0379675d965a7b938fc99178b793d8b1e2cfb529ad34bfadff39ffbbb
data/.gitignore CHANGED
@@ -11,6 +11,9 @@
11
11
  # rspec failure tracking
12
12
  .rspec_status
13
13
 
14
+ # debugger
15
+ .byebug_history
16
+
14
17
  # idea/rubymine
15
18
  *.iml
16
19
 
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in wegift-ruby-client.gemspec
data/README.md CHANGED
@@ -70,6 +70,8 @@ if order.is_successful?
70
70
  order.code
71
71
  order.order_id
72
72
  order.pin
73
+ order.barcode_format
74
+ order.barcode_string
73
75
  order.expiry_date
74
76
  order.delivery_url
75
77
 
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: :spec
data/bin/console CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require "bundler/setup"
4
- require "wegift"
4
+ require 'bundler/setup'
5
+ require 'wegift'
5
6
 
6
7
  # You can add fixtures and/or initialization code here to make experimenting
7
8
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +11,5 @@ require "wegift"
10
11
  # require "pry"
11
12
  # Pry.start
12
13
 
13
- require "irb"
14
+ require 'irb'
14
15
  IRB.start(__FILE__)
data/lib/wegift.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'wegift/version'
2
4
  require 'wegift/client'
3
5
 
@@ -8,5 +10,4 @@ require 'wegift/models/products'
8
10
  require 'wegift/models/order'
9
11
 
10
12
  module Wegift
11
-
12
- end
13
+ end
data/lib/wegift/client.rb CHANGED
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require 'faraday'
3
4
 
4
5
  require_relative 'models/response'
@@ -7,7 +8,6 @@ require_relative 'models/products'
7
8
  require_relative 'models/order'
8
9
 
9
10
  module Wegift
10
-
11
11
  class Client
12
12
  attr_accessor :api_host, :api_path, :api_key, :api_secret, :connection
13
13
 
@@ -19,18 +19,20 @@ module Wegift
19
19
  @api_key = options[:api_key].to_s
20
20
  @api_secret = options[:api_secret]
21
21
 
22
- @connection = Faraday.new(:url => @api_host) do |c|
22
+ @connection = Faraday.new(url: @api_host) do |c|
23
23
  c.basic_auth(@api_key, @api_secret)
24
24
  c.adapter Faraday.default_adapter
25
- c.options[:proxy] = {
26
- :uri => URI(options[:proxy])
27
- } unless options[:proxy].nil?
25
+ unless options[:proxy].nil?
26
+ c.options[:proxy] = {
27
+ uri: URI(options[:proxy])
28
+ }
29
+ end
28
30
  end
29
31
  end
30
32
 
31
33
  def request(method, path, payload = {})
32
34
  @connection.send(method) do |req|
33
- req.url [@api_path, path].join('')
35
+ req.url [@api_path, path].join
34
36
  req.headers['Content-Type'] = 'application/json'
35
37
  req.body = payload.to_json if method.to_sym.eql?(:post)
36
38
  req.params = payload if method.to_sym.eql?(:get)
@@ -42,13 +44,13 @@ module Wegift
42
44
 
43
45
  # global methods
44
46
 
45
- def products()
46
- products = Wegift::Products.new()
47
+ def products
48
+ products = Wegift::Products.new
47
49
  products.get(self)
48
50
  end
49
51
 
50
52
  def product(id = nil)
51
- products = Wegift::Product.new(:product_code => id)
53
+ products = Wegift::Product.new(product_code: id)
52
54
  products.get(self)
53
55
  end
54
56
 
@@ -56,7 +58,5 @@ module Wegift
56
58
  order = Wegift::Order.new(options)
57
59
  order.post(self)
58
60
  end
59
-
60
61
  end
61
-
62
62
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Initializable
2
4
  def initialize(params = {})
3
5
  params.each do |key, value|
@@ -5,4 +7,4 @@ module Initializable
5
7
  send(setter, value) if respond_to?(setter.to_sym, false)
6
8
  end
7
9
  end
8
- end
10
+ end
@@ -1,16 +1,19 @@
1
- class Wegift::Order < Wegift::Response
1
+ # frozen_string_literal: true
2
2
 
3
+ class Wegift::Order < Wegift::Response
3
4
  PATH = '/order-digital-card'
4
5
 
5
- DELIVERY_METHODS = {:direct => 'direct', :email => 'email'}
6
- DELIVERY_FORMATS = {:code => 'raw', :url => 'url-instant'}
6
+ DELIVERY_METHODS = { direct: 'direct', email: 'email' }.freeze
7
+ DELIVERY_FORMATS = { code: 'raw', url: 'url-instant' }.freeze
7
8
 
8
9
  # request/payload
9
- attr_accessor :product_code, :currency_code, :amount, :delivery_method, :delivery_format,
10
- :notification_email, :delivery_email, :external_ref
10
+ attr_accessor :product_code, :currency_code, :amount, :delivery_method,
11
+ :delivery_format, :notification_email, :delivery_email,
12
+ :external_ref
11
13
 
12
14
  # response/success
13
- attr_accessor :code, :expiry_date, :pin, :order_id, :cvc2, :delivery_url
15
+ attr_accessor :code, :expiry_date, :pin, :order_id, :cvc2, :delivery_url,
16
+ :barcode_format, :barcode_string
14
17
 
15
18
  def initialize(params = {})
16
19
  super(params)
@@ -21,22 +24,22 @@ class Wegift::Order < Wegift::Response
21
24
 
22
25
  def payload
23
26
  {
24
- :product_code => @product_code,
25
- :currency_code => @currency_code,
26
- :amount => @amount,
27
- :delivery_method => @delivery_method,
28
- :delivery_format => @delivery_format,
29
- :notification_email => @notification_email,
30
- :delivery_email => @delivery_email,
31
- :external_ref => @external_ref,
27
+ product_code: @product_code,
28
+ currency_code: @currency_code,
29
+ amount: @amount,
30
+ delivery_method: @delivery_method,
31
+ delivery_format: @delivery_format,
32
+ notification_email: @notification_email,
33
+ delivery_email: @delivery_email,
34
+ external_ref: @external_ref
32
35
  }
33
36
  end
34
37
 
35
38
  # Order Digital Card
36
39
  # POST /api/b2b-sync/v1/order-digital-card
37
40
  def post(ctx)
38
- response = ctx.request(:post, PATH, self.payload)
39
- self.parse(response)
41
+ response = ctx.request(:post, PATH, payload)
42
+ parse(response)
40
43
  end
41
44
 
42
45
  def parse(response)
@@ -44,7 +47,7 @@ class Wegift::Order < Wegift::Response
44
47
 
45
48
  # nested status/error object
46
49
  # assuming root "status" is always "SUCCESS" if "e_code" is set
47
- #{
50
+ # {
48
51
  # "e_code": {
49
52
  # "error_code": "EC001",
50
53
  # "error_string": "Error retrieving E-Code from data processor",
@@ -55,14 +58,20 @@ class Wegift::Order < Wegift::Response
55
58
  # "error_string": null,
56
59
  # "order_id": 18,
57
60
  # "status": "SUCCESS"
58
- #}
61
+ # }
59
62
 
60
63
  # override root "status" if set
61
64
  if @payload['e_code'] && @payload['e_code']['status'].eql?(STATUS[:error])
62
65
  @status = @payload['e_code']['status']
63
- @error_code = @payload['e_code']['error_code'] unless @payload['e_code']['error_code'].blank?
64
- @error_string = @payload['e_code']['error_string'] unless @payload['e_code']['error_string'].blank?
65
- @error_details = @payload['e_code']['error_details'] unless @payload['e_code']['error_details'].blank?
66
+ unless @payload['e_code']['error_code'].blank?
67
+ @error_code = @payload['e_code']['error_code']
68
+ end
69
+ unless @payload['e_code']['error_string'].blank?
70
+ @error_string = @payload['e_code']['error_string']
71
+ end
72
+ unless @payload['e_code']['error_details'].blank?
73
+ @error_details = @payload['e_code']['error_details']
74
+ end
66
75
  end
67
76
 
68
77
  # set valid data
@@ -72,11 +81,12 @@ class Wegift::Order < Wegift::Response
72
81
  @pin = @payload['e_code']['pin']
73
82
  @cvc2 = @payload['e_code']['cvc2']
74
83
  @delivery_url = @payload['e_code']['delivery_url']
84
+ @barcode_string = @payload['e_code']['barcode_string']
85
+ @barcode_format = @payload['e_code']['barcode_format']
75
86
  end
76
87
 
77
88
  @order_id = @payload['order_id']
78
89
 
79
90
  self
80
91
  end
81
-
82
92
  end
@@ -1,5 +1,6 @@
1
- class Wegift::Product < Wegift::Response
1
+ # frozen_string_literal: true
2
2
 
3
+ class Wegift::Product < Wegift::Response
3
4
  PATH = '/products'
4
5
 
5
6
  # request/payload
@@ -13,7 +14,8 @@ class Wegift::Product < Wegift::Response
13
14
  :terms_and_conditions_html,
14
15
  :terms_and_conditions_url,
15
16
  :terms_and_conditions_pdf_url,
16
- :e_code_usage_type
17
+ :e_code_usage_type,
18
+ :barcode_format
17
19
 
18
20
  def initialize(params = {})
19
21
  super
@@ -27,12 +29,12 @@ class Wegift::Product < Wegift::Response
27
29
  # GET /api/b2b-sync/v1/products/ID
28
30
  def get(ctx)
29
31
  response = ctx.request(:get, path)
30
- self.parse(response)
32
+ parse(response)
31
33
  end
32
34
 
33
35
  def parse(response)
34
36
  super(response)
37
+
35
38
  Wegift::Product.new(@payload)
36
39
  end
37
-
38
40
  end
@@ -1,5 +1,6 @@
1
- class Wegift::Products < Wegift::Response
1
+ # frozen_string_literal: true
2
2
 
3
+ class Wegift::Products < Wegift::Response
3
4
  PATH = '/products'
4
5
 
5
6
  attr_accessor :all
@@ -8,16 +9,21 @@ class Wegift::Products < Wegift::Response
8
9
  # GET /api/b2b-sync/v1/products/
9
10
  def get(ctx)
10
11
  response = ctx.request(:get, PATH)
11
- self.parse(response)
12
+ parse(response)
13
+ end
14
+
15
+ # Find all products by fieldname.
16
+ def find(name, value)
17
+ Wegift::Products.new(all: all.select! { |p| p.send(name).eql?(value) })
12
18
  end
13
19
 
14
20
  def parse(response)
15
21
  super(response)
16
22
 
17
- if self.is_successful?
18
- # TODO separate?
23
+ if is_successful?
24
+ # TODO: separate?
19
25
  if @payload['products']
20
- @all = @payload['products'].map{|p| Wegift::Product.new(p)}
26
+ @all = @payload['products'].map { |p| Wegift::Product.new(p) }
21
27
  end
22
28
  else
23
29
  @all = []
@@ -25,5 +31,4 @@ class Wegift::Products < Wegift::Response
25
31
 
26
32
  self
27
33
  end
28
-
29
34
  end
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'initializable'
2
4
 
3
5
  class Wegift::Response
4
6
  include Initializable
5
7
 
6
- STATUS = {:success => 'SUCCESS', :error => 'ERROR'}
8
+ STATUS = { success: 'SUCCESS', error: 'ERROR' }.freeze
7
9
 
8
10
  # Field Name Contents
9
11
  #
@@ -16,7 +18,7 @@ class Wegift::Response
16
18
  attr_accessor :payload, :status, :error_code, :error_string, :error_details
17
19
 
18
20
  def is_successful?
19
- @status && @status.eql?(STATUS[:success])
21
+ @status&.eql?(STATUS[:success])
20
22
  end
21
23
 
22
24
  def parse(response = {})
@@ -37,5 +39,4 @@ class Wegift::Response
37
39
  @error_details = response.reason_phrase
38
40
  end
39
41
  end
40
-
41
42
  end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Wegift
2
4
  # api-version.lib-build
3
- VERSION = '1.7.2'
5
+ VERSION = '1.8.0'
4
6
  end
@@ -1,5 +1,6 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'wegift/version'
5
6
 
@@ -9,11 +10,10 @@ Gem::Specification.new do |spec|
9
10
  spec.authors = ['Klaas Endrikat']
10
11
  spec.email = ['klaas.endrikat@googlemail.com']
11
12
 
12
- spec.summary = %q{A simple Ruby client for the WEGIFT API}
13
+ spec.summary = 'A simple Ruby client for the WEGIFT API'
13
14
  spec.homepage = 'https://github.com/kendrikat/wegift-ruby-client'
14
15
  spec.license = 'MIT'
15
16
 
16
-
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
18
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ['lib']
@@ -24,9 +24,10 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency 'json', '~> 1.7', '>= 1.7.7'
25
25
 
26
26
  spec.add_development_dependency 'bundler', '~> 1.14'
27
+ spec.add_development_dependency 'byebug', '~> 11'
28
+ spec.add_development_dependency 'dotenv', '~> 2.2', '>= 2.2.0'
27
29
  spec.add_development_dependency 'rake', '~> 10.0'
28
30
  spec.add_development_dependency 'rspec', '~> 3.0'
29
31
  spec.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.3'
30
- spec.add_development_dependency 'webmock', '~> 2.3', '>= 2.3.2'
31
- spec.add_development_dependency 'dotenv', '~> 2.2', '>= 2.2.0'
32
+ spec.add_development_dependency 'webmock', '~> 3.5', '>= 3.5.0'
32
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wegift-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.2
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Klaas Endrikat
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-26 00:00:00.000000000 Z
11
+ date: 2020-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -64,6 +64,40 @@ dependencies:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
66
  version: '1.14'
67
+ - !ruby/object:Gem::Dependency
68
+ name: byebug
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '11'
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '11'
81
+ - !ruby/object:Gem::Dependency
82
+ name: dotenv
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: 2.2.0
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '2.2'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: 2.2.0
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: '2.2'
67
101
  - !ruby/object:Gem::Dependency
68
102
  name: rake
69
103
  requirement: !ruby/object:Gem::Requirement
@@ -116,42 +150,22 @@ dependencies:
116
150
  name: webmock
117
151
  requirement: !ruby/object:Gem::Requirement
118
152
  requirements:
119
- - - "~>"
120
- - !ruby/object:Gem::Version
121
- version: '2.3'
122
153
  - - ">="
123
154
  - !ruby/object:Gem::Version
124
- version: 2.3.2
125
- type: :development
126
- prerelease: false
127
- version_requirements: !ruby/object:Gem::Requirement
128
- requirements:
155
+ version: 3.5.0
129
156
  - - "~>"
130
157
  - !ruby/object:Gem::Version
131
- version: '2.3'
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- version: 2.3.2
135
- - !ruby/object:Gem::Dependency
136
- name: dotenv
137
- requirement: !ruby/object:Gem::Requirement
138
- requirements:
139
- - - "~>"
140
- - !ruby/object:Gem::Version
141
- version: '2.2'
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: 2.2.0
158
+ version: '3.5'
145
159
  type: :development
146
160
  prerelease: false
147
161
  version_requirements: !ruby/object:Gem::Requirement
148
162
  requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '2.2'
152
163
  - - ">="
153
164
  - !ruby/object:Gem::Version
154
- version: 2.2.0
165
+ version: 3.5.0
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: '3.5'
155
169
  description:
156
170
  email:
157
171
  - klaas.endrikat@googlemail.com
@@ -199,8 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
213
  - !ruby/object:Gem::Version
200
214
  version: '0'
201
215
  requirements: []
202
- rubyforge_project:
203
- rubygems_version: 2.5.2
216
+ rubygems_version: 3.0.6
204
217
  signing_key:
205
218
  specification_version: 4
206
219
  summary: A simple Ruby client for the WEGIFT API