kentaa-api 0.4.0 → 0.7.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 +4 -4
- data/LICENSE.txt +1 -1
- data/README.md +414 -66
- data/lib/kentaa/api/client.rb +32 -20
- data/lib/kentaa/api/config.rb +13 -6
- data/lib/kentaa/api/deprecation.rb +13 -0
- data/lib/kentaa/api/exception.rb +5 -2
- data/lib/kentaa/api/request.rb +37 -19
- data/lib/kentaa/api/resources/action.rb +50 -11
- data/lib/kentaa/api/resources/base.rb +18 -5
- data/lib/kentaa/api/resources/billing.rb +51 -0
- data/lib/kentaa/api/resources/company.rb +218 -0
- data/lib/kentaa/api/resources/company_package.rb +39 -0
- data/lib/kentaa/api/resources/consent.rb +77 -4
- data/lib/kentaa/api/resources/contact.rb +2 -2
- data/lib/kentaa/api/resources/donation.rb +45 -7
- data/lib/kentaa/api/resources/donation_form.rb +104 -0
- data/lib/kentaa/api/resources/list.rb +61 -3
- data/lib/kentaa/api/resources/manual_donation.rb +17 -7
- data/lib/kentaa/api/resources/newsletter_subscription.rb +30 -4
- data/lib/kentaa/api/resources/performance.rb +70 -0
- data/lib/kentaa/api/resources/performance_photo.rb +36 -0
- data/lib/kentaa/api/resources/project.rb +36 -4
- data/lib/kentaa/api/resources/question.rb +8 -0
- data/lib/kentaa/api/resources/recurring_donor.rb +110 -0
- data/lib/kentaa/api/resources/resource.rb +6 -6
- data/lib/kentaa/api/resources/segment.rb +26 -2
- data/lib/kentaa/api/resources/site.rb +7 -3
- data/lib/kentaa/api/{clients → resources}/sites.rb +2 -2
- data/lib/kentaa/api/resources/team.rb +11 -7
- data/lib/kentaa/api/resources/user.rb +27 -3
- data/lib/kentaa/api/resources/users.rb +5 -27
- data/lib/kentaa/api/util.rb +17 -0
- data/lib/kentaa/api/version.rb +1 -1
- data/lib/kentaa/api.rb +41 -50
- metadata +23 -46
- data/.gitignore +0 -16
- data/.rspec +0 -2
- data/.rubocop.yml +0 -64
- data/.travis.yml +0 -12
- data/Gemfile +0 -10
- data/Gemfile.lock +0 -71
- data/Rakefile +0 -10
- data/bin/console +0 -15
- data/bin/setup +0 -8
- data/kentaa-api.gemspec +0 -30
- data/lib/kentaa/api/clients/actions.rb +0 -34
- data/lib/kentaa/api/clients/base.rb +0 -15
- data/lib/kentaa/api/clients/donations.rb +0 -24
- data/lib/kentaa/api/clients/manual_donations.rb +0 -39
- data/lib/kentaa/api/clients/newsletter_subscriptions.rb +0 -24
- data/lib/kentaa/api/clients/projects.rb +0 -24
- data/lib/kentaa/api/clients/segments.rb +0 -24
- data/lib/kentaa/api/clients/teams.rb +0 -24
- data/lib/kentaa/api/clients/users.rb +0 -34
- data/lib/kentaa/api/finder.rb +0 -44
- data/lib/kentaa/api/resources/actions.rb +0 -40
- data/lib/kentaa/api/resources/donations.rb +0 -35
- data/lib/kentaa/api/resources/manual_donations.rb +0 -40
- data/lib/kentaa/api/resources/newsletter_subscriptions.rb +0 -35
- data/lib/kentaa/api/resources/projects.rb +0 -35
- data/lib/kentaa/api/resources/segments.rb +0 -35
- data/lib/kentaa/api/resources/teams.rb +0 -35
data/lib/kentaa/api/config.rb
CHANGED
@@ -3,17 +3,20 @@
|
|
3
3
|
module Kentaa
|
4
4
|
module Api
|
5
5
|
class Config
|
6
|
-
LIVE_URL =
|
7
|
-
TEST_URL =
|
8
|
-
DEV_URL =
|
6
|
+
LIVE_URL = 'https://api.kentaa.nl/v1'
|
7
|
+
TEST_URL = 'https://api.kentaa.staatklaar.nu/v1'
|
8
|
+
DEV_URL = 'http://api.lvh.me:3000/v1'
|
9
9
|
|
10
|
-
attr_accessor :
|
10
|
+
attr_accessor :options
|
11
11
|
|
12
|
-
def initialize(
|
13
|
-
@api_key = api_key
|
12
|
+
def initialize(options = {})
|
14
13
|
@options = options
|
15
14
|
end
|
16
15
|
|
16
|
+
def api_key
|
17
|
+
options.fetch(:api_key)
|
18
|
+
end
|
19
|
+
|
17
20
|
def api_url
|
18
21
|
case environment
|
19
22
|
when :test
|
@@ -34,6 +37,10 @@ module Kentaa
|
|
34
37
|
:live
|
35
38
|
end
|
36
39
|
end
|
40
|
+
|
41
|
+
def debug?
|
42
|
+
options.fetch(:debug, false)
|
43
|
+
end
|
37
44
|
end
|
38
45
|
end
|
39
46
|
end
|
data/lib/kentaa/api/exception.rb
CHANGED
@@ -10,8 +10,7 @@ module Kentaa
|
|
10
10
|
|
11
11
|
def initialize(response)
|
12
12
|
@response = response
|
13
|
-
|
14
|
-
super(response.message)
|
13
|
+
super()
|
15
14
|
end
|
16
15
|
|
17
16
|
def errors
|
@@ -21,6 +20,10 @@ module Kentaa
|
|
21
20
|
def http_code
|
22
21
|
response.http_code
|
23
22
|
end
|
23
|
+
|
24
|
+
def to_s
|
25
|
+
"#{response.http_code}: #{response.message}"
|
26
|
+
end
|
24
27
|
end
|
25
28
|
end
|
26
29
|
end
|
data/lib/kentaa/api/request.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'logger'
|
3
4
|
require 'net/http'
|
4
5
|
require 'uri'
|
5
6
|
|
@@ -12,50 +13,63 @@ module Kentaa
|
|
12
13
|
@config = config
|
13
14
|
end
|
14
15
|
|
15
|
-
def get(path, params = {})
|
16
|
-
request(:get, path, params)
|
16
|
+
def get(path, params = {}, options = {})
|
17
|
+
request(:get, path, params, nil, options)
|
17
18
|
end
|
18
19
|
|
19
|
-
def post(path, params = {}, body = {})
|
20
|
-
request(:post, path, params, body)
|
20
|
+
def post(path, params = {}, body = {}, options = {})
|
21
|
+
request(:post, path, params, body, options)
|
21
22
|
end
|
22
23
|
|
23
|
-
def patch(path, params = {}, body = {})
|
24
|
-
request(:patch, path, params, body)
|
24
|
+
def patch(path, params = {}, body = {}, options = {})
|
25
|
+
request(:patch, path, params, body, options)
|
25
26
|
end
|
26
27
|
|
27
|
-
def delete(path, params = {})
|
28
|
-
request(:delete, path, params)
|
28
|
+
def delete(path, params = {}, options = {})
|
29
|
+
request(:delete, path, params, nil, options)
|
29
30
|
end
|
30
31
|
|
31
32
|
private
|
32
33
|
|
33
|
-
def request(http_method, path, params = {}, body = {})
|
34
|
+
def request(http_method, path, params = {}, body = nil, options = {})
|
34
35
|
uri = URI.parse(File.join(config.api_url, path))
|
35
36
|
uri.query = URI.encode_www_form(params) unless params.empty?
|
36
37
|
|
38
|
+
content_type = options.fetch(:content_type, 'application/json')
|
39
|
+
|
40
|
+
# Body can be passed as an IO-like object or an object that can be serialized to JSON.
|
41
|
+
if body
|
42
|
+
if body.respond_to?(:read)
|
43
|
+
body = body.read
|
44
|
+
elsif body.respond_to?(:to_json)
|
45
|
+
body = body.to_json
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
37
49
|
case http_method
|
38
50
|
when :get
|
39
51
|
request = Net::HTTP::Get.new(uri)
|
40
52
|
when :post
|
41
53
|
request = Net::HTTP::Post.new(uri)
|
42
|
-
request.body = body
|
54
|
+
request.body = body
|
43
55
|
when :patch
|
44
56
|
request = Net::HTTP::Patch.new(uri)
|
45
|
-
request.body = body
|
57
|
+
request.body = body
|
46
58
|
when :delete
|
47
59
|
request = Net::HTTP::Delete.new(uri)
|
48
60
|
else
|
49
61
|
raise Kentaa::Api::Exception, "Invalid HTTP method: #{http_method}"
|
50
62
|
end
|
51
63
|
|
52
|
-
|
53
|
-
|
54
|
-
request[
|
55
|
-
request[
|
64
|
+
logger.debug("[Kentaa-API] Request: #{http_method.upcase} #{uri}") if config.debug?
|
65
|
+
|
66
|
+
request['Accept'] = 'application/json'
|
67
|
+
request['Content-Type'] = content_type
|
68
|
+
request['X-Api-Key'] = config.api_key
|
69
|
+
request['User-Agent'] = "Ruby kentaa-api/#{Kentaa::Api::VERSION}"
|
56
70
|
|
57
71
|
client = Net::HTTP.new(uri.hostname, uri.port)
|
58
|
-
client.use_ssl = uri.scheme ==
|
72
|
+
client.use_ssl = uri.scheme == 'https'
|
59
73
|
client.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
60
74
|
|
61
75
|
begin
|
@@ -67,12 +81,16 @@ module Kentaa
|
|
67
81
|
raise Kentaa::Api::Exception, e.message
|
68
82
|
end
|
69
83
|
|
70
|
-
|
71
|
-
|
72
|
-
|
84
|
+
logger.debug("[Kentaa-API] Response: #{response.http_code}, body: #{response.body}") if config.debug?
|
85
|
+
|
86
|
+
raise Kentaa::Api::RequestError, response if response.error?
|
73
87
|
|
74
88
|
response
|
75
89
|
end
|
90
|
+
|
91
|
+
def logger
|
92
|
+
@logger ||= Logger.new($stdout)
|
93
|
+
end
|
76
94
|
end
|
77
95
|
end
|
78
96
|
end
|
@@ -7,22 +7,29 @@ module Kentaa
|
|
7
7
|
module Api
|
8
8
|
module Resources
|
9
9
|
class Action < Resource
|
10
|
+
WHO_TYPE_OWNER = 'owner'
|
11
|
+
WHO_TYPE_OTHER = 'other'
|
12
|
+
|
10
13
|
def object_key
|
11
14
|
"Action_#{id}"
|
12
15
|
end
|
13
16
|
|
14
17
|
def parent
|
15
18
|
if team_id
|
16
|
-
Kentaa::Api::Resources::Team.new(config, id: team_id)
|
19
|
+
Kentaa::Api::Resources::Team.new(config, id: team_id, options: options)
|
17
20
|
elsif project_id
|
18
|
-
Kentaa::Api::Resources::Project.new(config, id: project_id)
|
21
|
+
Kentaa::Api::Resources::Project.new(config, id: project_id, options: options)
|
19
22
|
elsif segment_id
|
20
|
-
Kentaa::Api::Resources::Segment.new(config, id: segment_id)
|
23
|
+
Kentaa::Api::Resources::Segment.new(config, id: segment_id, options: options)
|
21
24
|
else
|
22
|
-
Kentaa::Api::Resources::Site.new(config, id: site_id)
|
25
|
+
Kentaa::Api::Resources::Site.new(config, id: site_id, options: options)
|
23
26
|
end
|
24
27
|
end
|
25
28
|
|
29
|
+
def site
|
30
|
+
Kentaa::Api::Resources::Site.new(config, id: site_id, options: options)
|
31
|
+
end
|
32
|
+
|
26
33
|
def slug
|
27
34
|
data[:slug]
|
28
35
|
end
|
@@ -44,11 +51,23 @@ module Kentaa
|
|
44
51
|
end
|
45
52
|
|
46
53
|
def owner
|
47
|
-
@owner ||= Kentaa::Api::Resources::User.new(config, data: data[:owner])
|
54
|
+
@owner ||= Kentaa::Api::Resources::User.new(config, data: data[:owner], options: options)
|
48
55
|
end
|
49
56
|
|
50
57
|
def team_captain?
|
51
|
-
data
|
58
|
+
data.fetch(:team_captain, false)
|
59
|
+
end
|
60
|
+
|
61
|
+
def who_type
|
62
|
+
data[:who_type]
|
63
|
+
end
|
64
|
+
|
65
|
+
def owner?
|
66
|
+
who_type == WHO_TYPE_OWNER
|
67
|
+
end
|
68
|
+
|
69
|
+
def other?
|
70
|
+
who_type == WHO_TYPE_OTHER
|
52
71
|
end
|
53
72
|
|
54
73
|
def first_name
|
@@ -68,7 +87,7 @@ module Kentaa
|
|
68
87
|
end
|
69
88
|
|
70
89
|
def name
|
71
|
-
[first_name, infix, last_name].reject { |s| s.to_s.empty? }.join(
|
90
|
+
[first_name, infix, last_name].reject { |s| s.to_s.empty? }.join(' ')
|
72
91
|
end
|
73
92
|
|
74
93
|
def fundraiser_page?
|
@@ -120,7 +139,7 @@ module Kentaa
|
|
120
139
|
end
|
121
140
|
|
122
141
|
def activity
|
123
|
-
@activity ||= Kentaa::Api::Resources::Activity.new(data[:activity])
|
142
|
+
@activity ||= Kentaa::Api::Resources::Activity.new(data[:activity]) if data[:activity]
|
124
143
|
end
|
125
144
|
|
126
145
|
def previous_participations
|
@@ -186,19 +205,39 @@ module Kentaa
|
|
186
205
|
end
|
187
206
|
|
188
207
|
def consent
|
208
|
+
Kentaa::Api::Deprecation.warn('#consent is deprecated. Please use #consents instead.', caller)
|
209
|
+
|
189
210
|
@consent ||= Kentaa::Api::Resources::Consent.new(data[:consent]) if data[:consent]
|
190
211
|
end
|
191
212
|
|
213
|
+
def consents
|
214
|
+
@consents ||= begin
|
215
|
+
consents = []
|
216
|
+
|
217
|
+
if data[:consents]
|
218
|
+
data[:consents].each do |consent|
|
219
|
+
consents << Kentaa::Api::Resources::Consent.new(consent)
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
consents
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
192
227
|
def external_reference
|
193
228
|
data[:external_reference]
|
194
229
|
end
|
195
230
|
|
196
231
|
def donations
|
197
|
-
@donations ||= Kentaa::Api::Resources::
|
232
|
+
@donations ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::Donation, endpoint_path: "/actions/#{id}/donations")
|
198
233
|
end
|
199
234
|
|
200
235
|
def manual_donations
|
201
|
-
@manual_donations ||= Kentaa::Api::Resources::
|
236
|
+
@manual_donations ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::ManualDonation, endpoint_path: "/actions/#{id}/manual-donations")
|
237
|
+
end
|
238
|
+
|
239
|
+
def performances(options = {})
|
240
|
+
@performances ||= Kentaa::Api::Resources::List.new(config, options.merge(resource_class: Kentaa::Api::Resources::Performance, endpoint_path: "/actions/#{id}/performances"))
|
202
241
|
end
|
203
242
|
|
204
243
|
private
|
@@ -208,7 +247,7 @@ module Kentaa
|
|
208
247
|
end
|
209
248
|
|
210
249
|
def create_resource(attributes)
|
211
|
-
request.post(
|
250
|
+
request.post('/actions', options, attributes)
|
212
251
|
end
|
213
252
|
|
214
253
|
def update_resource(attributes)
|
@@ -4,15 +4,29 @@ module Kentaa
|
|
4
4
|
module Api
|
5
5
|
module Resources
|
6
6
|
class Base
|
7
|
-
attr_reader :config, :options
|
7
|
+
attr_reader :config, :options, :resource_class, :endpoint_path
|
8
8
|
|
9
9
|
def initialize(config, options = {})
|
10
10
|
@config = config
|
11
11
|
@options = options
|
12
|
+
@resource_class = options.delete(:resource_class) || self.class
|
13
|
+
@endpoint_path = options.delete(:endpoint_path)
|
14
|
+
end
|
15
|
+
|
16
|
+
class << self
|
17
|
+
def attribute_key
|
18
|
+
class_name = name.split('::').last
|
19
|
+
class_name.gsub(/([^\^])([A-Z])/, '\1_\2').downcase
|
20
|
+
end
|
12
21
|
end
|
13
22
|
|
14
23
|
def load
|
15
|
-
@response ||=
|
24
|
+
@response ||=
|
25
|
+
if block_given?
|
26
|
+
yield
|
27
|
+
else
|
28
|
+
load_resource
|
29
|
+
end
|
16
30
|
|
17
31
|
self
|
18
32
|
end
|
@@ -24,8 +38,7 @@ module Kentaa
|
|
24
38
|
private
|
25
39
|
|
26
40
|
def attribute_key
|
27
|
-
|
28
|
-
class_name.gsub(/([^\^])([A-Z])/, '\1_\2').downcase.to_sym
|
41
|
+
self.class.attribute_key
|
29
42
|
end
|
30
43
|
|
31
44
|
def load_resource
|
@@ -36,7 +49,7 @@ module Kentaa
|
|
36
49
|
@data ||= begin
|
37
50
|
load unless loaded?
|
38
51
|
|
39
|
-
@response.body[attribute_key] || {}
|
52
|
+
@response.body[attribute_key.to_sym] || {}
|
40
53
|
end
|
41
54
|
end
|
42
55
|
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Kentaa
|
4
|
+
module Api
|
5
|
+
module Resources
|
6
|
+
class Billing
|
7
|
+
attr_reader :data
|
8
|
+
|
9
|
+
def initialize(data)
|
10
|
+
@data = data
|
11
|
+
end
|
12
|
+
|
13
|
+
def attn
|
14
|
+
data[:attn]
|
15
|
+
end
|
16
|
+
|
17
|
+
def street
|
18
|
+
data[:street]
|
19
|
+
end
|
20
|
+
|
21
|
+
def house_number
|
22
|
+
data[:house_number]
|
23
|
+
end
|
24
|
+
|
25
|
+
def house_number_addition
|
26
|
+
data[:house_number_addition]
|
27
|
+
end
|
28
|
+
|
29
|
+
def address
|
30
|
+
data[:address]
|
31
|
+
end
|
32
|
+
|
33
|
+
def address2
|
34
|
+
data[:address2]
|
35
|
+
end
|
36
|
+
|
37
|
+
def zipcode
|
38
|
+
data[:zipcode]
|
39
|
+
end
|
40
|
+
|
41
|
+
def city
|
42
|
+
data[:city]
|
43
|
+
end
|
44
|
+
|
45
|
+
def country
|
46
|
+
data[:country]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,218 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bigdecimal'
|
4
|
+
require 'time'
|
5
|
+
|
6
|
+
module Kentaa
|
7
|
+
module Api
|
8
|
+
module Resources
|
9
|
+
class Company < Resource
|
10
|
+
def object_key
|
11
|
+
"Company_#{id}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def parent
|
15
|
+
if project_id
|
16
|
+
Kentaa::Api::Resources::Project.new(config, id: project_id, options: options)
|
17
|
+
elsif segment_id
|
18
|
+
Kentaa::Api::Resources::Segment.new(config, id: segment_id, options: options)
|
19
|
+
else
|
20
|
+
Kentaa::Api::Resources::Site.new(config, id: site_id, options: options)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def site
|
25
|
+
Kentaa::Api::Resources::Site.new(config, id: site_id, options: options)
|
26
|
+
end
|
27
|
+
|
28
|
+
def slug
|
29
|
+
data[:slug]
|
30
|
+
end
|
31
|
+
|
32
|
+
def site_id
|
33
|
+
data[:site_id]
|
34
|
+
end
|
35
|
+
|
36
|
+
def segment_id
|
37
|
+
data[:segment_id]
|
38
|
+
end
|
39
|
+
|
40
|
+
def project_id
|
41
|
+
data[:project_id]
|
42
|
+
end
|
43
|
+
|
44
|
+
def owner
|
45
|
+
@owner ||= Kentaa::Api::Resources::User.new(config, data: data[:owner], options: options)
|
46
|
+
end
|
47
|
+
|
48
|
+
def members
|
49
|
+
@members ||= begin
|
50
|
+
members = []
|
51
|
+
|
52
|
+
if data[:members]
|
53
|
+
data[:members].each do |member|
|
54
|
+
members << Kentaa::Api::Resources::Action.new(config, data: member, options: options)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
members
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def name
|
63
|
+
data[:name]
|
64
|
+
end
|
65
|
+
|
66
|
+
def title
|
67
|
+
data[:title]
|
68
|
+
end
|
69
|
+
|
70
|
+
def description
|
71
|
+
data[:description]
|
72
|
+
end
|
73
|
+
|
74
|
+
def target_amount
|
75
|
+
data[:target_amount]
|
76
|
+
end
|
77
|
+
|
78
|
+
def total_amount
|
79
|
+
BigDecimal(data[:total_amount])
|
80
|
+
end
|
81
|
+
|
82
|
+
def total_donations
|
83
|
+
data[:total_donations]
|
84
|
+
end
|
85
|
+
|
86
|
+
def target_amount_achieved?
|
87
|
+
data[:target_amount_achieved]
|
88
|
+
end
|
89
|
+
|
90
|
+
def visible?
|
91
|
+
data[:visible]
|
92
|
+
end
|
93
|
+
|
94
|
+
def countable?
|
95
|
+
data[:countable]
|
96
|
+
end
|
97
|
+
|
98
|
+
def closed?
|
99
|
+
data[:closed]
|
100
|
+
end
|
101
|
+
|
102
|
+
def ended?
|
103
|
+
data[:ended]
|
104
|
+
end
|
105
|
+
|
106
|
+
def end_date
|
107
|
+
Time.parse(data[:end_date]) if data[:end_date]
|
108
|
+
end
|
109
|
+
|
110
|
+
def url
|
111
|
+
data[:url]
|
112
|
+
end
|
113
|
+
|
114
|
+
def donate_url
|
115
|
+
data[:donate_url]
|
116
|
+
end
|
117
|
+
|
118
|
+
def member_sign_up_url
|
119
|
+
data[:member_sign_up_url]
|
120
|
+
end
|
121
|
+
|
122
|
+
def photos
|
123
|
+
@photos ||= begin
|
124
|
+
photos = []
|
125
|
+
|
126
|
+
if data[:photos]
|
127
|
+
data[:photos].each do |photo|
|
128
|
+
photos << Kentaa::Api::Resources::Photo.new(photo)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
photos
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
def videos
|
137
|
+
@videos ||= begin
|
138
|
+
videos = []
|
139
|
+
|
140
|
+
if data[:videos]
|
141
|
+
data[:videos].each do |video|
|
142
|
+
videos << Kentaa::Api::Resources::Video.new(video)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
videos
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
def questions
|
151
|
+
@questions ||= begin
|
152
|
+
questions = []
|
153
|
+
|
154
|
+
if data[:questions]
|
155
|
+
data[:questions].each do |question|
|
156
|
+
questions << Kentaa::Api::Resources::Question.new(question)
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
questions
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
def company_package
|
165
|
+
@company_package ||= Kentaa::Api::Resources::CompanyPackage.new(data[:package]) if data[:package]
|
166
|
+
end
|
167
|
+
|
168
|
+
def activity
|
169
|
+
@activity ||= Kentaa::Api::Resources::Activity.new(data[:activity]) if data[:activity]
|
170
|
+
end
|
171
|
+
|
172
|
+
def contact
|
173
|
+
@contact ||= Kentaa::Api::Resources::Contact.new(data[:contact]) if data[:contact]
|
174
|
+
end
|
175
|
+
|
176
|
+
def external_reference
|
177
|
+
data[:external_reference]
|
178
|
+
end
|
179
|
+
|
180
|
+
def commerce_number
|
181
|
+
data[:commerce_number]
|
182
|
+
end
|
183
|
+
|
184
|
+
def consents
|
185
|
+
@consents ||= begin
|
186
|
+
consents = []
|
187
|
+
|
188
|
+
if data[:consents]
|
189
|
+
data[:consents].each do |consent|
|
190
|
+
consents << Kentaa::Api::Resources::Consent.new(consent)
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
consents
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
def billing
|
199
|
+
@billing ||= Kentaa::Api::Resources::Billing.new(data[:billing]) if data[:billing]
|
200
|
+
end
|
201
|
+
|
202
|
+
def donations
|
203
|
+
@donations ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::Donation, endpoint_path: "/companies/#{id}/donations")
|
204
|
+
end
|
205
|
+
|
206
|
+
def manual_donations
|
207
|
+
@manual_donations ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::ManualDonation, endpoint_path: "/companies/#{id}/manual-donations")
|
208
|
+
end
|
209
|
+
|
210
|
+
private
|
211
|
+
|
212
|
+
def load_resource
|
213
|
+
request.get("/companies/#{id}", options)
|
214
|
+
end
|
215
|
+
end
|
216
|
+
end
|
217
|
+
end
|
218
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Kentaa
|
4
|
+
module Api
|
5
|
+
module Resources
|
6
|
+
class CompanyPackage
|
7
|
+
attr_reader :data
|
8
|
+
|
9
|
+
def initialize(data)
|
10
|
+
@data = data
|
11
|
+
end
|
12
|
+
|
13
|
+
def id
|
14
|
+
data[:id]
|
15
|
+
end
|
16
|
+
|
17
|
+
def created_at
|
18
|
+
Time.parse(data[:created_at]) if data[:created_at]
|
19
|
+
end
|
20
|
+
|
21
|
+
def updated_at
|
22
|
+
Time.parse(data[:updated_at]) if data[:updated_at]
|
23
|
+
end
|
24
|
+
|
25
|
+
def amount
|
26
|
+
data[:amount]
|
27
|
+
end
|
28
|
+
|
29
|
+
def title
|
30
|
+
data[:title]
|
31
|
+
end
|
32
|
+
|
33
|
+
def description
|
34
|
+
data[:description]
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|