connect-sdk-ruby 2.27.0 → 2.28.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
2
  SHA256:
3
- metadata.gz: c2798c5d39921f22d03617bb7cf0f0a81699f03213ccea239435b7df0d653622
4
- data.tar.gz: 65705c989125db972832f10f33ab89fedc60a0a9008bb26a7c906e7f3e48236b
3
+ metadata.gz: 5992bcc131f53b3ccada88fbd47649cae3d3e2b7a2f4e962d03b720284ec867b
4
+ data.tar.gz: 8176d72bdb8b2476334f1b4dee14ee5a3630aaf74d03832444bc4816dbaeb2eb
5
5
  SHA512:
6
- metadata.gz: 06f8b88f9c280b6ca7126f957ce729fa173996dc217189133e3d33a1ce21e53040739b1cc1622397b101ff2322b5f40d641bf29efbac8df2e1be37208f1a803f
7
- data.tar.gz: fae6f33f53e2728ada47a8f3963b03936935d427468e511dc7cacb35015b2d29fdbd398f75f576227c58b34bdde28863ed47b820f0be1637b24f04554ee7b3d9
6
+ metadata.gz: 339b9d17f342797147b0cb27b957a0365f1c65d695ef4d709863654a989cbabac407c74865ea129b2316c7972b468435ef4d53fd63d39dfb1f8b25a25aa09c66
7
+ data.tar.gz: ed49a59d4903bdcffb408119dcb3e2448a0e13981c98a1dfa7ad42c3c3b0d15b8e1ee456305ed8577e51b3d404e4f625f790b747879316a3bc5ce4e7f7bec714
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'connect-sdk-ruby'
3
- spec.version = '2.27.0'
3
+ spec.version = '2.28.0'
4
4
  spec.authors = ['Ingenico ePayments']
5
5
  spec.email = ['github@epay.ingenico.com']
6
6
  spec.summary = %q{SDK to communicate with the Ingenico ePayments platform using the Ingenico Connect Server API}
@@ -0,0 +1,54 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://epayments-api.developer-ingenico.com/s2sapi/v1/
4
+ #
5
+ require 'ingenico/connect/sdk/api_exception'
6
+ require 'ingenico/connect/sdk/declined_refund_exception'
7
+ require 'ingenico/connect/sdk/factory'
8
+ require 'ingenico/connect/sdk/domain/definitions/amount_of_money'
9
+ require 'ingenico/connect/sdk/domain/refund/refund_references'
10
+ require 'ingenico/connect/sdk/domain/refund/refund_request'
11
+
12
+ Definitions = Ingenico::Connect::SDK::Domain::Definitions
13
+ Refund = Ingenico::Connect::SDK::Domain::Refund
14
+
15
+ def example
16
+ get_client do |client|
17
+ amount_of_money = Definitions::AmountOfMoney.new
18
+ amount_of_money.amount = 500
19
+ amount_of_money.currency_code = 'EUR'
20
+
21
+ refund_references = Refund::RefundReferences.new
22
+ refund_references.merchant_reference = 'AcmeOrder0001'
23
+
24
+ body = Refund::RefundRequest.new
25
+ body.amount_of_money = amount_of_money
26
+ body.refund_references = refund_references
27
+
28
+ begin
29
+ response = client.merchant('merchantId').captures.refund('captureId', body)
30
+ rescue Ingenico::Connect::SDK::DeclinedRefundException => e
31
+ handle_declined_refund(e.refund_result)
32
+ rescue Ingenico::Connect::SDK::ApiException => e
33
+ handle_api_errors(e.errors)
34
+ end
35
+ end
36
+ end
37
+
38
+ def get_client
39
+ api_key_id = ENV.fetch('connect.api.apiKeyId', 'someKey')
40
+ secret_api_key = ENV.fetch('connect.api.secretApiKey', 'someSecret')
41
+ configuration_file_name = File.join(__FILE__, '..', '..', 'example_configuration.yml')
42
+ yield client = Ingenico::Connect::SDK::Factory.create_client_from_file(configuration_file_name, api_key_id, secret_api_key)
43
+ ensure
44
+ # Free networking resources when done
45
+ client.close unless client.nil?
46
+ end
47
+
48
+ def handle_declined_refund(refund_result)
49
+ # handle the result here
50
+ end
51
+
52
+ def handle_api_errors(errors)
53
+ # handle the errors here
54
+ end
@@ -15,6 +15,7 @@ module Ingenico::Connect::SDK
15
15
  # @attr [String] product_code
16
16
  # @attr [String] product_name
17
17
  # @attr [Integer] product_price
18
+ # @attr [String] product_sku
18
19
  # @attr [String] product_type
19
20
  # @attr [Integer] quantity
20
21
  # @attr [Integer] tax_amount
@@ -35,6 +36,8 @@ module Ingenico::Connect::SDK
35
36
 
36
37
  attr_accessor :product_price
37
38
 
39
+ attr_accessor :product_sku
40
+
38
41
  attr_accessor :product_type
39
42
 
40
43
  attr_accessor :quantity
@@ -53,6 +56,7 @@ module Ingenico::Connect::SDK
53
56
  hash['productCode'] = @product_code unless @product_code.nil?
54
57
  hash['productName'] = @product_name unless @product_name.nil?
55
58
  hash['productPrice'] = @product_price unless @product_price.nil?
