transferzero-sdk 1.3.0 → 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.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -18
  3. data/docs/AccountMeta.md +1 -1
  4. data/docs/AccountValidationApi.md +4 -4
  5. data/docs/AccountValidationRequest.md +6 -4
  6. data/docs/Currency.md +1 -1
  7. data/docs/CurrencyExchange.md +1 -1
  8. data/docs/CurrencyOpposite.md +1 -1
  9. data/docs/Document.md +5 -1
  10. data/docs/DocumentsApi.md +74 -2
  11. data/docs/FieldSelectValidation.md +1 -1
  12. data/docs/FieldValidation.md +1 -1
  13. data/docs/PayinMethod.md +4 -4
  14. data/docs/PayinMethodDetails.md +5 -3
  15. data/docs/PayinMethodDetailsMobile.md +1 -1
  16. data/docs/PayinMethodDetailsNGNBank.md +4 -2
  17. data/docs/PaymentMethod.md +2 -2
  18. data/docs/PaymentMethodOpposite.md +2 -2
  19. data/docs/PayoutMethod.md +1 -1
  20. data/docs/PayoutMethodDetails.md +5 -3
  21. data/docs/PayoutMethodDetailsNGNBank.md +1 -1
  22. data/docs/PayoutMethodDetailsXOFBank.md +25 -0
  23. data/docs/PoliticallyExposedPerson.md +31 -0
  24. data/docs/Recipient.md +3 -3
  25. data/docs/RecipientsApi.md +2 -2
  26. data/docs/Sender.md +2 -0
  27. data/docs/Transaction.md +5 -5
  28. data/docs/TransactionTraits.md +2 -2
  29. data/docs/TransactionsApi.md +64 -0
  30. data/example/client.rb +14 -14
  31. data/git_push.sh +1 -1
  32. data/lib/transferzero-sdk.rb +2 -7
  33. data/lib/transferzero-sdk/api/account_validation_api.rb +4 -4
  34. data/lib/transferzero-sdk/api/documents_api.rb +63 -0
  35. data/lib/transferzero-sdk/api/recipients_api.rb +2 -2
  36. data/lib/transferzero-sdk/api/transactions_api.rb +59 -0
  37. data/lib/transferzero-sdk/api_client.rb +1 -1
  38. data/lib/transferzero-sdk/models/account_validation_request.rb +15 -15
  39. data/lib/transferzero-sdk/models/currency_exchange.rb +1 -2
  40. data/lib/transferzero-sdk/models/currency_opposite.rb +1 -2
  41. data/lib/transferzero-sdk/models/document.rb +20 -1
  42. data/lib/transferzero-sdk/models/document_webhook.rb +0 -1
  43. data/lib/transferzero-sdk/models/payin_method.rb +4 -4
  44. data/lib/transferzero-sdk/models/payin_method_details.rb +12 -7
  45. data/lib/transferzero-sdk/models/payin_method_details_ngn_bank.rb +11 -6
  46. data/lib/transferzero-sdk/models/payout_method.rb +1 -1
  47. data/lib/transferzero-sdk/models/payout_method_details.rb +25 -15
  48. data/lib/transferzero-sdk/models/payout_method_details_ngn_bank.rb +0 -5
  49. data/lib/transferzero-sdk/models/{currency_opposite_all_of.rb → payout_method_details_xof_bank.rb} +69 -18
  50. data/lib/transferzero-sdk/models/payout_method_webhook.rb +0 -1
  51. data/lib/transferzero-sdk/models/{payout_method_webhook_all_of.rb → politically_exposed_person.rb} +81 -10
  52. data/lib/transferzero-sdk/models/recipient_webhook.rb +0 -1
  53. data/lib/transferzero-sdk/models/sender.rb +14 -2
  54. data/lib/transferzero-sdk/models/sender_state.rb +1 -0
  55. data/lib/transferzero-sdk/models/sender_webhook.rb +0 -1
  56. data/lib/transferzero-sdk/models/transaction.rb +2 -2
  57. data/lib/transferzero-sdk/models/transaction_state.rb +1 -0
  58. data/lib/transferzero-sdk/models/transaction_traits.rb +3 -3
  59. data/lib/transferzero-sdk/models/transaction_webhook.rb +0 -1
  60. data/lib/transferzero-sdk/models/webhook.rb +1 -1
  61. data/lib/transferzero-sdk/version.rb +1 -1
  62. data/spec/api/account_validation_api_spec.rb +2 -2
  63. data/spec/api/currency_info_api_spec.rb +2 -0
  64. data/spec/api/documents_api_spec.rb +15 -0
  65. data/spec/api/recipients_api_spec.rb +1 -1
  66. data/spec/api/transactions_api_spec.rb +13 -0
  67. data/spec/models/account_validation_request_spec.rb +7 -1
  68. data/spec/models/currency_opposite_spec.rb +6 -0
  69. data/spec/models/document_spec.rb +12 -0
  70. data/spec/models/payin_method_details_ngn_bank_spec.rb +6 -0
  71. data/spec/models/payin_method_details_spec.rb +6 -0
  72. data/spec/models/payout_method_details_spec.rb +7 -1
  73. data/spec/models/payout_method_details_xof_bank_spec.rb +65 -0
  74. data/spec/models/politically_exposed_person_spec.rb +83 -0
  75. data/spec/models/recipient_spec.rb +6 -0
  76. data/spec/models/sender_spec.rb +16 -0
  77. data/transferzero-sdk.gemspec +2 -2
  78. metadata +17 -46
  79. data/Gemfile.lock +0 -93
  80. data/docs/CurrencyExchangeAllOf.md +0 -17
  81. data/docs/CurrencyOppositeAllOf.md +0 -19
  82. data/docs/DocumentWebhookAllOf.md +0 -17
  83. data/docs/PayoutMethodWebhookAllOf.md +0 -17
  84. data/docs/RecipientWebhookAllOf.md +0 -17
  85. data/docs/SenderWebhookAllOf.md +0 -17
  86. data/docs/TransactionWebhookAllOf.md +0 -17
  87. data/lib/transferzero-sdk/models/currency_exchange_all_of.rb +0 -204
  88. data/lib/transferzero-sdk/models/document_webhook_all_of.rb +0 -201
  89. data/lib/transferzero-sdk/models/recipient_webhook_all_of.rb +0 -201
  90. data/lib/transferzero-sdk/models/sender_webhook_all_of.rb +0 -201
  91. data/lib/transferzero-sdk/models/transaction_webhook_all_of.rb +0 -201
  92. data/spec/api_client_spec.rb +0 -189
  93. data/spec/models/currency_exchange_all_of_spec.rb +0 -41
  94. data/spec/models/currency_opposite_all_of_spec.rb +0 -41
  95. data/spec/models/document_webhook_all_of_spec.rb +0 -41
  96. data/spec/models/payout_method_webhook_all_of_spec.rb +0 -41
  97. data/spec/models/recipient_webhook_all_of_spec.rb +0 -41
  98. data/spec/models/sender_webhook_all_of_spec.rb +0 -41
  99. data/spec/models/transaction_webhook_all_of_spec.rb +0 -41
