starling-ruby 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +8 -0
  3. data/.gitignore +1 -0
  4. data/.reek +27 -0
  5. data/.rubocop.yml +6 -4
  6. data/CHANGELOG.md +17 -0
  7. data/Gemfile.lock +37 -2
  8. data/README.md +102 -17
  9. data/bin/console +2 -6
  10. data/lib/starling.rb +40 -7
  11. data/lib/starling/api_service.rb +45 -37
  12. data/lib/starling/client.rb +165 -6
  13. data/lib/starling/errors/api_error.rb +35 -2
  14. data/lib/starling/errors/base_error.rb +6 -24
  15. data/lib/starling/middlewares/raise_starling_errors.rb +11 -10
  16. data/lib/starling/request.rb +17 -19
  17. data/lib/starling/resources/account_balance_resource.rb +14 -6
  18. data/lib/starling/resources/account_resource.rb +10 -0
  19. data/lib/starling/resources/address_resource.rb +26 -0
  20. data/lib/starling/resources/addresses_resource.rb +18 -0
  21. data/lib/starling/resources/base_resource.rb +34 -9
  22. data/lib/starling/resources/card_resource.rb +46 -0
  23. data/lib/starling/resources/contact_account_resource.rb +31 -0
  24. data/lib/starling/resources/contact_resource.rb +16 -0
  25. data/lib/starling/resources/customer_resource.rb +36 -0
  26. data/lib/starling/resources/direct_debit_mandate_resource.rb +43 -0
  27. data/lib/starling/resources/direct_debit_transaction_resource.rb +54 -0
  28. data/lib/starling/resources/inbound_faster_payments_transaction_resource.rb +56 -0
  29. data/lib/starling/resources/mastercard_transaction_resource.rb +73 -0
  30. data/lib/starling/resources/me_resource.rb +26 -0
  31. data/lib/starling/resources/merchant_location_resource.rb +33 -0
  32. data/lib/starling/resources/merchant_resource.rb +34 -0
  33. data/lib/starling/resources/outbound_faster_payments_transaction_resource.rb +56 -0
  34. data/lib/starling/resources/payment_resource.rb +78 -0
  35. data/lib/starling/resources/transaction_resource.rb +42 -0
  36. data/lib/starling/services/account_balance_service.rb +11 -2
  37. data/lib/starling/services/account_service.rb +16 -3
  38. data/lib/starling/services/addresses_service.rb +26 -0
  39. data/lib/starling/services/base_service.rb +22 -1
  40. data/lib/starling/services/card_service.rb +26 -0
  41. data/lib/starling/services/contact_accounts_service.rb +54 -0
  42. data/lib/starling/services/contacts_service.rb +73 -0
  43. data/lib/starling/services/customer_service.rb +25 -0
  44. data/lib/starling/services/direct_debit_mandates_service.rb +61 -0
  45. data/lib/starling/services/direct_debit_transactions_service.rb +46 -0
  46. data/lib/starling/services/inbound_faster_payments_transactions_service.rb +46 -0
  47. data/lib/starling/services/mastercard_transactions_service.rb +30 -0
  48. data/lib/starling/services/me_service.rb +26 -0
  49. data/lib/starling/services/merchant_locations_service.rb +34 -0
  50. data/lib/starling/services/merchants_service.rb +26 -0
  51. data/lib/starling/services/outbound_faster_payments_transactions_service.rb +46 -0
  52. data/lib/starling/services/payments_service.rb +30 -0
  53. data/lib/starling/services/transactions_service.rb +44 -0
  54. data/lib/starling/utils.rb +30 -0
  55. data/lib/starling/version.rb +1 -1
  56. data/starling-ruby.gemspec +2 -0
  57. metadata +63 -2
@@ -0,0 +1,44 @@
1
+ module Starling
2
+ module Services
3
+ # A service for accessing the Transactions API
4
+ class TransactionsService < BaseService
5
+ # @param id [String] The Starling internal ID of the transaction
6
+ # @param params [Hash] Parameters which will be included in the HTTP request,
7
+ # included in the URL as a query string
8
+ # @param headers [Hash] Headers which be included in the HTTP request, merged on
9
+ # top of the headers set at the {Client} level
10
+ # @return [Resources::TransactionResource]
11
+ # @raise [Errors::ApiError] if the HTTP request returns a status indicating that it
12
+ # was unsuccessful
13
+ def get(id, params: {}, headers: {})
14
+ response = api_service.make_request(:get,
15
+ "/transactions/#{id}",
16
+ params: params,
17
+ headers: headers)
18
+ resource.new(response: response)
19
+ end
20
+
21
+ # @param params [Hash] Parameters which will be included in the HTTP request,
22
+ # included in the URL as a query string
23
+ # @param headers [Hash] Headers which be included in the HTTP request, merged on
24
+ # top of the headers set at the {Client} level
25
+ # @return [Array<Resources::TransactionResource>]
26
+ # @raise [Errors::ApiError] if the HTTP request returns a status indicating that it
27
+ # was unsuccessful
28
+ def list(params: {}, headers: {})
29
+ response = api_service.make_request(:get, '/transactions', params: params,
30
+ headers: headers)
31
+
32
+ build_collection_from_embedded_key(response,
33
+ key: 'transactions',
34
+ resource: resource)
35
+ end
36
+
37
+ private
38
+
39
+ def resource
40
+ Resources::TransactionResource
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,30 @@
1
+ module Starling
2
+ # A collection of utility methods used across starling-ruby
3
+ class Utils
4
+ class << self
5
+ # @return [String] The gem's name and version
6
+ def gem_info
7
+ return 'starling-ruby' unless defined?(Starling::VERSION)
8
+ "starling-ruby/v#{Starling::VERSION}"
9
+ end
10
+
11
+ # @return [String] The Ruby engine this code is currently running on
12
+ def ruby_engine
13
+ defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'
14
+ end
15
+
16
+ # @return [String] The Ruby version and patchlevel this code is currently running
17
+ # on
18
+ def ruby_version
19
+ return RUBY_VERSION unless defined?(RUBY_PATCHLEVEL)
20
+ RUBY_VERSION + "p#{RUBY_PATCHLEVEL}"
21
+ end
22
+
23
+ # @return [String] The JRuby interpreter version this code is currently running on,
24
+ # or the Ruby version for non-JRuby environments
25
+ def interpreter_version
26
+ defined?(JRUBY_VERSION) ? JRUBY_VERSION : RUBY_VERSION
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,3 +1,3 @@
1
1
  module Starling
