kentaa-api 0.7.2 → 0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd192c8023f46af9cea803f98b001a9ea269b7624ef185351aded186ff9e4cae
4
- data.tar.gz: 729ee7893d096aa4262dcf9fa306e50f5ae9e8e4660b5bfb1cdc13bd23ad0d1a
3
+ metadata.gz: 8cfc728a7ee590a819c1e7c5e3fc83135ca7011a17c55a3dc02258396dcd4e20
4
+ data.tar.gz: 5c8dfd43935cf416e95e520c5864ae42520c3c3642dd959a99829921cc26015c
5
5
  SHA512:
6
- metadata.gz: f99a58f693ee130c32d81b89559eaf1b7e56454daef25b2954df048a905495c45dd019c4e348f666b51302f523345705a71de3b4698be8b6a037d224541af4fd
7
- data.tar.gz: 6e59aedd98b789cc4e8a848b6ce8489bdf58e8428d29ef4cf805b452a914d56c3ba24d774cf7c263a8978bbe8f85c041f6ae728e25a1f61bf22893a3cb1935fd
6
+ metadata.gz: 5fe91636daba1aeb7e02427b001f7f8b115fe9df1174d4f1f83b74cd662b59d58c23f5207625b641d32b7297284d44a59246c1e8e3ad01871da449c2f8e8a7b5
7
+ data.tar.gz: e61fd63246ac0d11a6781bfa37929a3144378dc17bf27c8ddd4a0db60df3606c056bd601392c8da4511e5fd8f3697ea4683137bb54fdba51d725ec0ed944e302
data/README.md CHANGED
@@ -11,11 +11,14 @@ This gem provides a Ruby library for communicating with the [Kentaa API](https:/
11
11
  - [Installation](#installation)
12
12
  - [Usage](#usage)
13
13
  - [Actions](#actions)
14
+ - [Activities](#activities)
14
15
  - [Companies](#companies)
15
16
  - [Donation forms](#donation-forms)
16
17
  - [Donations](#donations)
17
18
  - [Manual donations](#manual-donations)
18
19
  - [Newsletter subscriptions](#newsletter-subscriptions)
20
+ - [Orders](#orders)
21
+ - [Payments](#payments)
19
22
  - [Performances](#performances)
20
23
  - [Photos](#performance-photos)
21
24
  - [Projects](#projects)
@@ -24,6 +27,7 @@ This gem provides a Ruby library for communicating with the [Kentaa API](https:/
24
27
  - [Sites](#sites)
25
28
  - [Teams](#teams)
26
29
  - [Users](#users)
30
+ - [Avatar](#user-avatar)
27
31
  - [Pagination](#pagination)
28
32
  - [Error handling](#error-handling)
29
33
  - [Development](#development)
@@ -102,6 +106,25 @@ action.title # => "Foobar"
102
106
  See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#actions) and [Kentaa::Api::Resources::Action](lib/kentaa/api/resources/action.rb) for all available properties.
103
107
 
104
108
 
109
+ ### Activities
110
+
111
+ ```ruby
112
+ # List Activities
113
+ activities = client.activities
114
+
115
+ activities.each do |activity|
116
+ activity.name # => "Walking"
117
+ end
118
+
119
+ # Get Activity by ID
120
+ activity = client.activities.get(1)
121
+
122
+ activity.name # => "Walking"
123
+ ```
124
+
125
+ See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#activities) and [Kentaa::Api::Resources::Activity](lib/kentaa/api/resources/activity.rb) for all available properties.
126
+
127
+
105
128
  ### Companies
106
129
 
107
130
  ```ruby
@@ -154,7 +177,7 @@ See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#donation-
154
177
  donations = client.donations # paginated
155
178
  donations = client.donations.all # non-paginated
156
179
 
157
- donations.each do |donations|
180
+ donations.each do |donation|
158
181
  donation.first_name # => "John"
159
182
  donation.last_name # => "Doe"
160
183
  end
@@ -177,7 +200,7 @@ See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#donations
177
200
  donations = client.manual_donations # paginated
178
201
  donations = client.manual_donations.all # non-paginated
179
202
 
180
- donations.each do |donations|
203
+ donations.each do |donation|
181
204
  donation.first_name # => "John"
182
205
  donation.last_name # => "Doe"
183
206
  end
@@ -235,6 +258,41 @@ subscription.subscription_url # => "https://demo1.kentaa.nl"
235
258
 
236
259
  See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#newsletter-subscriptions) and [Kentaa::Api::Resources::NewsletterSubscription](lib/kentaa/api/resources/newsletter_subscription.rb) for all available properties.
237
260
 
261
+ ### Orders
262
+
263
+ ```ruby
264
+ # List Orders
265
+ orders = client.orders # paginated
266
+ orders = client.orders.all # non-paginated
267
+
268
+ orders.each do |order|
269
+ order.first_name # => "John"
270
+ order.last_name # => "Doe"
271
+ end
272
+
273
+ # Get Order
274
+ order = client.orders.get(1)
275
+
276
+ order.name # => "John Doe"
277
+ order.total_amount # => BigDecimal("15.0")
278
+ order.site # => Kentaa::Api::Resources::Site
279
+ ```
280
+
281
+ See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#orders) and [Kentaa::Api::Resources::Order](lib/kentaa/api/resources/order.rb) for all available properties.
282
+
283
+ ### Payments
284
+
285
+ ```ruby
286
+ # Get Payment
287
+ payment = client.payments.get(1)
288
+
289
+ payment.total_amount # => BigDecimal("95.0")
290
+ payment.donations # => Array[Kentaa::Api::Resources::Donation]
291
+ payment.orders # => Array[Kentaa::Api::Resources::Order]
292
+ ```
293
+
294
+ See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#payments) and [Kentaa::Api::Resources::Payment](lib/kentaa/api/resources/payment.rb) for all available properties.
295
+
238
296
  ### Performances
239
297
 
240
298
  Performances are available on an [Kentaa::Api::Resources::Action](lib/kentaa/api/resources/action.rb), so you first need to retrieve an Action.
@@ -287,13 +345,13 @@ photos = performance.photos # paginated
287
345
  photos = performance.photos.all # non-paginated
288
346
 
289
347
  photos.each do |photo|
290
- photos.image_url # => "https://d2a3ux41sjxpco.cloudfront.net/action_performance_photos/file/1/normal_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
348
+ photos.image_url # => "https://cdn.kentaa.nl/action_performance_photos/file/1/normal_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
291
349
  end
292
350
 
293
351
  # Get Performance photo
294
352
  photo = performance.photos.get(1)
295
353
 
296
- photo.image_url # => "https://d2a3ux41sjxpco.cloudfront.net/action_performance_photos/file/1/normal_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
354
+ photo.image_url # => "https://cdn.kentaa.nl/action_performance_photos/file/1/normal_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
297
355
 
298
356
  # Create a Performance photo
299
357
  photo = performance.photos.create(
@@ -301,7 +359,7 @@ photo = performance.photos.create(
301
359
  content_type: "image/jpeg"
302
360
  )
303
361
 
304
- photo.image_url # => "https://d2a3ux41sjxpco.cloudfront.net/action_performance_photos/file/1/normal_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
362
+ photo.image_url # => "https://cdn.kentaa.nl/action_performance_photos/file/1/normal_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
305
363
  ```
306
364
 
307
365
  See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#performances-photos) and [Kentaa::Api::Resources::PerformancePhoto](lib/kentaa/api/resources/performance_photo.rb) for all available properties.
@@ -456,6 +514,28 @@ user.last_name # => "Doe"
456
514
 
457
515
  See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#users) and [Kentaa::Api::Resources::User](lib/kentaa/api/resources/user.rb) for all available properties.
458
516
 
517
+ #### User avatar
518
+
519
+ ```ruby
520
+ # Get the User avatar
521
+ avatar = user.avatar
522
+
523
+ avatar.avatar_url # => "https://cdn.kentaa.nl/avatars/avatar/1/thumb_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
524
+
525
+ # Create / update the User avatar
526
+ avatar = user.avatar.create(
527
+ io: File.open("photo.jpeg"),
528
+ content_type: "image/jpeg"
529
+ )
530
+
531
+ avatar.avatar_url # => "https://cdn.kentaa.nl/avatars/avatar/1/thumb_8ce42aeb3bbb1b4964e621b42691f13d4dfa3f21.jpg"
532
+
533
+ # Delete the User avatar
534
+ user.avatar.delete
535
+ ```
536
+
537
+ See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#user-avatars) and [Kentaa::Api::Resources::Avatar](lib/kentaa/api/resources/avatar.rb) for all available properties.
538
+
459
539
  ### Pagination
460
540
 
461
541
  All List actions return paginated results in an [Enumerable](https://ruby-doc.org/core/Enumerable.html) object. The default page size is 25, but you can can customize this by setting the `per_page` parameter.
@@ -11,6 +11,10 @@ module Kentaa
11
11
  Kentaa::Api::Resources::List.new(@config, options.merge(resource_class: Kentaa::Api::Resources::Action, endpoint_path: '/actions'))
12
12
  end
13
13
 
14
+ def activities(options = {})
15
+ Kentaa::Api::Resources::List.new(@config, options.merge(resource_class: Kentaa::Api::Resources::Activity, endpoint_path: '/activities'))
16
+ end
17
+
14
18
  def companies(options = {})
15
19
  Kentaa::Api::Resources::List.new(@config, options.merge(resource_class: Kentaa::Api::Resources::Company, endpoint_path: '/companies'))
16
20
  end
@@ -31,6 +35,14 @@ module Kentaa
31
35
  Kentaa::Api::Resources::List.new(@config, options.merge(resource_class: Kentaa::Api::Resources::NewsletterSubscription, endpoint_path: '/newsletter-subscriptions'))
32
36
  end
33
37
 
38
+ def orders(options = {})
39
+ Kentaa::Api::Resources::List.new(@config, options.merge(resource_class: Kentaa::Api::Resources::Order, endpoint_path: '/orders'))
40
+ end
41
+
42
+ def payments(options = {})
43
+ Kentaa::Api::Resources::List.new(@config, options.merge(resource_class: Kentaa::Api::Resources::Payment, endpoint_path: '/payments'))
44
+ end
45
+
34
46
  def projects(options = {})
35
47
  Kentaa::Api::Resources::List.new(@config, options.merge(resource_class: Kentaa::Api::Resources::Project, endpoint_path: '/projects'))
36
48
  end
@@ -145,7 +145,7 @@ module Kentaa
145
145
  end
146
146
 
147
147
  def activity
148
- @activity ||= Kentaa::Api::Resources::Activity.new(data[:activity]) if data[:activity]
148
+ @activity ||= Kentaa::Api::Resources::Activity.new(config, data: data[:activity]) if data[:activity]
149
149
  end
150
150
 
151
151
  def previous_participations
@@ -161,11 +161,15 @@ module Kentaa
161
161
  end
162
162
 
163
163
  def registration_fee
164
- @registration_fee ||= Kentaa::Api::Resources::RegistrationFee.new(data[:registration_fee])
164
+ @registration_fee ||= Kentaa::Api::Resources::RegistrationFee.new(data[:registration_fee]) if data[:registration_fee]
165
+ end
166
+
167
+ def ticket
168
+ @ticket ||= Kentaa::Api::Resources::Ticket.new(data[:ticket]) if data[:ticket]
165
169
  end
166
170
 
167
171
  def location
168
- @location ||= Kentaa::Api::Resources::Location.new(data[:location])
172
+ @location ||= Kentaa::Api::Resources::Location.new(data[:location]) if data[:location]
169
173
  end
170
174
 
171
175
  def photos
@@ -242,6 +246,10 @@ module Kentaa
242
246
  @manual_donations ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::ManualDonation, endpoint_path: "/actions/#{id}/manual-donations")
243
247
  end
244
248
 
249
+ def orders
250
+ @orders ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::Order, endpoint_path: "/actions/#{id}/orders")
251
+ end
252
+
245
253
  def performances(options = {})
246
254
  @performances ||= Kentaa::Api::Resources::List.new(config, options.merge(resource_class: Kentaa::Api::Resources::Performance, endpoint_path: "/actions/#{id}/performances"))
247
255
  end
@@ -3,20 +3,36 @@
3
3
  module Kentaa
4
4
  module Api
5
5
  module Resources
6
- class Activity
7
- attr_reader :data
6
+ class Activity < Resource
7
+ def object_key
8
+ "Activity_#{id}"
9
+ end
8
10
 
9
- def initialize(data)
10
- @data = data
11
+ def site
12
+ Kentaa::Api::Resources::Site.new(config, id: site_id, options: options)
11
13
  end
12
14
 
13
- def id
14
- data[:id]
15
+ def site_id
16
+ data[:site_id]
15
17
  end
16
18
 
17
19
  def name
18
20
  data[:name]
19
21
  end
22
+
23
+ def sign_up_limit
24
+ data[:sign_up_limit]
25
+ end
26
+
27
+ def sign_up_count
28
+ data[:sign_up_count]
29
+ end
30
+
31
+ private
32
+
33
+ def load_resource
34
+ request.get("#{endpoint_path}/#{id}", options)
35
+ end
20
36
  end
21
37
  end
22
38
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kentaa
4
+ module Api
5
+ module Resources
6
+ class Avatar < Resource
7
+ def avatar_url
8
+ data[:avatar_url]
9
+ end
10
+
11
+ private
12
+
13
+ def load_resource
14
+ request.get("#{endpoint_path}/avatar", options)
15
+ end
16
+
17
+ def create_resource(attributes)
18
+ io = attributes.fetch(:io)
19
+ content_type = attributes.fetch(:content_type)
20
+
21
+ request.post("#{endpoint_path}/avatar", options, io, content_type: content_type)
22
+ end
23
+
24
+ def delete_resource
25
+ request.delete("#{endpoint_path}/avatar", options)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -83,6 +83,10 @@ module Kentaa
83
83
  data[:total_donations]
84
84
  end
85
85
 
86
+ def reserved_spots
87
+ data[:reserved_spots]
88
+ end
89
+
86
90
  def target_amount_achieved?
87
91
  data[:target_amount_achieved]
88
92
  end
@@ -166,7 +170,7 @@ module Kentaa
166
170
  end
167
171
 
168
172
  def activity
169
- @activity ||= Kentaa::Api::Resources::Activity.new(data[:activity]) if data[:activity]
173
+ @activity ||= Kentaa::Api::Resources::Activity.new(config, data: data[:activity]) if data[:activity]
170
174
  end
171
175
 
172
176
  def contact
@@ -178,9 +182,15 @@ module Kentaa
178
182
  end
179
183
 
180
184
  def commerce_number
185
+ Kentaa::Api::Deprecation.warn('#commerce_number is deprecated.', caller)
186
+
181
187
  data[:commerce_number]
182
188
  end
183
189
 
190
+ def total_company_members
191
+ data[:total_company_members]
192
+ end
193
+
184
194
  def consents
185
195
  @consents ||= begin
186
196
  consents = []
@@ -23,7 +23,7 @@ module Kentaa
23
23
  end
24
24
 
25
25
  def amount
26
- data[:amount]
26
+ BigDecimal(data[:amount])
27
27
  end
28
28
 
29
29
  def title
@@ -33,6 +33,14 @@ module Kentaa
33
33
  def description
34
34
  data[:description]
35
35
  end
36
+
37
+ def reservation_type
38
+ data[:reservation_type]
39
+ end
40
+
41
+ def reservation_limit
42
+ data[:reservation_limit]
43
+ end
36
44
  end
37
45
  end
38
46
  end
@@ -77,6 +77,10 @@ module Kentaa
77
77
  def gender
78
78
  data[:gender]
79
79
  end
80
+
81
+ def locale
82
+ data[:locale]
83
+ end
80
84
  end
81
85
  end
82
86
  end
@@ -126,9 +126,23 @@ module Kentaa
126
126
  end
127
127
 
128
128
  def amount
129
+ Kentaa::Api::Deprecation.warn('#amount is deprecated. Please use #donation_amount instead.', caller)
130
+
129
131
  BigDecimal(data[:amount])
130
132
  end
131
133
 
134
+ def donation_amount
135
+ BigDecimal(data[:donation_amount])
136
+ end
137
+
138
+ def company_registration_fee?
139
+ data[:company_registration_fee]
140
+ end
141
+
142
+ def company_registration_fee_amount
143
+ BigDecimal(data[:company_registration_fee_amount]) if data[:company_registration_fee_amount]
144
+ end
145
+
132
146
  def transaction_costs
133
147
  BigDecimal(data[:transaction_costs]) if data[:transaction_costs]
134
148
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kentaa
4
+ module Api
5
+ module Resources
6
+ class Logo
7
+ attr_reader :data
8
+
9
+ def initialize(data)
10
+ @data = data
11
+ end
12
+
13
+ def url
14
+ data[:url]
15
+ end
16
+
17
+ def locale
18
+ data[:locale]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,100 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bigdecimal'
4
+ require 'time'
5
+
6
+ module Kentaa
7
+ module Api
8
+ module Resources
9
+ class Order < Resource
10
+ def entity
11
+ if action_id
12
+ Kentaa::Api::Resources::Action.new(config, id: action_id, options: options)
13
+ else
14
+ Kentaa::Api::Resources::Site.new(config, id: site_id, options: options)
15
+ end
16
+ end
17
+
18
+ def site
19
+ Kentaa::Api::Resources::Site.new(config, id: site_id, options: options)
20
+ end
21
+
22
+ def site_id
23
+ data[:site_id]
24
+ end
25
+
26
+ def action_id
27
+ data[:action_id]
28
+ end
29
+
30
+ def first_name
31
+ data[:first_name]
32
+ end
33
+
34
+ def infix
35
+ data[:infix]
36
+ end
37
+
38
+ def last_name
39
+ data[:last_name]
40
+ end
41
+
42
+ def name
43
+ [first_name, infix, last_name].reject { |s| s.to_s.empty? }.join(' ')
44
+ end
45
+
46
+ def company
47
+ data[:company]
48
+ end
49
+
50
+ def currency
51
+ data[:currency]
52
+ end
53
+
54
+ def total_amount
55
+ BigDecimal(data[:total_amount])
56
+ end
57
+
58
+ def invoicenumber
59
+ data[:invoicenumber]
60
+ end
61
+
62
+ def payment_status
63
+ data[:payment_status]
64
+ end
65
+
66
+ def address
67
+ @address ||= Kentaa::Api::Resources::Address.new(data[:address]) if data[:address]
68
+ end
69
+
70
+ def phone
71
+ data[:phone]
72
+ end
73
+
74
+ def locale
75
+ data[:locale]
76
+ end
77
+
78
+ def items
79
+ @items ||= begin
80
+ items = []
81
+
82
+ if data[:items]
83
+ data[:items].each do |item|
84
+ items << Kentaa::Api::Resources::OrderItem.new(item)
85
+ end
86
+ end
87
+
88
+ items
89
+ end
90
+ end
91
+
92
+ private
93
+
94
+ def load_resource
95
+ request.get("/orders/#{id}", options)
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bigdecimal'
4
+ require 'time'
5
+
6
+ module Kentaa
7
+ module Api
8
+ module Resources
9
+ class OrderItem
10
+ attr_reader :data
11
+
12
+ def initialize(data)
13
+ @data = data
14
+ end
15
+
16
+ def product
17
+ Kentaa::Api::Resources::Product.new(data[:product])
18
+ end
19
+
20
+ def quantity
21
+ data[:quantity]
22
+ end
23
+
24
+ def amount
25
+ BigDecimal(data[:amount])
26
+ end
27
+
28
+ def currency
29
+ data[:currency]
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,101 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bigdecimal'
4
+
5
+ module Kentaa
6
+ module Api
7
+ module Resources
8
+ class Payment < Resource
9
+ def object_key
10
+ "Payment_#{id}"
11
+ end
12
+
13
+ def site
14
+ Kentaa::Api::Resources::Site.new(config, id: site_id, options: options)
15
+ end
16
+
17
+ def site_id
18
+ data[:site_id]
19
+ end
20
+
21
+ def currency
22
+ data[:currency]
23
+ end
24
+
25
+ def amount
26
+ BigDecimal(data[:amount])
27
+ end
28
+
29
+ def invoicenumber
30
+ data[:invoicenumber]
31
+ end
32
+
33
+ def payment_method
34
+ data[:payment_method]
35
+ end
36
+
37
+ def payment_status
38
+ data[:payment_status]
39
+ end
40
+
41
+ def transaction_id
42
+ data[:transaction_id]
43
+ end
44
+
45
+ def payment_id
46
+ data[:payment_id]
47
+ end
48
+
49
+ def account_iban
50
+ data[:account_iban]
51
+ end
52
+
53
+ def account_bic
54
+ data[:account_bic]
55
+ end
56
+
57
+ def account_name
58
+ data[:account_name]
59
+ end
60
+
61
+ def description
62
+ data[:description]
63
+ end
64
+
65
+ def donations
66
+ @donations ||= begin
67
+ donations = []
68
+
69
+ if data[:donations]
70
+ data[:donations].each do |donation|
71
+ donations << Kentaa::Api::Resources::Donation.new(config, data: donation, options: options)
72
+ end
73
+ end
74
+
75
+ donations
76
+ end
77
+ end
78
+
79
+ def orders
80
+ @orders ||= begin
81
+ orders = []
82
+
83
+ if data[:orders]
84
+ data[:orders].each do |order|
85
+ orders << Kentaa::Api::Resources::Order.new(config, data: order, options: options)
86
+ end
87
+ end
88
+
89
+ orders
90
+ end
91
+ end
92
+
93
+ private
94
+
95
+ def load_resource
96
+ request.get("/payments/#{id}", options)
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bigdecimal'
4
+ require 'time'
5
+
6
+ module Kentaa
7
+ module Api
8
+ module Resources
9
+ class Product
10
+ attr_reader :data
11
+
12
+ def initialize(data)
13
+ @data = data
14
+ end
15
+
16
+ def id
17
+ data[:id]
18
+ end
19
+
20
+ def title
21
+ data[:title]
22
+ end
23
+
24
+ def variant_id
25
+ data[:variant_id]
26
+ end
27
+
28
+ def variant_title
29
+ data[:variant_title]
30
+ end
31
+
32
+ def price
33
+ BigDecimal(data[:price])
34
+ end
35
+
36
+ def currency
37
+ data[:currency]
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -181,6 +181,10 @@ module Kentaa
181
181
  @newsletter_subscriptions ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::NewsletterSubscription, endpoint_path: "/projects/#{id}/newsletter-subscriptions")
182
182
  end
183
183
 
184
+ def activities
185
+ @activities ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::Activity, endpoint_path: "/projects/#{id}/activities")
186
+ end
187
+
184
188
  private
185
189
 
186
190
  def load_resource
@@ -4,8 +4,14 @@ module Kentaa
4
4
  module Api
5
5
  module Resources
6
6
  class RegistrationFee
7
+ attr_reader :data
8
+
9
+ def initialize(data)
10
+ @data = data
11
+ end
12
+
7
13
  def amount
8
- data[:amount]
14
+ BigDecimal(data[:amount])
9
15
  end
10
16
 
11
17
  def title
@@ -26,6 +26,10 @@ module Kentaa
26
26
  self
27
27
  end
28
28
 
29
+ def create(attributes)
30
+ save(attributes)
31
+ end
32
+
29
33
  def save(attributes)
30
34
  if id
31
35
  @response = update_resource(attributes)
@@ -53,11 +57,11 @@ module Kentaa
53
57
 
54
58
  private
55
59
 
56
- def create_resource
60
+ def create_resource(_attributes)
57
61
  raise NotImplementedError
58
62
  end
59
63
 
60
- def update_resource
64
+ def update_resource(_attributes)
61
65
  raise NotImplementedError
62
66
  end
63
67
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'bigdecimal'
4
+
3
5
  module Kentaa
4
6
  module Api
5
7
  module Resources
@@ -18,6 +20,10 @@ module Kentaa
18
20
  data[:type]
19
21
  end
20
22
 
23
+ def amount
24
+ BigDecimal(data[:amount])
25
+ end
26
+
21
27
  def title
22
28
  data[:title]
23
29
  end
@@ -105,6 +105,10 @@ module Kentaa
105
105
  @newsletter_subscriptions ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::NewsletterSubscription, endpoint_path: "/segments/#{id}/newsletter-subscriptions")
106
106
  end
107
107
 
108
+ def activities
109
+ @activities ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::Activity, endpoint_path: "/segments/#{id}/activities")
110
+ end
111
+
108
112
  private
109
113
 
110
114
  def load_resource
@@ -81,10 +81,36 @@ module Kentaa
81
81
  end
82
82
  end
83
83
 
84
+ def logos
85
+ @logos ||= begin
86
+ logos = []
87
+
88
+ if data[:logos]
89
+ data[:logos].map do |logo|
90
+ logos << Kentaa::Api::Resources::Logo.new(logo)
91
+ end
92
+ end
93
+
94
+ logos
95
+ end
96
+ end
97
+
84
98
  def external_reference
85
99
  data[:external_reference]
86
100
  end
87
101
 
102
+ def background_image_url
103
+ data[:background_image_url]
104
+ end
105
+
106
+ def sign_up_flow_background_image_url
107
+ data[:sign_up_flow_background_image_url]
108
+ end
109
+
110
+ def theme
111
+ @theme ||= Kentaa::Api::Resources::Theme.new(data[:theme])
112
+ end
113
+
88
114
  def donations
89
115
  @donations ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::Donation, endpoint_path: '/donations')
90
116
  end
@@ -97,6 +123,14 @@ module Kentaa
97
123
  @newsletter_subscriptions ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::NewsletterSubscription, endpoint_path: '/newsletter-subscriptions')
98
124
  end
99
125
 
126
+ def orders
127
+ @orders ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::Order, endpoint_path: '/orders')
128
+ end
129
+
130
+ def activities
131
+ @activities ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::Activity, endpoint_path: '/activities')
132
+ end
133
+
100
134
  private
101
135
 
102
136
  def load_resource
@@ -71,6 +71,10 @@ module Kentaa
71
71
  data[:description]
72
72
  end
73
73
 
74
+ def total_team_members
75
+ data[:total_team_members]
76
+ end
77
+
74
78
  def target_amount
75
79
  data[:target_amount]
76
80
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kentaa
4
+ module Api
5
+ module Resources
6
+ class Theme
7
+ attr_reader :data
8
+
9
+ def initialize(data)
10
+ @data = data
11
+ end
12
+
13
+ def primary_color
14
+ data[:primary_color]
15
+ end
16
+
17
+ def contrast_color
18
+ data[:contrast_color]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kentaa
4
+ module Api
5
+ module Resources
6
+ class Ticket
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 ticket_number
26
+ data[:ticket_number]
27
+ end
28
+
29
+ def ticket_url
30
+ data[:ticket_url]
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -114,6 +114,10 @@ module Kentaa
114
114
  @actions ||= Kentaa::Api::Resources::List.new(config, resource_class: Kentaa::Api::Resources::Action, endpoint_path: "/users/#{id}/actions")
115
115
  end
116
116
 
117
+ def avatar
118
+ @avatar ||= Kentaa::Api::Resources::Avatar.new(config, options: options.merge(endpoint_path: "/users/#{id}"))
119
+ end
120
+
117
121
  private
118
122
 
119
123
  def load_resource
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Kentaa
4
4
  module Api
5
- VERSION = '0.7.2'
5
+ VERSION = '0.8.0'
6
6
  end
7
7
  end
data/lib/kentaa/api.rb CHANGED
@@ -8,6 +8,7 @@ require_relative 'api/resources/resource'
8
8
  require_relative 'api/resources/action'
9
9
  require_relative 'api/resources/activity'
10
10
  require_relative 'api/resources/address'
11
+ require_relative 'api/resources/avatar'
11
12
  require_relative 'api/resources/banner'
12
13
  require_relative 'api/resources/billing'
13
14
  require_relative 'api/resources/company'
@@ -17,11 +18,16 @@ require_relative 'api/resources/contact'
17
18
  require_relative 'api/resources/donation_form'
18
19
  require_relative 'api/resources/donation'
19
20
  require_relative 'api/resources/location'
21
+ require_relative 'api/resources/logo'
20
22
  require_relative 'api/resources/manual_donation'
21
23
  require_relative 'api/resources/newsletter_subscription'
24
+ require_relative 'api/resources/order'
25
+ require_relative 'api/resources/order_item'
26
+ require_relative 'api/resources/payment'
22
27
  require_relative 'api/resources/performance'
23
28
  require_relative 'api/resources/performance_photo'
24
29
  require_relative 'api/resources/photo'
30
+ require_relative 'api/resources/product'
25
31
  require_relative 'api/resources/project'
26
32
  require_relative 'api/resources/recurring_donor'
27
33
  require_relative 'api/resources/registration_fee'
@@ -31,6 +37,8 @@ require_relative 'api/resources/segment'
31
37
  require_relative 'api/resources/site'
32
38
  require_relative 'api/resources/sites'
33
39
  require_relative 'api/resources/team'
40
+ require_relative 'api/resources/ticket'
41
+ require_relative 'api/resources/theme'
34
42
  require_relative 'api/resources/user'
35
43
  require_relative 'api/resources/users'
36
44
  require_relative 'api/resources/video'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kentaa-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kentaa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-22 00:00:00.000000000 Z
11
+ date: 2024-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,34 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bigdecimal
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: logger
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
69
97
  description:
70
98
  email:
71
99
  - developers@kentaa.nl
@@ -84,6 +112,7 @@ files:
84
112
  - lib/kentaa/api/resources/action.rb
85
113
  - lib/kentaa/api/resources/activity.rb
86
114
  - lib/kentaa/api/resources/address.rb
115
+ - lib/kentaa/api/resources/avatar.rb
87
116
  - lib/kentaa/api/resources/banner.rb
88
117
  - lib/kentaa/api/resources/base.rb
89
118
  - lib/kentaa/api/resources/billing.rb
@@ -96,11 +125,16 @@ files:
96
125
  - lib/kentaa/api/resources/error.rb
97
126
  - lib/kentaa/api/resources/list.rb
98
127
  - lib/kentaa/api/resources/location.rb
128
+ - lib/kentaa/api/resources/logo.rb
99
129
  - lib/kentaa/api/resources/manual_donation.rb
100
130
  - lib/kentaa/api/resources/newsletter_subscription.rb
131
+ - lib/kentaa/api/resources/order.rb
132
+ - lib/kentaa/api/resources/order_item.rb
133
+ - lib/kentaa/api/resources/payment.rb
101
134
  - lib/kentaa/api/resources/performance.rb
102
135
  - lib/kentaa/api/resources/performance_photo.rb
103
136
  - lib/kentaa/api/resources/photo.rb
137
+ - lib/kentaa/api/resources/product.rb
104
138
  - lib/kentaa/api/resources/project.rb
105
139
  - lib/kentaa/api/resources/question.rb
106
140
  - lib/kentaa/api/resources/recurring_donor.rb
@@ -111,6 +145,8 @@ files:
111
145
  - lib/kentaa/api/resources/site.rb
112
146
  - lib/kentaa/api/resources/sites.rb
113
147
  - lib/kentaa/api/resources/team.rb
148
+ - lib/kentaa/api/resources/theme.rb
149
+ - lib/kentaa/api/resources/ticket.rb
114
150
  - lib/kentaa/api/resources/user.rb
115
151
  - lib/kentaa/api/resources/users.rb
116
152
  - lib/kentaa/api/resources/video.rb
@@ -130,14 +166,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
130
166
  requirements:
131
167
  - - ">="
132
168
  - !ruby/object:Gem::Version
133
- version: 2.5.0
169
+ version: 3.0.0
134
170
  required_rubygems_version: !ruby/object:Gem::Requirement
135
171
  requirements:
136
172
  - - ">="
137
173
  - !ruby/object:Gem::Version
138
174
  version: '0'
139
175
  requirements: []
140
- rubygems_version: 3.3.25
176
+ rubygems_version: 3.2.33
141
177
  signing_key:
142
178
  specification_version: 4
143
179
  summary: Ruby library for communicating with the Kentaa API