@@ -1,189 +0,0 @@
1
- =begin
2
- #TransferZero API
3
-
4
- #Reference documentation for the TransferZero API V1
5
-
6
- OpenAPI spec version: 1.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.0.0-beta2
10
-
11
- =end
12
-
13
- require 'spec_helper'
14
-
15
- describe TransferZero::ApiClient do
16
- context 'initialization' do
17
- context 'URL stuff' do
18
- context 'host' do
19
- it 'removes http from host' do
20
- TransferZero.configure { |c| c.host = 'http://example.com' }
21
- expect(TransferZero::Configuration.default.host).to eq('example.com')
22
- end
23
-
24
- it 'removes https from host' do
25
- TransferZero.configure { |c| c.host = 'https://wookiee.com' }
26
- expect(TransferZero::ApiClient.default.config.host).to eq('wookiee.com')
27
- end
28
-
29
- it 'removes trailing path from host' do
30
- TransferZero.configure { |c| c.host = 'hobo.com/v4' }
31
- expect(TransferZero::Configuration.default.host).to eq('hobo.com')
32
- end
33
- end
34
-
35
- context 'base_path' do
36
- it "prepends a slash to base_path" do
37
- TransferZero.configure { |c| c.base_path = 'v4/dog' }
38
- expect(TransferZero::Configuration.default.base_path).to eq('/v4/dog')
39
- end
40
-
41
- it "doesn't prepend a slash if one is already there" do
42
- TransferZero.configure { |c| c.base_path = '/v4/dog' }
43
- expect(TransferZero::Configuration.default.base_path).to eq('/v4/dog')
44
- end
45
-
46
- it "ends up as a blank string if nil" do
47
- TransferZero.configure { |c| c.base_path = nil }
48
- expect(TransferZero::Configuration.default.base_path).to eq('')
49
- end
50
- end
51
- end
52
- end
53
-
54
- describe '#deserialize' do
55
- it "handles Array<Integer>" do
56
- api_client = TransferZero::ApiClient.new
57
- headers = { 'Content-Type' => 'application/json' }
58
- response = double('response', headers: headers, body: '[12, 34]')
59
- data = api_client.deserialize(response, 'Array<Integer>')
60
- expect(data).to be_instance_of(Array)
61
- expect(data).to eq([12, 34])
62
- end
63
-
64
- it 'handles Array<Array<Integer>>' do
65
- api_client = TransferZero::ApiClient.new
66
- headers = { 'Content-Type' => 'application/json' }
67
- response = double('response', headers: headers, body: '[[12, 34], [56]]')
68
- data = api_client.deserialize(response, 'Array<Array<Integer>>')
69
- expect(data).to be_instance_of(Array)
70
- expect(data).to eq([[12, 34], [56]])
71
- end
72
-
73
- it 'handles Hash<String, String>' do
74
- api_client = TransferZero::ApiClient.new
75
- headers = { 'Content-Type' => 'application/json' }
76
- response = double('response', headers: headers, body: '{"message": "Hello"}')
77
- data = api_client.deserialize(response, 'Hash<String, String>')
78
- expect(data).to be_instance_of(Hash)
79
- expect(data).to eq(:message => 'Hello')
80
- end
81
- end
82
-
83
- describe "#object_to_hash" do
84
- it 'ignores nils and includes empty arrays' do
85
- # uncomment below to test object_to_hash for model
86
- # api_client = TransferZero::ApiClient.new
87
- # _model = TransferZero::ModelName.new
88
- # update the model attribute below
89
- # _model.id = 1
90
- # update the expected value (hash) below
91
- # expected = {id: 1, name: '', tags: []}
92
- # expect(api_client.object_to_hash(_model)).to eq(expected)
93
- end
94
- end
95
-
96
- describe '#build_collection_param' do
97
- let(:param) { ['aa', 'bb', 'cc'] }
98
- let(:api_client) { TransferZero::ApiClient.new }
99
-
100
- it 'works for csv' do
101
- expect(api_client.build_collection_param(param, :csv)).to eq('aa,bb,cc')
102
- end
103
-
104
- it 'works for ssv' do
105
- expect(api_client.build_collection_param(param, :ssv)).to eq('aa bb cc')
106
- end
107
-
108
- it 'works for tsv' do
109
- expect(api_client.build_collection_param(param, :tsv)).to eq("aa\tbb\tcc")
110
- end
111
-
112
- it 'works for pipes' do
113
- expect(api_client.build_collection_param(param, :pipes)).to eq('aa|bb|cc')
114
- end
115
-
116
- it 'works for multi' do
117
- expect(api_client.build_collection_param(param, :multi)).to eq(['aa', 'bb', 'cc'])
118
- end
119
-
120
- it 'fails for invalid collection format' do
121
- expect(proc { api_client.build_collection_param(param, :INVALID) }).to raise_error(RuntimeError, 'unknown collection format: :INVALID')
122
- end
123
- end
124
-
125
- describe '#json_mime?' do
126
- let(:api_client) { TransferZero::ApiClient.new }
127
-
128
- it 'works' do
129
- expect(api_client.json_mime?(nil)).to eq false
130
- expect(api_client.json_mime?('')).to eq false
131
-
132
- expect(api_client.json_mime?('application/json')).to eq true
133
- expect(api_client.json_mime?('application/json; charset=UTF8')).to eq true
134
- expect(api_client.json_mime?('APPLICATION/JSON')).to eq true
135
-
136
- expect(api_client.json_mime?('application/xml')).to eq false
137
- expect(api_client.json_mime?('text/plain')).to eq false
138
- expect(api_client.json_mime?('application/jsonp')).to eq false
139
- end
140
- end
141
-
142
- describe '#select_header_accept' do
143
- let(:api_client) { TransferZero::ApiClient.new }
144
-
145
- it 'works' do
146
- expect(api_client.select_header_accept(nil)).to be_nil
147
- expect(api_client.select_header_accept([])).to be_nil
148
-
149
- expect(api_client.select_header_accept(['application/json'])).to eq('application/json')
150
- expect(api_client.select_header_accept(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8')
151
- expect(api_client.select_header_accept(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON')
152
-
153
- expect(api_client.select_header_accept(['application/xml'])).to eq('application/xml')
154
- expect(api_client.select_header_accept(['text/html', 'application/xml'])).to eq('text/html,application/xml')
155
- end
156
- end
157
-
158
- describe '#select_header_content_type' do
159
- let(:api_client) { TransferZero::ApiClient.new }
160
-
161
- it 'works' do
162
- expect(api_client.select_header_content_type(nil)).to eq('application/json')
163
- expect(api_client.select_header_content_type([])).to eq('application/json')
164
-
165
- expect(api_client.select_header_content_type(['application/json'])).to eq('application/json')
166
- expect(api_client.select_header_content_type(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8')
167
- expect(api_client.select_header_content_type(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON')
168
- expect(api_client.select_header_content_type(['application/xml'])).to eq('application/xml')
169
- expect(api_client.select_header_content_type(['text/plain', 'application/xml'])).to eq('text/plain')
170
- end
171
- end
172
-
173
- describe '#sanitize_filename' do
174
- let(:api_client) { TransferZero::ApiClient.new }
175
-
176
- it 'works' do
177
- expect(api_client.sanitize_filename('sun')).to eq('sun')
178
- expect(api_client.sanitize_filename('sun.gif')).to eq('sun.gif')
179
- expect(api_client.sanitize_filename('../sun.gif')).to eq('sun.gif')
180
- expect(api_client.sanitize_filename('/var/tmp/sun.gif')).to eq('sun.gif')
181
- expect(api_client.sanitize_filename('./sun.gif')).to eq('sun.gif')
182
- expect(api_client.sanitize_filename('..\sun.gif')).to eq('sun.gif')
183
- expect(api_client.sanitize_filename('\var\tmp\sun.gif')).to eq('sun.gif')
184
- expect(api_client.sanitize_filename('c:\var\tmp\sun.gif')).to eq('sun.gif')
185
- expect(api_client.sanitize_filename('.\sun.gif')).to eq('sun.gif')
186
- end
187
- end
188
- end
189
-
@@ -1,41 +0,0 @@
1
- =begin
2
- #TransferZero API
3
-
4
- #Reference documentation for the TransferZero API V1
5
-
6
- OpenAPI spec version: 1.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.0.0-beta3
10
-
11
- =end
12
-
13
- require 'spec_helper'
14
- require 'json'
15
- require 'date'
16
-
17
- # Unit tests for TransferZero::CurrencyExchangeAllOf
18
- # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
- # Please update as you see appropriate
20
- describe 'CurrencyExchangeAllOf' do
21
- before do
22
- # run before each test
23
- @instance = TransferZero::CurrencyExchangeAllOf.new
24
- end
25
-
26
- after do
27
- # run after each test
28
- end
29
-
30
- describe 'test an instance of CurrencyExchangeAllOf' do
31
- it 'should create an instance of CurrencyExchangeAllOf' do
32
- expect(@instance).to be_instance_of(TransferZero::CurrencyExchangeAllOf)
33
- end
34
- end
35
- describe 'test attribute "opposites"' do
36
- it 'should work' do
37
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
- end
39
- end
40
-
41
- end
@@ -1,41 +0,0 @@
1
- =begin
2
- #TransferZero API
3
-
4
- #Reference documentation for the TransferZero API V1
5
-
6
- OpenAPI spec version: 1.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.0.0-beta3
10
-
11
- =end
12
-
13
- require 'spec_helper'
14
- require 'json'
15
- require 'date'
16
-
17
- # Unit tests for TransferZero::CurrencyOppositeAllOf
18
- # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
- # Please update as you see appropriate
20
- describe 'CurrencyOppositeAllOf' do
21
- before do
22
- # run before each test
23
- @instance = TransferZero::CurrencyOppositeAllOf.new
24
- end
25
-
26
- after do
27
- # run after each test
28
- end
29
-
30
- describe 'test an instance of CurrencyOppositeAllOf' do
31
- it 'should create an instance of CurrencyOppositeAllOf' do
32
- expect(@instance).to be_instance_of(TransferZero::CurrencyOppositeAllOf)
33
- end
34
- end
35
- describe 'test attribute "rate"' do
36
- it 'should work' do
37
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
- end
39
- end
40
-
41
- end
@@ -1,41 +0,0 @@
1
- =begin
2
- #TransferZero API
3
-
4
- #Reference documentation for the TransferZero API V1
5
-
6
- OpenAPI spec version: 1.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.0.0-beta3
10
-
11
- =end
12
-
13
- require 'spec_helper'
14
- require 'json'
15
- require 'date'
16
-
17
- # Unit tests for TransferZero::DocumentWebhookAllOf
18
- # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
- # Please update as you see appropriate
20
- describe 'DocumentWebhookAllOf' do
21
- before do
22
- # run before each test
23
- @instance = TransferZero::DocumentWebhookAllOf.new
24
- end
25
-
26
- after do
27
- # run after each test
28
- end
29
-
30
- describe 'test an instance of DocumentWebhookAllOf' do
31
- it 'should create an instance of DocumentWebhookAllOf' do
32
- expect(@instance).to be_instance_of(TransferZero::DocumentWebhookAllOf)
33
- end
34
- end
35
- describe 'test attribute "object"' do
36
- it 'should work' do
37
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
- end
39
- end
40
-
41
- end
@@ -1,41 +0,0 @@
1
- =begin
2
- #TransferZero API
3
-
4
- #Reference documentation for the TransferZero API V1
5
-
6
- OpenAPI spec version: 1.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.0.0-beta3
10
-
11
- =end
12
-
13
- require 'spec_helper'
14
- require 'json'
15
- require 'date'
16
-
17
- # Unit tests for TransferZero::PayoutMethodWebhookAllOf
18
- # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
- # Please update as you see appropriate
20
- describe 'PayoutMethodWebhookAllOf' do
21
- before do
22
- # run before each test
23
- @instance = TransferZero::PayoutMethodWebhookAllOf.new
24
- end
25
-
26
- after do
27
- # run after each test
28
- end
29
-
30
- describe 'test an instance of PayoutMethodWebhookAllOf' do
31
- it 'should create an instance of PayoutMethodWebhookAllOf' do
32
- expect(@instance).to be_instance_of(TransferZero::PayoutMethodWebhookAllOf)
33
- end
34
- end
35
- describe 'test attribute "object"' do
36
- it 'should work' do
37
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
- end
39
- end
40
-
41
- end
@@ -1,41 +0,0 @@
1
- =begin
2
- #TransferZero API
3
-
4
- #Reference documentation for the TransferZero API V1
5
-
6
- OpenAPI spec version: 1.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.0.0-beta3
10
-
11
- =end
12
-
13
- require 'spec_helper'
14
- require 'json'
15
- require 'date'
16
-
17
- # Unit tests for TransferZero::RecipientWebhookAllOf
18
- # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
- # Please update as you see appropriate
20
- describe 'RecipientWebhookAllOf' do
21
- before do
22
- # run before each test
23
- @instance = TransferZero::RecipientWebhookAllOf.new
24
- end
25
-
26
- after do
27
- # run after each test
28
- end
29
-
30
- describe 'test an instance of RecipientWebhookAllOf' do
31
- it 'should create an instance of RecipientWebhookAllOf' do
32
- expect(@instance).to be_instance_of(TransferZero::RecipientWebhookAllOf)
33
- end
34
- end
35
- describe 'test attribute "object"' do
36
- it 'should work' do
37
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
- end
39
- end
40
-
41
- end
@@ -1,41 +0,0 @@
1
- =begin
2
- #TransferZero API
3
-
4
- #Reference documentation for the TransferZero API V1
5
-
6
- OpenAPI spec version: 1.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.0.0-beta3
10
-
11
- =end
12
-
13
- require 'spec_helper'
14
- require 'json'
15
- require 'date'
16
-
17
- # Unit tests for TransferZero::SenderWebhookAllOf
18
- # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
- # Please update as you see appropriate
20
- describe 'SenderWebhookAllOf' do
21
- before do
22
- # run before each test
23
- @instance = TransferZero::SenderWebhookAllOf.new
24
- end
25
-
26
- after do
27
- # run after each test
28
- end
29
-
30
- describe 'test an instance of SenderWebhookAllOf' do
31
- it 'should create an instance of SenderWebhookAllOf' do
32
- expect(@instance).to be_instance_of(TransferZero::SenderWebhookAllOf)
33
- end
34
- end
35
- describe 'test attribute "object"' do
36
- it 'should work' do
37
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
- end
39
- end
40
-
41
- end
@@ -1,41 +0,0 @@
1
- =begin
2
- #TransferZero API
3
-
4
- #Reference documentation for the TransferZero API V1
5
-
6
- OpenAPI spec version: 1.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.0.0-beta3
10
-
11
- =end
12
-
13
- require 'spec_helper'
14
- require 'json'
15
- require 'date'
16
-
17
- # Unit tests for TransferZero::TransactionWebhookAllOf
18
- # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
- # Please update as you see appropriate
20
- describe 'TransactionWebhookAllOf' do
21
- before do
22
- # run before each test
23
- @instance = TransferZero::TransactionWebhookAllOf.new
24
- end
25
-
26
- after do
27
- # run after each test
28
- end
29
-
30
- describe 'test an instance of TransactionWebhookAllOf' do
31
- it 'should create an instance of TransactionWebhookAllOf' do
32
- expect(@instance).to be_instance_of(TransferZero::TransactionWebhookAllOf)
33
- end
34
- end
35
- describe 'test attribute "object"' do
36
- it 'should work' do
37
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
- end
39
- end
40
-
41
- end