squake 0.6.2 → 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: f0a27760d58eb232e2a38bc0fe9fca78576aa9c47531697af30e94ddcf32727d
4
- data.tar.gz: 13e3f50d2b597c753ac91a088eb1c36e756ccb18b8acdf4dce936e9851cca9fd
3
+ metadata.gz: 6317f90e774294d91b681c3138afa11cbe044d854d38d73a815c139b7dca471d
4
+ data.tar.gz: b3f8548d89eb454a576b79b010de2059e739e6ee81a614f4a5e47c55b69fec2c
5
5
  SHA512:
6
- metadata.gz: 257eb22823b5d8b47109e00dbf47e76e6becbc18ece39a18cbfa74437c6c5e5a08ba77bff90a9cbc6467fc548619632f9b197435cd9918c7feb583fe90141f06
7
- data.tar.gz: f70d1d24c37b130f4e93705b88d81fbccd0090d9df2770735ae193be7c1022e9332a92efb69dfc5482b1232917eeea041df8690c8bc14838097fbfc228314a6e
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
 
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.2'
5
+ VERSION = '0.6.3'
6
6
  end
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.2
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-24 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
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
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'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rspec
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -200,6 +214,7 @@ files:
200
214
  - lib/squake/model/carbon_unit.rb
201
215
  - lib/squake/model/items/base_type.rb
202
216
  - lib/squake/model/items/private_jet/squake.rb
217
+ - lib/squake/model/payment_method.rb
203
218
  - lib/squake/model/price.rb
204
219
  - lib/squake/model/pricing.rb
205
220
  - lib/squake/model/product.rb
@@ -232,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
232
247
  - !ruby/object:Gem::Version
233
248
  version: '0'
234
249
  requirements: []
235
- rubygems_version: 3.5.3
250
+ rubygems_version: 3.5.16
236
251
  signing_key:
237
252
  specification_version: 4
238
253
  summary: The industry solution for sustainable travel and logistics.