2
- VERSION = '0.1.0'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -30,4 +30,6 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'pry', '~> 0.10.4'
31
31
  spec.add_development_dependency 'values', '~> 1.8.0'
32
32
  spec.add_development_dependency 'rspec_junit_formatter', '~> 0.2.3'
33
+ spec.add_development_dependency 'yard', '~> 0.8.7.6'
34
+ spec.add_development_dependency 'reek', '~> 4.7.0'
33
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: starling-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Rogers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-30 00:00:00.000000000 Z
11
+ date: 2017-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -156,6 +156,34 @@ dependencies:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
158
  version: 0.2.3
159
+ - !ruby/object:Gem::Dependency
160
+ name: yard
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: 0.8.7.6
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: 0.8.7.6
173
+ - !ruby/object:Gem::Dependency
174
+ name: reek
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: 4.7.0
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: 4.7.0
159
187
  description:
160
188
  email:
161
189
  - tim@gocardless.com
@@ -165,6 +193,7 @@ extra_rdoc_files: []
165
193
  files:
166
194
  - ".circleci/config.yml"
167
195
  - ".gitignore"
196
+ - ".reek"
168
197
  - ".rspec"
169
198
  - ".rubocop.yml"
170
199
  - CHANGELOG.md
@@ -185,10 +214,42 @@ files:
185
214
  - lib/starling/request.rb
186
215
  - lib/starling/resources/account_balance_resource.rb
187
216
  - lib/starling/resources/account_resource.rb
217
+ - lib/starling/resources/address_resource.rb
218
+ - lib/starling/resources/addresses_resource.rb
188
219
  - lib/starling/resources/base_resource.rb
220
+ - lib/starling/resources/card_resource.rb
221
+ - lib/starling/resources/contact_account_resource.rb
222
+ - lib/starling/resources/contact_resource.rb
223
+ - lib/starling/resources/customer_resource.rb
224
+ - lib/starling/resources/direct_debit_mandate_resource.rb
225
+ - lib/starling/resources/direct_debit_transaction_resource.rb
226
+ - lib/starling/resources/inbound_faster_payments_transaction_resource.rb
227
+ - lib/starling/resources/mastercard_transaction_resource.rb
228
+ - lib/starling/resources/me_resource.rb
229
+ - lib/starling/resources/merchant_location_resource.rb
230
+ - lib/starling/resources/merchant_resource.rb
231
+ - lib/starling/resources/outbound_faster_payments_transaction_resource.rb
232
+ - lib/starling/resources/payment_resource.rb
233
+ - lib/starling/resources/transaction_resource.rb
189
234
  - lib/starling/services/account_balance_service.rb
190
235
  - lib/starling/services/account_service.rb
236
+ - lib/starling/services/addresses_service.rb
191
237
  - lib/starling/services/base_service.rb
238
+ - lib/starling/services/card_service.rb
239
+ - lib/starling/services/contact_accounts_service.rb
240
+ - lib/starling/services/contacts_service.rb
241
+ - lib/starling/services/customer_service.rb
242
+ - lib/starling/services/direct_debit_mandates_service.rb
243
+ - lib/starling/services/direct_debit_transactions_service.rb
244
+ - lib/starling/services/inbound_faster_payments_transactions_service.rb
245
+ - lib/starling/services/mastercard_transactions_service.rb
246
+ - lib/starling/services/me_service.rb
247
+ - lib/starling/services/merchant_locations_service.rb
248
+ - lib/starling/services/merchants_service.rb
249
+ - lib/starling/services/outbound_faster_payments_transactions_service.rb
250
+ - lib/starling/services/payments_service.rb
251
+ - lib/starling/services/transactions_service.rb
252
+ - lib/starling/utils.rb
192
253
  - lib/starling/version.rb
193
254
  - starling-ruby.gemspec
194
255
  homepage: https://github.com/timrogers/starling-ruby