59
+ hash['productSku'] = @product_sku unless @product_sku.nil?
56
60
  hash['productType'] = @product_type unless @product_type.nil?
57
61
  hash['quantity'] = @quantity unless @quantity.nil?
58
62
  hash['taxAmount'] = @tax_amount unless @tax_amount.nil?
@@ -83,6 +87,9 @@ module Ingenico::Connect::SDK
83
87
  if hash.has_key? 'productPrice'
84
88
  @product_price = hash['productPrice']
85
89
  end
90
+ if hash.has_key? 'productSku'
91
+ @product_sku = hash['productSku']
92
+ end
86
93
  if hash.has_key? 'productType'
87
94
  @product_type = hash['productType']
88
95
  end
@@ -6,6 +6,8 @@ require 'ingenico/connect/sdk/api_resource'
6
6
  require 'ingenico/connect/sdk/response_exception'
7
7
  require 'ingenico/connect/sdk/domain/capture/capture_response'
8
8
  require 'ingenico/connect/sdk/domain/errors/error_response'
9
+ require 'ingenico/connect/sdk/domain/refund/refund_error_response'
10
+ require 'ingenico/connect/sdk/domain/refund/refund_response'
9
11
 
10
12
  module Ingenico::Connect::SDK
11
13
  module Merchant
@@ -49,6 +51,39 @@ module Ingenico::Connect::SDK
49
51
  error_object = @communicator.marshaller.unmarshal(e.body, error_type)
50
52
  raise create_exception(e.status_code, e.body, error_object, context)
51
53
  end
54
+
55
+ # Resource /!{merchantId}/captures/!{captureId}/refund - {https://epayments-api.developer-ingenico.com/s2sapi/v1/en_US/ruby/captures/refund.html Create Refund}
56
+ # @param capture_id [String]
57
+ # @param body [Ingenico::Connect::SDK::Domain::Refund::RefundRequest]
58
+ # @param context [Ingenico::Connect::SDK::CallContext]
59
+ # @return [Ingenico::Connect::SDK::Domain::Refund::RefundResponse]
60
+ # @raise [Ingenico::Connect::SDK::DeclinedRefundException] if the Ingenico ePayments platform declined / rejected the refund. The refund result will be available from the exception.
61
+ # @raise [Ingenico::Connect::SDK::ValidationException] if the request was not correct and couldn't be processed (HTTP status code 400)
62
+ # @raise [Ingenico::Connect::SDK::AuthorizationException] if the request was not allowed (HTTP status code 403)
63
+ # @raise [Ingenico::Connect::SDK::IdempotenceException] if an idempotent request caused a conflict (HTTP status code 409)
64
+ # @raise [Ingenico::Connect::SDK::ReferenceException] if an object was attempted to be referenced that doesn't exist or has been removed,
65
+ # or there was a conflict (HTTP status code 404, 409 or 410)
66
+ # @raise [Ingenico::Connect::SDK::GlobalCollectException] if something went wrong at the Ingenico ePayments platform,
67
+ # the Ingenico ePayments platform was unable to process a message from a downstream partner/acquirer,
68
+ # or the service that you're trying to reach is temporary unavailable (HTTP status code 500, 502 or 503)
69
+ # @raise [Ingenico::Connect::SDK::ApiException]if the Ingenico ePayments platform returned any other error
70
+ def refund(capture_id, body, context=nil)
71
+ path_context = {
72
+ 'captureId'.freeze => capture_id,
73
+ }
74
+ uri = instantiate_uri('/v1/{merchantId}/captures/{captureId}/refund', path_context)
75
+ return @communicator.post(
76
+ uri,
77
+ client_headers,
78
+ nil,
79
+ body,
80
+ Ingenico::Connect::SDK::Domain::Refund::RefundResponse,
81
+ context)
82
+ rescue ResponseException => e
83
+ error_type = Ingenico::Connect::SDK::Domain::Refund::RefundErrorResponse
84
+ error_object = @communicator.marshaller.unmarshal(e.body, error_type)
85
+ raise create_exception(e.status_code, e.body, error_object, context)
86
+ end
52
87
  end
53
88
  end
54
89
  end
@@ -7,7 +7,7 @@ module Ingenico::Connect::SDK
7
7
  #
8
8
  # @attr_reader [Array<Ingenico::Connect::SDK::RequestHeader>] meta_data_headers List of headers that should be used in all requests.
9
9
  class MetaDataProvider
10
- @@SDK_VERSION = '2.27.0'
10
+ @@SDK_VERSION = '2.28.0'
11
11
  @@SERVER_META_INFO_HEADER = 'X-GCS-ServerMetaInfo'
12
12
  @@PROHIBITED_HEADERS = [@@SERVER_META_INFO_HEADER, 'X-GCS-Idempotence-Key',
13
13
  'Date', 'Content-Type', 'Authorization'].sort!.freeze
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: connect-sdk-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.27.0
4
+ version: 2.28.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ingenico ePayments
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-23 00:00:00.000000000 Z
11
+ date: 2022-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -127,6 +127,7 @@ files:
127
127
  - README.md
128
128
  - Rakefile
129
129
  - connect-sdk-ruby.gemspec
130
+ - examples/merchant/captures/create_refund_capture_example.rb
130
131
  - examples/merchant/captures/get_capture_example.rb
131
132
  - examples/merchant/disputes/cancel_dispute_example.rb
132
133
  - examples/merchant/disputes/get_dispute_example.rb