fidor_api 0.0.2 → 0.1.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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +5 -3
  5. data/CHANGELOG.md +114 -0
  6. data/Gemfile +3 -2
  7. data/README.md +12 -10
  8. data/lib/fidor_api/account.rb +7 -10
  9. data/lib/fidor_api/amount_attributes.rb +23 -20
  10. data/lib/fidor_api/approval_required.rb +9 -0
  11. data/lib/fidor_api/auth.rb +1 -1
  12. data/lib/fidor_api/beneficiary/ach.rb +39 -0
  13. data/lib/fidor_api/beneficiary/base.rb +118 -0
  14. data/lib/fidor_api/beneficiary/generic.rb +24 -0
  15. data/lib/fidor_api/beneficiary/p2p_account_number.rb +14 -0
  16. data/lib/fidor_api/beneficiary/p2p_phone.rb +14 -0
  17. data/lib/fidor_api/beneficiary/p2p_username.rb +14 -0
  18. data/lib/fidor_api/beneficiary/swift.rb +35 -0
  19. data/lib/fidor_api/beneficiary/unknown.rb +16 -0
  20. data/lib/fidor_api/beneficiary/utility.rb +35 -0
  21. data/lib/fidor_api/beneficiary.rb +27 -0
  22. data/lib/fidor_api/card.rb +31 -48
  23. data/lib/fidor_api/card_limit_attribute.rb +52 -0
  24. data/lib/fidor_api/card_limits.rb +6 -34
  25. data/lib/fidor_api/client.rb +8 -2
  26. data/lib/fidor_api/collection.rb +15 -6
  27. data/lib/fidor_api/confirmable_action.rb +45 -0
  28. data/lib/fidor_api/connectivity/connection.rb +113 -0
  29. data/lib/fidor_api/connectivity/endpoint.rb +82 -0
  30. data/lib/fidor_api/connectivity/resource.rb +76 -0
  31. data/lib/fidor_api/connectivity.rb +17 -0
  32. data/lib/fidor_api/constants.rb +3 -0
  33. data/lib/fidor_api/customer.rb +41 -23
  34. data/lib/fidor_api/customers/confirmations.rb +19 -0
  35. data/lib/fidor_api/errors.rb +14 -3
  36. data/lib/fidor_api/message.rb +17 -18
  37. data/lib/fidor_api/msisdn.rb +1 -1
  38. data/lib/fidor_api/password.rb +30 -0
  39. data/lib/fidor_api/preauth.rb +5 -12
  40. data/lib/fidor_api/session_token.rb +20 -0
  41. data/lib/fidor_api/transaction.rb +5 -12
  42. data/lib/fidor_api/transfer/ach.rb +46 -0
  43. data/lib/fidor_api/transfer/bank_internal.rb +37 -0
  44. data/lib/fidor_api/transfer/base.rb +36 -0
  45. data/lib/fidor_api/transfer/fps.rb +56 -0
  46. data/lib/fidor_api/transfer/generic.rb +134 -0
  47. data/lib/fidor_api/transfer/internal.rb +53 -0
  48. data/lib/fidor_api/transfer/p2p_account_number.rb +45 -0
  49. data/lib/fidor_api/transfer/p2p_phone.rb +45 -0
  50. data/lib/fidor_api/transfer/p2p_username.rb +45 -0
  51. data/lib/fidor_api/transfer/sepa.rb +56 -0
  52. data/lib/fidor_api/transfer/swift.rb +49 -0
  53. data/lib/fidor_api/transfer/utility.rb +50 -0
  54. data/lib/fidor_api/transfer.rb +13 -186
  55. data/lib/fidor_api/user.rb +12 -11
  56. data/lib/fidor_api/version.rb +1 -1
  57. data/lib/fidor_api.rb +39 -22
  58. metadata +37 -4
  59. data/lib/fidor_api/resource.rb +0 -84
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fidor_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Klaus Meyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-11 00:00:00.000000000 Z
11
+ date: 2017-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -90,6 +90,7 @@ files:
90
90
  - ".ruby-gemset"
91
91
  - ".ruby-version"
92
92
  - ".travis.yml"
93
+ - CHANGELOG.md
93
94
  - Gemfile
94
95
  - LICENSE.txt
95
96
  - README.md
@@ -100,22 +101,54 @@ files:
100
101
  - lib/fidor_api.rb
101
102
  - lib/fidor_api/account.rb
102
103
  - lib/fidor_api/amount_attributes.rb
104
+ - lib/fidor_api/approval_required.rb
103
105
  - lib/fidor_api/auth.rb
106
+ - lib/fidor_api/beneficiary.rb
107
+ - lib/fidor_api/beneficiary/ach.rb
108
+ - lib/fidor_api/beneficiary/base.rb
109
+ - lib/fidor_api/beneficiary/generic.rb
110
+ - lib/fidor_api/beneficiary/p2p_account_number.rb
111
+ - lib/fidor_api/beneficiary/p2p_phone.rb
112
+ - lib/fidor_api/beneficiary/p2p_username.rb
113
+ - lib/fidor_api/beneficiary/swift.rb
114
+ - lib/fidor_api/beneficiary/unknown.rb
115
+ - lib/fidor_api/beneficiary/utility.rb
104
116
  - lib/fidor_api/card.rb
