patch_ruby 1.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +10 -0
  3. data/Gemfile.lock +72 -0
  4. data/README.md +54 -0
  5. data/Rakefile +10 -0
  6. data/lib/patch_ruby.rb +61 -0
  7. data/lib/patch_ruby/api/estimates_api.rb +213 -0
  8. data/lib/patch_ruby/api/orders_api.rb +339 -0
  9. data/lib/patch_ruby/api/preferences_api.rb +276 -0
  10. data/lib/patch_ruby/api/projects_api.rb +148 -0
  11. data/lib/patch_ruby/api_client.rb +388 -0
  12. data/lib/patch_ruby/api_error.rb +57 -0
  13. data/lib/patch_ruby/configuration.rb +254 -0
  14. data/lib/patch_ruby/models/allocation.rb +229 -0
  15. data/lib/patch_ruby/models/create_mass_estimate_request.rb +216 -0
  16. data/lib/patch_ruby/models/create_order_request.rb +216 -0
  17. data/lib/patch_ruby/models/create_preference_request.rb +216 -0
  18. data/lib/patch_ruby/models/error_response.rb +239 -0
  19. data/lib/patch_ruby/models/estimate.rb +238 -0
  20. data/lib/patch_ruby/models/estimate_list_response.rb +255 -0
  21. data/lib/patch_ruby/models/estimate_response.rb +239 -0
  22. data/lib/patch_ruby/models/meta_index_object.rb +220 -0
  23. data/lib/patch_ruby/models/order.rb +313 -0
  24. data/lib/patch_ruby/models/order_list_response.rb +255 -0
  25. data/lib/patch_ruby/models/order_response.rb +239 -0
  26. data/lib/patch_ruby/models/preference.rb +229 -0
  27. data/lib/patch_ruby/models/preference_list_response.rb +255 -0
  28. data/lib/patch_ruby/models/preference_response.rb +239 -0
  29. data/lib/patch_ruby/models/project.rb +283 -0
  30. data/lib/patch_ruby/models/project_list_response.rb +255 -0
  31. data/lib/patch_ruby/models/project_response.rb +239 -0
  32. data/lib/patch_ruby/version.rb +15 -0
  33. data/patch_ruby.gemspec +39 -0
  34. data/spec/api/estimates_api_spec.rb +71 -0
  35. data/spec/api/orders_api_spec.rb +95 -0
  36. data/spec/api/preferences_api_spec.rb +83 -0
  37. data/spec/api/projects_api_spec.rb +59 -0
  38. data/spec/api_client_spec.rb +226 -0
  39. data/spec/configuration_spec.rb +42 -0
  40. data/spec/fixtures/vcr_cassettes/estimate_orders.yml +276 -0
  41. data/spec/fixtures/vcr_cassettes/estimates.yml +211 -0
  42. data/spec/fixtures/vcr_cassettes/orders.yml +229 -0
  43. data/spec/fixtures/vcr_cassettes/preferences.yml +352 -0
  44. data/spec/fixtures/vcr_cassettes/projects.yml +143 -0
  45. data/spec/integration/estimates_spec.rb +31 -0
  46. data/spec/integration/orders_spec.rb +53 -0
  47. data/spec/integration/preferences_spec.rb +40 -0
  48. data/spec/integration/projects_spec.rb +31 -0
  49. data/spec/models/allocation_spec.rb +53 -0
  50. data/spec/models/create_mass_estimate_request_spec.rb +41 -0
  51. data/spec/models/create_order_request_spec.rb +41 -0
  52. data/spec/models/create_preference_request_spec.rb +41 -0
  53. data/spec/models/error_response_spec.rb +53 -0
  54. data/spec/models/estimate_list_response_spec.rb +59 -0
  55. data/spec/models/estimate_response_spec.rb +53 -0
  56. data/spec/models/estimate_spec.rb +59 -0
  57. data/spec/models/meta_index_object_spec.rb +47 -0
  58. data/spec/models/order_list_response_spec.rb +59 -0
  59. data/spec/models/order_response_spec.rb +53 -0
  60. data/spec/models/order_spec.rb +85 -0
  61. data/spec/models/preference_list_response_spec.rb +59 -0
  62. data/spec/models/preference_response_spec.rb +53 -0
  63. data/spec/models/preference_spec.rb +53 -0
  64. data/spec/models/project_list_response_spec.rb +59 -0
  65. data/spec/models/project_response_spec.rb +53 -0
  66. data/spec/models/project_spec.rb +89 -0
  67. data/spec/spec_helper.rb +122 -0
  68. metadata +203 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: adcc2ae16ffd8f1fae30c7231ea100282a46b9cb59fa04ef855d37b3c0269b7e
