squake 0.6.1 → 0.6.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
  SHA256:
3
- metadata.gz: 8d74376a8394904dde68ee22c591d59a26de63cc3f7273077cec9d1c755a8e01
4
- data.tar.gz: ebf2977af63c7874817ee0251a3f3ce117f2da242597c31c07a43326eec984a8
3
+ metadata.gz: 6317f90e774294d91b681c3138afa11cbe044d854d38d73a815c139b7dca471d
4
+ data.tar.gz: b3f8548d89eb454a576b79b010de2059e739e6ee81a614f4a5e47c55b69fec2c
5
5
  SHA512:
6
- metadata.gz: 5a93a636570247e9a16cf6d81b2ee94c37271d00d75516e104a7813b508173cf80f6b301422e9b5c037751a857b9a490afa2d077522aa09d50d88b96780d4be8
7
- data.tar.gz: a0742ff2711d8c0e461ae6594135a532908afe498a2cca43036d7e34c981f33d928157dfe36ceb6e0af92ec1d8f3c17dc3f0e4d41e4b423a4a264b0f855e8bd7
6
+ metadata.gz: c56c1cc0ff2ba2be0aef2c63cd10874628e7865f6308795c69e04d4b17dd800af0a1ce75136ea0b4613a6821655e60d209b5aa96c5c1f71d87ddf72e1f95edf8
7
+ data.tar.gz: bd21c9f9a6b50a924817bdd79fe89cf4d3f308fde92dafa83796cca0cec3dc5833fbfb15a9010fdea0fd664bcf1059cbd32cc9bedd5605b8198eedfd2e3185e2
@@ -16,13 +16,15 @@ module Squake
16
16
  carbon_unit: String,
17
17
  expand: T::Array[String],
18
18
  payment_link_return_url: T.nilable(String),
19
+ payment_method: T.nilable(Squake::Model::PaymentMethod),
19
20
  client: Squake::Client,
20
21
  request_id: T.nilable(String),
21
22
  ).returns(Squake::Return[Squake::Model::Pricing])
22
23
  end
23
24
  def self.quote(
24
25
  items:, product:, currency: 'EUR', carbon_unit: 'gram',
25
- expand: [], payment_link_return_url: nil, client: Squake::Client.new, request_id: nil
26
+ expand: [], payment_link_return_url: nil, payment_method: nil,
27
+ client: Squake::Client.new, request_id: nil
26
28
  )
27
29
  # @TODO: add typed objects for all possible items. Until then, we allow either a Hash or a T::Struct
28
30
  items = items.map do |item|
@@ -40,6 +42,7 @@ module Squake
40
42
  carbon_unit: carbon_unit,
41
43
  expand: expand,
42
44
  payment_link_return_url: payment_link_return_url,
45
+ payment_method: payment_method&.serialize,
43
46
  },
44
47
  )
45
48
 
@@ -0,0 +1,15 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module Squake
5
+ module Model
6
+ class PaymentMethod < T::Enum
7
+ extend T::Sig
8
+
9
+ enums do
10
+ BatchSettlement = new('batch_settlement')
11
+ Stripe = new('stripe')
12
+ end
13
+ end
14
+ end
15
+ end
@@ -17,15 +17,16 @@ module Squake
17
17
  carbon_unit: T.nilable(String),
18
18
  expand: T::Array[String],
19
19
  payment_link_return_url: T.nilable(String),
20
+ payment_method: T.nilable(Squake::Model::PaymentMethod),
20
21
  client: Squake::Client,
21
22
  request_id: T.nilable(String),
22
23
  ).returns(Squake::Return[Squake::Model::Pricing])
23
24
  end
24
- def self.quote( # rubocop:disable Metrics/ParameterLists
25
+ def self.quote(
25
26
  product_id:, fixed_total: nil, currency: 'EUR', carbon_quantity: nil, carbon_unit: 'gram',
26
- expand: [], payment_link_return_url: nil, client: Squake::Client.new, request_id: nil
27
+ expand: [], payment_link_return_url: nil, payment_method: nil,
28
+ client: Squake::Client.new, request_id: nil
27
29
  )
28
-
29
30
  result = client.call(
30
31
  path: ENDPOINT,
31
32
  method: :get,
@@ -38,6 +39,7 @@ module Squake
38
39
  carbon_unit: carbon_unit,
39
40
  expand: expand,
40
41
  payment_link_return_url: payment_link_return_url,
42
+ payment_method: payment_method&.serialize,
41
43
  },
42
44
  )
43
45
 
@@ -1,6 +1,7 @@
1
1
  # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
+ require_relative 'client'
4
5
  require 'oj'
5
6
 
6
7
  module Squake
data/lib/squake/util.rb CHANGED
@@ -14,11 +14,11 @@ module Squake
14
14
  params.map do |k, v|
15
15
  case v
16
16
  when Array
17
- v.map { |e| "#{url_encode(k.to_s)}[]=#{url_encode(e.to_s)}" }.join('&')
17
+ v.map { "#{url_encode(k.to_s)}[]=#{url_encode(_1.to_s)}" }
18
18
  else
19
19
  "#{url_encode(k.to_s)}=#{url_encode(v.to_s)}" unless v.nil?
20
20
  end
21
- end.join('&')
21
+ end.flatten.compact.join('&')
22
22
  end
23
23
 
24
24
  # Encodes a string in a way that makes it suitable for use in a set of
@@ -1,6 +1,6 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Squake
5
- VERSION = '0.6.1'
5
+ VERSION = '0.6.3'
6
6
  end
data/lib/squake.rb CHANGED
@@ -3,9 +3,10 @@
3
3
 
4
4
  require 'sorbet-runtime'
5
5
  require 'oj'
6
+ require 'uri'
6
7
  require 'net/http'
7
8
 
8
- Dir[File.join(__dir__, './**/*', '*.rb')].each { require(_1) }
9
+ Dir[File.join(__dir__, './**/*', '*.rb')].each { |file_path| require(file_path) }
9
10
 
10
11
  module Squake
11
12
  # Don't freeze this constant, since we don't know what Oj is doing with the object under the hood
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: squake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - SQUAKE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-02 00:00:00.000000000 Z
11
+ date: 2025-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-http
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: sorbet
42
+ name: sorbet-runtime
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: sorbet-runtime
56
+ name: uri
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: base64
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: byebug
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +94,20 @@ dependencies:
80
94
  - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: logger
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: rspec
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -186,6 +214,7 @@ files:
186
214
  - lib/squake/model/carbon_unit.rb
187
215
  - lib/squake/model/items/base_type.rb
188
216
  - lib/squake/model/items/private_jet/squake.rb
217
+ - lib/squake/model/payment_method.rb
189
218
  - lib/squake/model/price.rb
190
219
  - lib/squake/model/pricing.rb
191
220
  - lib/squake/model/product.rb
@@ -218,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
247
  - !ruby/object:Gem::Version
219
248
  version: '0'
220
249
  requirements: []
221
- rubygems_version: 3.5.3
250
+ rubygems_version: 3.5.16
222
251
  signing_key:
223
252
  specification_version: 4
224
253
  summary: The industry solution for sustainable travel and logistics.