117
+ - lib/fidor_api/card_limit_attribute.rb
105
118
  - lib/fidor_api/card_limits.rb
106
119
  - lib/fidor_api/client.rb
107
120
  - lib/fidor_api/collection.rb
121
+ - lib/fidor_api/confirmable_action.rb
122
+ - lib/fidor_api/connectivity.rb
123
+ - lib/fidor_api/connectivity/connection.rb
124
+ - lib/fidor_api/connectivity/endpoint.rb
125
+ - lib/fidor_api/connectivity/resource.rb
126
+ - lib/fidor_api/constants.rb
108
127
  - lib/fidor_api/customer.rb
128
+ - lib/fidor_api/customers/confirmations.rb
109
129
  - lib/fidor_api/errors.rb
110
130
  - lib/fidor_api/message.rb
111
131
  - lib/fidor_api/msisdn.rb
132
+ - lib/fidor_api/password.rb
112
133
  - lib/fidor_api/preauth.rb
113
134
  - lib/fidor_api/preauth_details.rb
114
- - lib/fidor_api/resource.rb
135
+ - lib/fidor_api/session_token.rb
115
136
  - lib/fidor_api/token.rb
116
137
  - lib/fidor_api/transaction.rb
117
138
  - lib/fidor_api/transaction_details.rb
118
139
  - lib/fidor_api/transfer.rb
140
+ - lib/fidor_api/transfer/ach.rb
141
+ - lib/fidor_api/transfer/bank_internal.rb
142
+ - lib/fidor_api/transfer/base.rb
143
+ - lib/fidor_api/transfer/fps.rb
144
+ - lib/fidor_api/transfer/generic.rb
145
+ - lib/fidor_api/transfer/internal.rb
146
+ - lib/fidor_api/transfer/p2p_account_number.rb
147
+ - lib/fidor_api/transfer/p2p_phone.rb
148
+ - lib/fidor_api/transfer/p2p_username.rb
149
+ - lib/fidor_api/transfer/sepa.rb
150
+ - lib/fidor_api/transfer/swift.rb
151
+ - lib/fidor_api/transfer/utility.rb
119
152
  - lib/fidor_api/user.rb
120
153
  - lib/fidor_api/version.rb
121
154
  homepage: https://github.com/klausmeyer/fidor_api
@@ -138,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
171
  version: '0'
139
172
  requirements: []
140
173
  rubyforge_project:
141
- rubygems_version: 2.5.1
174
+ rubygems_version: 2.6.8
142
175
  signing_key:
143
176
  specification_version: 4
144
177
  summary: Simple ruby client for the Fidor Bank API
@@ -1,84 +0,0 @@
1
- module FidorApi
2
-
3
- class Resource
4
- include ActiveModel::Model
5
-
6
- attr_accessor :client
7
-
8
- class Response
9
- include ActiveModel::Model
10
-
11
- attr_accessor :headers, :body
12
-
13
- def body
14
- if headers["content-type"] =~ /json/
15
- JSON.parse(@body)
16
- else
17
- @body
18
- end
19
- end
20
- end
21
-
22
- def initialize(attributes = {})
23
- set_attributes(attributes)
24
- end
25
-
26
- def self.request(method: :get, access_token: nil, endpoint: nil, query_params: {}, body: {}, htauth: false)
27
- response = connection(htauth: htauth).public_send(method, endpoint) do |request|
28
- request.params = query_params
29
- request.headers = {}
30
- request.headers["Authorization"] = "Bearer #{access_token}" if access_token
31
- request.headers["Accept"] = "application/vnd.fidor.de; version=1,text/json"
32
- request.headers["Content-Type"] = "application/json"
33
- request.body = body.to_json unless body.empty?
34
- end
35
- Response.new(headers: response.headers, body: response.body)
36
- rescue Faraday::Error::ClientError => e
37
- case e.response[:status]
38
- when 401
39
- raise UnauthorizedTokenError
40
- when 422
41
- body = JSON.parse(e.response[:body])
42
- raise ValidationError.new(body["message"], body["errors"])
43
- else
44
- raise ClientError
45
- end
46
- end
47
-
48
- def self.model_name
49
- ActiveModel::Name.new(self, nil, self.name.sub("FidorApi::", ""))
50
- end
51
-
52
- def persisted?
53
- id.present?
54
- end
55
-
56
- private
57
-
58
- def self.connection(htauth: false)
59
- Faraday.new(url: FidorApi.configuration.api_url) do |config|
60
- config.use Faraday::Request::BasicAuthentication, FidorApi.configuration.htauth_user, FidorApi.configuration.htauth_password if htauth
61
- config.request :url_encoded
62
- config.response :logger if FidorApi.configuration.logging
63
- config.response :raise_error
64
- config.adapter Faraday.default_adapter
65
- end
66
- end
67
-
68
- def create(options = {})
69
- raise InvalidRecordError unless valid?
70
- set_attributes self.class.request({ method: :post, access_token: client.try { |c| c.token.access_token }, endpoint: self.class.resource, body: as_json }.merge(options)).body
71
- true
72
- rescue ValidationError => e
73
- map_errors(e.fields)
74
- false
75
- end
76
-
77
- def map_errors(fields)
78
- fields.each do |hash|
79
- errors.add(hash["field"].to_sym, hash["message"]) if respond_to? hash["field"].to_sym
80
- end
81
- end
82
- end
83
-
84
- end