4
+ data.tar.gz: 87c2e5a75eec03a3d05ccca1bc74201e658f3d1bf1a0eec3759b7df3c6815c77
5
+ SHA512:
6
+ metadata.gz: 0d8c3b806824a51b72215cab36372c1608e46c02b3e6ea007f060871da0c3e22e943edffc7484cbe9a9d551685bedd3e14e2eb35b3655e38dd6cfec8f9abcca6
7
+ data.tar.gz: b66e6323bfa7932d43d3865b28bc9e09d3cac9a14daa5177fe7a0c1bc5355403e64aed6cee1ba126c5c1fcf3b7c01152dd25408cb7add2742ddf07e20977c129
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :development, :test do
6
+ gem 'rake', '~> 13.0.1'
7
+ gem 'pry-byebug'
8
+ gem 'rubocop', '~> 0.66.0'
9
+ gem 'vcr', '~> 6.0'
10
+ end
@@ -0,0 +1,72 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ patch_ruby (1.0.0.pre)
5
+ json (~> 2.1, >= 2.1.0)
6
+ typhoeus (~> 1.0, >= 1.0.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ ast (2.4.1)
12
+ byebug (11.1.3)
13
+ coderay (1.1.3)
14
+ diff-lcs (1.4.3)
15
+ ethon (0.12.0)
16
+ ffi (>= 1.3.0)
17
+ ffi (1.13.1)
18
+ jaro_winkler (1.5.4)
19
+ json (2.3.1)
20
+ method_source (1.0.0)
21
+ parallel (1.19.2)
22
+ parser (2.7.1.4)
23
+ ast (~> 2.4.1)
24
+ pry (0.13.1)
25
+ coderay (~> 1.1)
26
+ method_source (~> 1.0)
27
+ pry-byebug (3.9.0)
28
+ byebug (~> 11.0)
29
+ pry (~> 0.13.0)
30
+ psych (3.1.0)
31
+ rainbow (3.0.0)
32
+ rake (13.0.1)
33
+ rspec (3.9.0)
34
+ rspec-core (~> 3.9.0)
35
+ rspec-expectations (~> 3.9.0)
36
+ rspec-mocks (~> 3.9.0)
37
+ rspec-core (3.9.2)
38
+ rspec-support (~> 3.9.3)
39
+ rspec-expectations (3.9.2)
40
+ diff-lcs (>= 1.2.0, < 2.0)
41
+ rspec-support (~> 3.9.0)
42
+ rspec-mocks (3.9.1)
43
+ diff-lcs (>= 1.2.0, < 2.0)
44
+ rspec-support (~> 3.9.0)
45
+ rspec-support (3.9.3)
46
+ rubocop (0.66.0)
47
+ jaro_winkler (~> 1.5.1)
48
+ parallel (~> 1.10)
49
+ parser (>= 2.5, != 2.5.1.1)
50
+ psych (>= 3.1.0)
51
+ rainbow (>= 2.2.2, < 4.0)
52
+ ruby-progressbar (~> 1.7)
53
+ unicode-display_width (>= 1.4.0, < 1.6)
54
+ ruby-progressbar (1.10.1)
55
+ typhoeus (1.4.0)
56
+ ethon (>= 0.9.0)
57
+ unicode-display_width (1.5.0)
58
+ vcr (6.0.0)
59
+
60
+ PLATFORMS
61
+ ruby
62
+
63
+ DEPENDENCIES
64
+ patch_ruby!
65
+ pry-byebug
66
+ rake (~> 13.0.1)
67
+ rspec (~> 3.6, >= 3.6.0)
68
+ rubocop (~> 0.66.0)
69
+ vcr (~> 6.0)
70
+
71
+ BUNDLED WITH
72
+ 2.1.4
@@ -0,0 +1,54 @@
1
+ # Patch ruby
2
+ ![Test](https://github.com/patch-technology/patch-ruby/workflows/Test/badge.svg)
3
+
4
+ The official Ruby gem for the [Patch API](https://www.usepatch.com)
5
+
6
+ ## Documentation
7
+
8
+ For detailed documentation and examples, see the [Patch API docs](https://www.usepatch.com).
9
+
10
+ ## Installation
11
+
12
+ Add the gem to your Gemfile:
13
+ ```ruby
14
+ gem 'patch_ruby'
15
+ ```
16
+
17
+ Then run:
18
+ ```shell
19
+ bundle
20
+ ```
21
+
22
+ Or install it directly with
23
+ ```shell
24
+ gem install patch_ruby
25
+ ```
26
+
27
+ ### Requirements
28
+ - Ruby 1.9+
29
+
30
+ ## Usage
31
+
32
+ After installing the gem, you'll have to configure it with your API key which is available from the API key page in the Patch dashboard:
33
+ ```ruby
34
+ require 'patch_ruby'
35
+
36
+ Patch.configure do |config|
37
+ # Configure the Patch gem with your API key here
38
+ config.access_token = ENV['PATCH_RUBY_API_KEY']
39
+ end
40
+ ```
41
+
42
+ Once configured, you can test it out:
43
+ ```ruby
44
+ begin
45
+ orders_response = Patch::Order.retrieve_orders
46
+
47
+ orders_response.data.each do |order|
48
+ puts "Order ID: #{order.id}, Order State: #{order.state}"
49
+ end
50
+ # Rescue from any Patch API errors
51
+ rescue Patch::ApiError => e
52
+ puts "Failed to retrieve Orders with status code #{e.code}: #{e.message}"
53
+ end
54
+ ```
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ begin
4
+ require 'rspec/core/rake_task'
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+ task default: :spec
8
+ rescue LoadError
9
+ # no rspec available
10
+ end
@@ -0,0 +1,61 @@
1
+ =begin
2
+ #Patch API V1
3
+
4
+ #The core API used to integrate with Patch's service
5
+
6
+ The version of the OpenAPI document: v1
7
+ Contact: developers@usepatch.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ # Common files
14
+ require 'patch_ruby/api_client'
15
+ require 'patch_ruby/api_error'
16
+ require 'patch_ruby/version'
17
+ require 'patch_ruby/configuration'
18
+
19
+ # Models
20
+ require 'patch_ruby/models/allocation'
21
+ require 'patch_ruby/models/create_mass_estimate_request'
22
+ require 'patch_ruby/models/create_order_request'
23
+ require 'patch_ruby/models/create_preference_request'
24
+ require 'patch_ruby/models/error_response'
25
+ require 'patch_ruby/models/estimate'
26
+ require 'patch_ruby/models/estimate_list_response'
27
+ require 'patch_ruby/models/estimate_response'
28
+ require 'patch_ruby/models/meta_index_object'
29
+ require 'patch_ruby/models/order'
30
+ require 'patch_ruby/models/order_list_response'
31
+ require 'patch_ruby/models/order_response'
32
+ require 'patch_ruby/models/preference'
33
+ require 'patch_ruby/models/preference_list_response'
34
+ require 'patch_ruby/models/preference_response'
35
+ require 'patch_ruby/models/project'
36
+ require 'patch_ruby/models/project_list_response'
37
+ require 'patch_ruby/models/project_response'
38
+
39
+ # APIs
40
+ require 'patch_ruby/api/estimates_api'
41
+ require 'patch_ruby/api/orders_api'
42
+ require 'patch_ruby/api/preferences_api'
43
+ require 'patch_ruby/api/projects_api'
44
+
45
+ module Patch
46
+ class << self
47
+ # Customize default settings for the SDK using block.
48
+ # Patch.configure do |config|
49
+ # config.username = "xxx"
50
+ # config.password = "xxx"
51
+ # end
52
+ # If no block given, return the default Configuration object.
53
+ def configure
54
+ if block_given?
55
+ yield(Configuration.default)
56
+ else
57
+ Configuration.default
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,213 @@
1
+ =begin
2
+ #Patch API V1
3
+
4
+ #The core API used to integrate with Patch's service
5
+
6
+ The version of the OpenAPI document: v1
7
+ Contact: developers@usepatch.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Patch
16
+ class EstimatesApi
17
+ OPERATIONS = [
18
+ :create_mass_estimate,
19
+ :retrieve_estimate,
20
+ :retrieve_estimates,
21
+ ]
22
+
23
+ attr_accessor :api_client
24
+
25
+ def initialize(api_client = ApiClient.default)
26
+ @api_client = api_client
27
+ end
28
+ # Create an estimate based on mass of CO2
29
+ # Creates an estimate for the mass of CO2 to be compensated. An order in the `draft` state will also be created, linked to the estimate.
30
+ # @param create_mass_estimate_request [CreateMassEstimateRequest]
31
+ # @param [Hash] opts the optional parameters
32
+ # @return [EstimateResponse]
33
+ def create_mass_estimate(create_mass_estimate_request, opts = {})
34
+ data, _status_code, _headers = create_mass_estimate_with_http_info(create_mass_estimate_request, opts)
35
+ data
36
+ end
37
+
38
+ # Create an estimate based on mass of CO2
39
+ # Creates an estimate for the mass of CO2 to be compensated. An order in the &#x60;draft&#x60; state will also be created, linked to the estimate.
40
+ # @param create_mass_estimate_request [CreateMassEstimateRequest]
41
+ # @param [Hash] opts the optional parameters
42
+ # @return [Array<(EstimateResponse, Integer, Hash)>] EstimateResponse data, response status code and response headers
43
+ def create_mass_estimate_with_http_info(create_mass_estimate_request, opts = {})
44
+ if @api_client.config.debugging
45
+ @api_client.config.logger.debug 'Calling API: EstimatesApi.create_mass_estimate ...'
46
+ end
47
+ # verify the required parameter 'create_mass_estimate_request' is set
48
+ if @api_client.config.client_side_validation && create_mass_estimate_request.nil?
49
+ fail ArgumentError, "Missing the required parameter 'create_mass_estimate_request' when calling EstimatesApi.create_mass_estimate"
50
+ end
51
+ # resource path
52
+ local_var_path = '/v1/estimates/mass'
53
+
54
+ # query parameters
55
+ query_params = opts[:query_params] || {}
56
+
57
+ # header parameters
58
+ header_params = opts[:header_params] || {}
59
+ # HTTP header 'Accept' (if needed)
60
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
61
+ # HTTP header 'Content-Type'
62
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
63
+
64
+ # form parameters
65
+ form_params = opts[:form_params] || {}
66
+
67
+ # http body (model)
68
+ post_body = opts[:body] || @api_client.object_to_http_body(create_mass_estimate_request)
69
+
70
+ # return_type
71
+ return_type = opts[:return_type] || 'EstimateResponse'
72
+
73
+ # auth_names
74
+ auth_names = opts[:auth_names] || ['bearer_auth']
75
+
76
+ new_options = opts.merge(
77
+ :header_params => header_params,
78
+ :query_params => query_params,
79
+ :form_params => form_params,
80
+ :body => post_body,
81
+ :auth_names => auth_names,
82
+ :return_type => return_type
83
+ )
84
+
85
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
86
+ if @api_client.config.debugging
87
+ @api_client.config.logger.debug "API called: EstimatesApi#create_mass_estimate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
88
+ end
89
+ return data, status_code, headers
90
+ end
91
+
92
+ # Retrieves an estimate
93
+ # Retrieves a given estimate and its associated order. You can only retrieve estimates associated with the organization you are querying for.
94
+ # @param id [String]
95
+ # @param [Hash] opts the optional parameters
96
+ # @return [EstimateResponse]
97
+ def retrieve_estimate(id, opts = {})
98
+ data, _status_code, _headers = retrieve_estimate_with_http_info(id, opts)
99
+ data
100
+ end
101
+
102
+ # Retrieves an estimate
103
+ # Retrieves a given estimate and its associated order. You can only retrieve estimates associated with the organization you are querying for.
104
+ # @param id [String]
105
+ # @param [Hash] opts the optional parameters
106
+ # @return [Array<(EstimateResponse, Integer, Hash)>] EstimateResponse data, response status code and response headers
107
+ def retrieve_estimate_with_http_info(id, opts = {})
108
+ if @api_client.config.debugging
109
+ @api_client.config.logger.debug 'Calling API: EstimatesApi.retrieve_estimate ...'
110
+ end
111
+ # verify the required parameter 'id' is set
112
+ if @api_client.config.client_side_validation && id.nil?
113
+ fail ArgumentError, "Missing the required parameter 'id' when calling EstimatesApi.retrieve_estimate"
114
+ end
115
+ # resource path
116
+ local_var_path = '/v1/estimates/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
117
+
118
+ # query parameters
119
+ query_params = opts[:query_params] || {}
120
+
121
+ # header parameters
122
+ header_params = opts[:header_params] || {}
123
+ # HTTP header 'Accept' (if needed)
124
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
125
+
126
+ # form parameters
127
+ form_params = opts[:form_params] || {}
128
+
129
+ # http body (model)
130
+ post_body = opts[:body]
131
+
132
+ # return_type
133
+ return_type = opts[:return_type] || 'EstimateResponse'
134
+
135
+ # auth_names
136
+ auth_names = opts[:auth_names] || ['bearer_auth']
137
+
138
+ new_options = opts.merge(
139
+ :header_params => header_params,
140
+ :query_params => query_params,
141
+ :form_params => form_params,
142
+ :body => post_body,
143
+ :auth_names => auth_names,
144
+ :return_type => return_type
145
+ )
146
+
147
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
148
+ if @api_client.config.debugging
149
+ @api_client.config.logger.debug "API called: EstimatesApi#retrieve_estimate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
150
+ end
151
+ return data, status_code, headers
152
+ end
153
+
154
+ # Retrieves a list of estimates
155
+ # Retrieves a list of estimates and their associated orders. You can only retrieve estimates associated with the organization you are querying for.
156
+ # @param [Hash] opts the optional parameters
157
+ # @option opts [Integer] :page
158
+ # @return [EstimateListResponse]
159
+ def retrieve_estimates(opts = {})
160
+ data, _status_code, _headers = retrieve_estimates_with_http_info(opts)
161
+ data
162
+ end
163
+
164
+ # Retrieves a list of estimates
165
+ # Retrieves a list of estimates and their associated orders. You can only retrieve estimates associated with the organization you are querying for.
166
+ # @param [Hash] opts the optional parameters
167
+ # @option opts [Integer] :page
168
+ # @return [Array<(EstimateListResponse, Integer, Hash)>] EstimateListResponse data, response status code and response headers
169
+ def retrieve_estimates_with_http_info(opts = {})
170
+ if @api_client.config.debugging
171
+ @api_client.config.logger.debug 'Calling API: EstimatesApi.retrieve_estimates ...'
172
+ end
173
+ # resource path
174
+ local_var_path = '/v1/estimates'
175
+
176
+ # query parameters
177
+ query_params = opts[:query_params] || {}
178
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
179
+
180
+ # header parameters
181
+ header_params = opts[:header_params] || {}
182
+ # HTTP header 'Accept' (if needed)
183
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
184
+
185
+ # form parameters
186
+ form_params = opts[:form_params] || {}
187
+
188
+ # http body (model)
189
+ post_body = opts[:body]
190
+
191
+ # return_type
192
+ return_type = opts[:return_type] || 'EstimateListResponse'
193
+
194
+ # auth_names
195
+ auth_names = opts[:auth_names] || ['bearer_auth']
196
+
197
+ new_options = opts.merge(
198
+ :header_params => header_params,
199
+ :query_params => query_params,
200
+ :form_params => form_params,
201
+ :body => post_body,
202
+ :auth_names => auth_names,
203
+ :return_type => return_type
204
+ )
205
+
206
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
207
+ if @api_client.config.debugging
208
+ @api_client.config.logger.debug "API called: EstimatesApi#retrieve_estimates\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
209
+ end
210
+ return data, status_code, headers
211
+ end
212
+ end
213
+ end
@@ -0,0 +1,339 @@
1
+ =begin
2
+ #Patch API V1
3
+
4
+ #The core API used to integrate with Patch's service
5
+
6
+ The version of the OpenAPI document: v1
7
+ Contact: developers@usepatch.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Patch
16
+ class OrdersApi
17
+ OPERATIONS = [
18
+ :cancel_order,
19
+ :create_order,
20
+ :place_order,
21
+ :retrieve_order,
22
+ :retrieve_orders,
23
+ ]
24
+
25
+ attr_accessor :api_client
26
+
27
+ def initialize(api_client = ApiClient.default)
28
+ @api_client = api_client
29
+ end
30
+ # Cancel an order
31
+ # Cancelling an order removes the associated offset allocation from an order. You will not be charged for cancelled orders. Only orders in the `draft` state can be cancelled.
32
+ # @param id [String]
33
+ # @param [Hash] opts the optional parameters
34
+ # @return [OrderResponse]
35
+ def cancel_order(id, opts = {})
36
+ data, _status_code, _headers = cancel_order_with_http_info(id, opts)
37
+ data
38
+ end
39
+
40
+ # Cancel an order
41
+ # Cancelling an order removes the associated offset allocation from an order. You will not be charged for cancelled orders. Only orders in the &#x60;draft&#x60; state can be cancelled.
42
+ # @param id [String]
43
+ # @param [Hash] opts the optional parameters
44
+ # @return [Array<(OrderResponse, Integer, Hash)>] OrderResponse data, response status code and response headers
45
+ def cancel_order_with_http_info(id, opts = {})
46
+ if @api_client.config.debugging
47
+ @api_client.config.logger.debug 'Calling API: OrdersApi.cancel_order ...'
48
+ end
49
+ # verify the required parameter 'id' is set
50
+ if @api_client.config.client_side_validation && id.nil?
51
+ fail ArgumentError, "Missing the required parameter 'id' when calling OrdersApi.cancel_order"
52
+ end
53
+ # resource path
54
+ local_var_path = '/v1/orders/{id}/cancel'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
55
+
56
+ # query parameters
57
+ query_params = opts[:query_params] || {}
58
+
59
+ # header parameters
60
+ header_params = opts[:header_params] || {}
61
+ # HTTP header 'Accept' (if needed)
62
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
63
+
64
+ # form parameters
65
+ form_params = opts[:form_params] || {}
66
+
67
+ # http body (model)
68
+ post_body = opts[:body]
69
+
70
+ # return_type
71
+ return_type = opts[:return_type] || 'OrderResponse'
72
+
73
+ # auth_names
74
+ auth_names = opts[:auth_names] || ['bearer_auth']
75
+
76
+ new_options = opts.merge(
77
+ :header_params => header_params,
78
+ :query_params => query_params,
79
+ :form_params => form_params,
80
+ :body => post_body,
81
+ :auth_names => auth_names,
82
+ :return_type => return_type
83
+ )
84
+
85
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
86
+ if @api_client.config.debugging
87
+ @api_client.config.logger.debug "API called: OrdersApi#cancel_order\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
88
+ end
89
+ return data, status_code, headers
90
+ end
91
+
92
+ # Creates an order
93
+ # Creates an order in the `placed` state. To create a `draft` order, create an estimate first.
94
+ # @param create_order_request [CreateOrderRequest]
95
+ # @param [Hash] opts the optional parameters
96
+ # @return [OrderResponse]
97
+ def create_order(create_order_request, opts = {})
98
+ data, _status_code, _headers = create_order_with_http_info(create_order_request, opts)
99
+ data
100
+ end
101
+
102
+ # Creates an order
103
+ # Creates an order in the &#x60;placed&#x60; state. To create a &#x60;draft&#x60; order, create an estimate first.
104
+ # @param create_order_request [CreateOrderRequest]
105
+ # @param [Hash] opts the optional parameters
106
+ # @return [Array<(OrderResponse, Integer, Hash)>] OrderResponse data, response status code and response headers
107
+ def create_order_with_http_info(create_order_request, opts = {})
108
+ if @api_client.config.debugging
109
+ @api_client.config.logger.debug 'Calling API: OrdersApi.create_order ...'
110
+ end
111
+ # verify the required parameter 'create_order_request' is set
112
+ if @api_client.config.client_side_validation && create_order_request.nil?
113
+ fail ArgumentError, "Missing the required parameter 'create_order_request' when calling OrdersApi.create_order"
114
+ end
115
+ # resource path
116
+ local_var_path = '/v1/orders'
117
+
118
+ # query parameters
119
+ query_params = opts[:query_params] || {}
120
+
121
+ # header parameters
122
+ header_params = opts[:header_params] || {}
123
+ # HTTP header 'Accept' (if needed)
124
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
125
+ # HTTP header 'Content-Type'
126
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
127
+
128
+ # form parameters
129
+ form_params = opts[:form_params] || {}
130
+
131
+ # http body (model)
132
+ post_body = opts[:body] || @api_client.object_to_http_body(create_order_request)
133
+
134
+ # return_type
135
+ return_type = opts[:return_type] || 'OrderResponse'
136
+
137
+ # auth_names
138
+ auth_names = opts[:auth_names] || ['bearer_auth']
139
+
140
+ new_options = opts.merge(
141
+ :header_params => header_params,
142
+ :query_params => query_params,
143
+ :form_params => form_params,
144
+ :body => post_body,
145
+ :auth_names => auth_names,
146
+ :return_type => return_type
147
+ )
148
+
149
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
150
+ if @api_client.config.debugging
151
+ @api_client.config.logger.debug "API called: OrdersApi#create_order\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
152
+ end
153
+ return data, status_code, headers
154
+ end
155
+
156
+ # Place an order
157
+ # Placing an order confirms an order's allocation of offsets. Only orders that are in the `draft` state can be placed
158
+ # @param id [String]
159
+ # @param [Hash] opts the optional parameters
160
+ # @return [OrderResponse]
161
+ def place_order(id, opts = {})
162
+ data, _status_code, _headers = place_order_with_http_info(id, opts)
163
+ data
164
+ end
165
+
166
+ # Place an order
167
+ # Placing an order confirms an order&#39;s allocation of offsets. Only orders that are in the &#x60;draft&#x60; state can be placed
168
+ # @param id [String]
169
+ # @param [Hash] opts the optional parameters
170
+ # @return [Array<(OrderResponse, Integer, Hash)>] OrderResponse data, response status code and response headers
171
+ def place_order_with_http_info(id, opts = {})
172
+ if @api_client.config.debugging
173
+ @api_client.config.logger.debug 'Calling API: OrdersApi.place_order ...'
174
+ end
175
+ # verify the required parameter 'id' is set
176
+ if @api_client.config.client_side_validation && id.nil?
177
+ fail ArgumentError, "Missing the required parameter 'id' when calling OrdersApi.place_order"
178
+ end
179
+ # resource path
180
+ local_var_path = '/v1/orders/{id}/place'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
181
+
182
+ # query parameters
183
+ query_params = opts[:query_params] || {}
184
+
185
+ # header parameters
186
+ header_params = opts[:header_params] || {}
187
+ # HTTP header 'Accept' (if needed)
188
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
189
+
190
+ # form parameters
191
+ form_params = opts[:form_params] || {}
192
+
193
+ # http body (model)
194
+ post_body = opts[:body]
195
+
196
+ # return_type
197
+ return_type = opts[:return_type] || 'OrderResponse'
198
+
199
+ # auth_names
200
+ auth_names = opts[:auth_names] || ['bearer_auth']
201
+
202
+ new_options = opts.merge(
203
+ :header_params => header_params,
204
+ :query_params => query_params,
205
+ :form_params => form_params,
206
+ :body => post_body,
207
+ :auth_names => auth_names,
208
+ :return_type => return_type
209
+ )
210
+
211
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
212
+ if @api_client.config.debugging
213
+ @api_client.config.logger.debug "API called: OrdersApi#place_order\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
214
+ end
215
+ return data, status_code, headers
216
+ end
217
+
218
+ # Retrieves an order
219
+ # Retrieves a given order and its allocation offsets or negative emissions. You can only retrieve orders associated with the organization you are querying for.
220
+ # @param id [String]
221
+ # @param [Hash] opts the optional parameters
222
+ # @return [OrderResponse]
223
+ def retrieve_order(id, opts = {})
224
+ data, _status_code, _headers = retrieve_order_with_http_info(id, opts)
225
+ data
226
+ end
227
+
228
+ # Retrieves an order
229
+ # Retrieves a given order and its allocation offsets or negative emissions. You can only retrieve orders associated with the organization you are querying for.
230
+ # @param id [String]
231
+ # @param [Hash] opts the optional parameters
232
+ # @return [Array<(OrderResponse, Integer, Hash)>] OrderResponse data, response status code and response headers
233
+ def retrieve_order_with_http_info(id, opts = {})
234
+ if @api_client.config.debugging
235
+ @api_client.config.logger.debug 'Calling API: OrdersApi.retrieve_order ...'
236
+ end
237
+ # verify the required parameter 'id' is set
238
+ if @api_client.config.client_side_validation && id.nil?
239
+ fail ArgumentError, "Missing the required parameter 'id' when calling OrdersApi.retrieve_order"
240
+ end
241
+ # resource path
242
+ local_var_path = '/v1/orders/{id}'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
243
+
244
+ # query parameters
245
+ query_params = opts[:query_params] || {}
246
+
247
+ # header parameters
248
+ header_params = opts[:header_params] || {}
249
+ # HTTP header 'Accept' (if needed)
250
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
251
+
252
+ # form parameters
253
+ form_params = opts[:form_params] || {}
254
+
255
+ # http body (model)
256
+ post_body = opts[:body]
257
+
258
+ # return_type
259
+ return_type = opts[:return_type] || 'OrderResponse'
260
+
261
+ # auth_names
262
+ auth_names = opts[:auth_names] || ['bearer_auth']
263
+
264
+ new_options = opts.merge(
265
+ :header_params => header_params,
266
+ :query_params => query_params,
267
+ :form_params => form_params,
268
+ :body => post_body,
269
+ :auth_names => auth_names,
270
+ :return_type => return_type
271
+ )
272
+
273
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
274
+ if @api_client.config.debugging
275
+ @api_client.config.logger.debug "API called: OrdersApi#retrieve_order\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
276
+ end
277
+ return data, status_code, headers
278
+ end
279
+
280
+ # Retrieves a list of orders
281
+ # Retrieves a list of orders and its allocation offsets or negative emissions. You can only retrieve orders associated with the organization you are querying for.
282
+ # @param [Hash] opts the optional parameters
283
+ # @option opts [Integer] :page
284
+ # @return [OrderListResponse]
285
+ def retrieve_orders(opts = {})
286
+ data, _status_code, _headers = retrieve_orders_with_http_info(opts)
287
+ data
288
+ end
289
+
290
+ # Retrieves a list of orders
291
+ # Retrieves a list of orders and its allocation offsets or negative emissions. You can only retrieve orders associated with the organization you are querying for.
292
+ # @param [Hash] opts the optional parameters
293
+ # @option opts [Integer] :page
294
+ # @return [Array<(OrderListResponse, Integer, Hash)>] OrderListResponse data, response status code and response headers
295
+ def retrieve_orders_with_http_info(opts = {})
296
+ if @api_client.config.debugging
297
+ @api_client.config.logger.debug 'Calling API: OrdersApi.retrieve_orders ...'
298
+ end
299
+ # resource path
300
+ local_var_path = '/v1/orders'
301
+
302
+ # query parameters
303
+ query_params = opts[:query_params] || {}
304
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
305
+
306
+ # header parameters
307
+ header_params = opts[:header_params] || {}
308
+ # HTTP header 'Accept' (if needed)
309
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
310
+
311
+ # form parameters
312
+ form_params = opts[:form_params] || {}
313
+
314
+ # http body (model)
315
+ post_body = opts[:body]
316
+
317
+ # return_type
318
+ return_type = opts[:return_type] || 'OrderListResponse'
319
+
320
+ # auth_names
321
+ auth_names = opts[:auth_names] || ['bearer_auth']
322
+
323
+ new_options = opts.merge(
324
+ :header_params => header_params,
325
+ :query_params => query_params,
326
+ :form_params => form_params,
327
+ :body => post_body,
328
+ :auth_names => auth_names,
329
+ :return_type => return_type
330
+ )
331
+
332
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
333
+ if @api_client.config.debugging
334
+ @api_client.config.logger.debug "API called: OrdersApi#retrieve_orders\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
335
+ end
336
+ return data, status_code, headers
337
+ end
338
+ end
339
+ end