kentaa-api 0.3.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +23 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +21 -5
- data/Gemfile +4 -2
- data/Gemfile.lock +45 -32
- data/README.md +364 -67
- data/kentaa-api.gemspec +3 -3
- data/lib/kentaa/api.rb +9 -20
- data/lib/kentaa/api/client.rb +30 -18
- data/lib/kentaa/api/config.rb +10 -3
- data/lib/kentaa/api/exception.rb +9 -2
- data/lib/kentaa/api/request.rb +49 -5
- data/lib/kentaa/api/resources/action.rb +39 -15
- data/lib/kentaa/api/resources/activity.rb +11 -1
- data/lib/kentaa/api/resources/address.rb +7 -1
- data/lib/kentaa/api/resources/banner.rb +21 -1
- data/lib/kentaa/api/resources/base.rb +19 -6
- data/lib/kentaa/api/resources/consent.rb +7 -1
- data/lib/kentaa/api/resources/contact.rb +83 -0
- data/lib/kentaa/api/resources/donation.rb +30 -12
- data/lib/kentaa/api/resources/donation_form.rb +104 -0
- data/lib/kentaa/api/resources/error.rb +23 -0
- data/lib/kentaa/api/resources/list.rb +77 -2
- data/lib/kentaa/api/resources/location.rb +7 -1
- data/lib/kentaa/api/resources/manual_donation.rb +122 -0
- data/lib/kentaa/api/resources/newsletter_subscription.rb +16 -6
- data/lib/kentaa/api/resources/performance.rb +62 -0
- data/lib/kentaa/api/resources/photo.rb +21 -1
- data/lib/kentaa/api/resources/project.rb +37 -9
- data/lib/kentaa/api/resources/question.rb +19 -1
- data/lib/kentaa/api/resources/recurring_donor.rb +110 -0
- data/lib/kentaa/api/resources/registration_fee.rb +1 -1
- data/lib/kentaa/api/resources/resource.rb +43 -5
- data/lib/kentaa/api/resources/reward.rb +11 -1
- data/lib/kentaa/api/resources/segment.rb +35 -3
- data/lib/kentaa/api/resources/site.rb +15 -3
- data/lib/kentaa/api/{clients → resources}/sites.rb +2 -2
- data/lib/kentaa/api/resources/team.rb +22 -10
- data/lib/kentaa/api/resources/user.rb +16 -4
- data/lib/kentaa/api/resources/users.rb +5 -24
- data/lib/kentaa/api/resources/video.rb +21 -1
- data/lib/kentaa/api/response.rb +20 -2
- data/lib/kentaa/api/util.rb +13 -0
- data/lib/kentaa/api/version.rb +1 -1
- metadata +21 -30
- data/.travis.yml +0 -11
- data/lib/kentaa/api/clients/actions.rb +0 -21
- data/lib/kentaa/api/clients/all.rb +0 -26
- data/lib/kentaa/api/clients/base.rb +0 -15
- data/lib/kentaa/api/clients/donations.rb +0 -21
- data/lib/kentaa/api/clients/newsletter_subscriptions.rb +0 -21
- data/lib/kentaa/api/clients/projects.rb +0 -21
- data/lib/kentaa/api/clients/segments.rb +0 -21
- data/lib/kentaa/api/clients/teams.rb +0 -21
- data/lib/kentaa/api/clients/users.rb +0 -21
- data/lib/kentaa/api/finder.rb +0 -44
- data/lib/kentaa/api/resources/actions.rb +0 -37
- data/lib/kentaa/api/resources/donations.rb +0 -37
- data/lib/kentaa/api/resources/newsletter_subscriptions.rb +0 -37
- data/lib/kentaa/api/resources/projects.rb +0 -37
- data/lib/kentaa/api/resources/segments.rb +0 -37
- data/lib/kentaa/api/resources/teams.rb +0 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da9bb3b58fe4533c642cd80ca677b29aff5e779aa1335ecbda2ba5c502133487
|
4
|
+
data.tar.gz: 3ad011c17955567de318e2e1c8f959afd3ea3f6aad8d66381f0d2c48abd7c6e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b00e2f9db7313a96e4d205337ae9c2a9d9872d5ff97865246a6b1b391ae47cd615c2e736eac0ea5a6e890cb553bbfa66d5ddf31b83a60dc6d48f580912a430d
|
7
|
+
data.tar.gz: 50f33d783a2055d71bdbf9bdc446be064bb109b71e04f6736e9dfb29b0dc670fe42001b89c218904405a218b3700c3d030fdd1c1292658b958ba77e62b9dafc3
|
@@ -0,0 +1,23 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
pull_request:
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
strategy:
|
13
|
+
matrix:
|
14
|
+
ruby-version: ['2.4', '2.5', '2.6', '2.7', '3.0']
|
15
|
+
|
16
|
+
steps:
|
17
|
+
- uses: actions/checkout@v2
|
18
|
+
- uses: ruby/setup-ruby@v1
|
19
|
+
with:
|
20
|
+
ruby-version: ${{ matrix.ruby-version }}
|
21
|
+
bundler-cache: true
|
22
|
+
- name: Run tests
|
23
|
+
run: bundle exec rake
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,13 +1,20 @@
|
|
1
1
|
# Kentaa-API RuboCop configuration
|
2
2
|
|
3
|
-
require:
|
3
|
+
require:
|
4
|
+
- rubocop-performance
|
5
|
+
- rubocop-rake
|
6
|
+
- rubocop-rspec
|
4
7
|
|
5
8
|
AllCops:
|
6
|
-
|
9
|
+
NewCops: enable
|
10
|
+
TargetRubyVersion: 2.4
|
7
11
|
DisplayCopNames: true
|
8
12
|
DisplayStyleGuide: true
|
13
|
+
Exclude:
|
14
|
+
- 'tmp/**/*'
|
15
|
+
- 'vendor/**/*'
|
9
16
|
|
10
|
-
|
17
|
+
Layout/LineLength:
|
11
18
|
Enabled: false
|
12
19
|
|
13
20
|
Metrics/AbcSize:
|
@@ -22,10 +29,10 @@ Metrics/ClassLength:
|
|
22
29
|
Metrics/CyclomaticComplexity:
|
23
30
|
Enabled: false
|
24
31
|
|
25
|
-
Metrics/
|
32
|
+
Metrics/MethodLength:
|
26
33
|
Enabled: false
|
27
34
|
|
28
|
-
Metrics/
|
35
|
+
Metrics/PerceivedComplexity:
|
29
36
|
Enabled: false
|
30
37
|
|
31
38
|
RSpec/DescribedClass:
|
@@ -43,6 +50,15 @@ Style/Documentation:
|
|
43
50
|
Style/ExpandPathArguments:
|
44
51
|
Enabled: false
|
45
52
|
|
53
|
+
Style/HashEachMethods:
|
54
|
+
Enabled: true
|
55
|
+
|
56
|
+
Style/HashTransformKeys:
|
57
|
+
Enabled: true
|
58
|
+
|
59
|
+
Style/HashTransformValues:
|
60
|
+
Enabled: true
|
61
|
+
|
46
62
|
Style/IfUnlessModifier:
|
47
63
|
Enabled: false
|
48
64
|
|
data/Gemfile
CHANGED
@@ -5,5 +5,7 @@ source 'https://rubygems.org'
|
|
5
5
|
# Specify your gem's dependencies in kentaa-api.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
gem 'rubocop', '~>
|
9
|
-
gem 'rubocop-
|
8
|
+
gem 'rubocop', '~> 1.12.0'
|
9
|
+
gem 'rubocop-performance', '~> 1.10.2'
|
10
|
+
gem 'rubocop-rake', '~> 0.5.1'
|
11
|
+
gem 'rubocop-rspec', '~> 2.2.0'
|
data/Gemfile.lock
CHANGED
@@ -1,50 +1,61 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
kentaa-api (0.
|
4
|
+
kentaa-api (0.6.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
9
|
addressable (2.5.2)
|
10
10
|
public_suffix (>= 2.0.2, < 4.0)
|
11
|
-
ast (2.4.
|
11
|
+
ast (2.4.2)
|
12
12
|
crack (0.4.3)
|
13
13
|
safe_yaml (~> 1.0.0)
|
14
|
-
diff-lcs (1.
|
14
|
+
diff-lcs (1.4.4)
|
15
15
|
hashdiff (0.3.7)
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
ast (~> 2.4.0)
|
16
|
+
parallel (1.20.1)
|
17
|
+
parser (3.0.0.0)
|
18
|
+
ast (~> 2.4.1)
|
20
19
|
public_suffix (3.0.3)
|
21
20
|
rainbow (3.0.0)
|
22
|
-
rake (
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
rspec-
|
27
|
-
|
28
|
-
rspec-
|
29
|
-
rspec-
|
21
|
+
rake (13.0.3)
|
22
|
+
regexp_parser (2.1.1)
|
23
|
+
rexml (3.2.5)
|
24
|
+
rspec (3.10.0)
|
25
|
+
rspec-core (~> 3.10.0)
|
26
|
+
rspec-expectations (~> 3.10.0)
|
27
|
+
rspec-mocks (~> 3.10.0)
|
28
|
+
rspec-core (3.10.1)
|
29
|
+
rspec-support (~> 3.10.0)
|
30
|
+
rspec-expectations (3.10.1)
|
30
31
|
diff-lcs (>= 1.2.0, < 2.0)
|
31
|
-
rspec-support (~> 3.
|
32
|
-
rspec-mocks (3.
|
32
|
+
rspec-support (~> 3.10.0)
|
33
|
+
rspec-mocks (3.10.2)
|
33
34
|
diff-lcs (>= 1.2.0, < 2.0)
|
34
|
-
rspec-support (~> 3.
|
35
|
-
rspec-support (3.
|
36
|
-
rubocop (
|
37
|
-
jaro_winkler (~> 1.5.1)
|
35
|
+
rspec-support (~> 3.10.0)
|
36
|
+
rspec-support (3.10.2)
|
37
|
+
rubocop (1.12.0)
|
38
38
|
parallel (~> 1.10)
|
39
|
-
parser (>=
|
39
|
+
parser (>= 3.0.0.0)
|
40
40
|
rainbow (>= 2.2.2, < 4.0)
|
41
|
+
regexp_parser (>= 1.8, < 3.0)
|
42
|
+
rexml
|
43
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
41
44
|
ruby-progressbar (~> 1.7)
|
42
|
-
unicode-display_width (>= 1.4.0, <
|
43
|
-
rubocop-
|
44
|
-
|
45
|
-
|
45
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
46
|
+
rubocop-ast (1.4.1)
|
47
|
+
parser (>= 2.7.1.5)
|
48
|
+
rubocop-performance (1.10.2)
|
49
|
+
rubocop (>= 0.90.0, < 2.0)
|
50
|
+
rubocop-ast (>= 0.4.0)
|
51
|
+
rubocop-rake (0.5.1)
|
52
|
+
rubocop
|
53
|
+
rubocop-rspec (2.2.0)
|
54
|
+
rubocop (~> 1.0)
|
55
|
+
rubocop-ast (>= 1.1.0)
|
56
|
+
ruby-progressbar (1.11.0)
|
46
57
|
safe_yaml (1.0.4)
|
47
|
-
unicode-display_width (
|
58
|
+
unicode-display_width (2.0.0)
|
48
59
|
webmock (2.3.2)
|
49
60
|
addressable (>= 2.3.6)
|
50
61
|
crack (>= 0.3.2)
|
@@ -54,13 +65,15 @@ PLATFORMS
|
|
54
65
|
ruby
|
55
66
|
|
56
67
|
DEPENDENCIES
|
57
|
-
bundler (~>
|
68
|
+
bundler (~> 2.0)
|
58
69
|
kentaa-api!
|
59
|
-
rake (~>
|
70
|
+
rake (~> 13.0)
|
60
71
|
rspec (~> 3.0)
|
61
|
-
rubocop (~>
|
62
|
-
rubocop-
|
72
|
+
rubocop (~> 1.12.0)
|
73
|
+
rubocop-performance (~> 1.10.2)
|
74
|
+
rubocop-rake (~> 0.5.1)
|
75
|
+
rubocop-rspec (~> 2.2.0)
|
63
76
|
webmock (~> 2.3, >= 2.3.2)
|
64
77
|
|
65
78
|
BUNDLED WITH
|
66
|
-
|
79
|
+
2.2.3
|
data/README.md
CHANGED
@@ -1,10 +1,32 @@
|
|
1
1
|
# Kentaa API
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/kentaa-api.svg)](https://badge.fury.io/rb/kentaa-api)
|
4
|
-
[![Build Status](https://
|
4
|
+
[![Build Status](https://github.com/KentaaNL/kentaa-api/actions/workflows/test.yml/badge.svg)](https://github.com/KentaaNL/kentaa-api/actions)
|
5
5
|
[![Code Climate](https://codeclimate.com/github/KentaaNL/kentaa-api/badges/gpa.svg)](https://codeclimate.com/github/KentaaNL/kentaa-api)
|
6
6
|
|
7
|
-
This gem provides a Ruby library for communicating with the [Kentaa API](https://
|
7
|
+
This gem provides a Ruby library for communicating with the [Kentaa API](https://developer.kentaa.nl/kentaa-api/).
|
8
|
+
|
9
|
+
## Table of Contents
|
10
|
+
|
11
|
+
- [Installation](#installation)
|
12
|
+
- [Usage](#usage)
|
13
|
+
- [Actions](#actions)
|
14
|
+
- [Donation forms](#donation-forms)
|
15
|
+
- [Donations](#donations)
|
16
|
+
- [Manual donations](#manual-donations)
|
17
|
+
- [Newsletter subscriptions](#newsletter-subscriptions)
|
18
|
+
- [Performances](#performances)
|
19
|
+
- [Projects](#projects)
|
20
|
+
- [Recurring donors](#recurring-donors)
|
21
|
+
- [Segments](#segments)
|
22
|
+
- [Sites](#sites)
|
23
|
+
- [Teams](#teams)
|
24
|
+
- [Users](#users)
|
25
|
+
- [Pagination](#pagination)
|
26
|
+
- [Error handling](#error-handling)
|
27
|
+
- [Development](#development)
|
28
|
+
- [Contributing](#contributing)
|
29
|
+
- [License](#license)
|
8
30
|
|
9
31
|
## Installation
|
10
32
|
|
@@ -24,143 +46,418 @@ Or install it yourself as:
|
|
24
46
|
|
25
47
|
## Usage
|
26
48
|
|
27
|
-
|
28
|
-
|
29
|
-
Create the client with your API key:
|
49
|
+
Create a Kentaa API client using your API key:
|
30
50
|
|
31
51
|
```ruby
|
32
52
|
require 'kentaa/api'
|
33
53
|
|
34
|
-
|
35
|
-
client = Kentaa::Api::Client.new(config)
|
54
|
+
client = Kentaa::Api::Client.new(api_key: 'your_api_key')
|
36
55
|
```
|
37
56
|
|
38
|
-
|
57
|
+
The client is created for the production environment by default. If you want to use the testing environment, then add `test: true`:
|
39
58
|
|
40
|
-
|
59
|
+
```ruby
|
60
|
+
client = Kentaa::Api::Client.new(api_key: 'your_api_key', test: true)
|
61
|
+
```
|
41
62
|
|
42
|
-
|
63
|
+
### Actions
|
43
64
|
|
44
65
|
```ruby
|
45
|
-
|
46
|
-
|
47
|
-
actions
|
48
|
-
|
66
|
+
# List Actions
|
67
|
+
actions = client.actions # paginated
|
68
|
+
actions = client.actions.all # non-paginated
|
69
|
+
|
70
|
+
actions.each do |action|
|
71
|
+
action.title # => "Lorem ipsum"
|
72
|
+
action.url # => "https://demo1.kentaa.nl/actie/john-doe"
|
73
|
+
end
|
74
|
+
|
75
|
+
# Get Action by ID or slug
|
76
|
+
action = client.actions.get(1)
|
77
|
+
action = client.actions.get("john-doe")
|
78
|
+
|
79
|
+
action.title # => "Lorem ipsum"
|
80
|
+
action.url # => "https://demo1.kentaa.nl/actie/john-doe"
|
81
|
+
|
82
|
+
# Create a new Action
|
83
|
+
action = client.actions.create(
|
84
|
+
title: "Lorem ipsum",
|
85
|
+
description: "Dolorum animi qui nihil iure dolore velit.",
|
86
|
+
owner_id: 1
|
87
|
+
)
|
88
|
+
|
89
|
+
action.id # => 1
|
90
|
+
action.title # => "Lorem ipsum"
|
91
|
+
action.description # => "Dolorum animi qui nihil iure dolore velit."
|
92
|
+
action.owner # => Kentaa::Api::Resources::User
|
93
|
+
|
94
|
+
# Update an Action
|
95
|
+
action = client.actions.update(1, title: "Foobar")
|
96
|
+
|
97
|
+
action.title # => "Foobar"
|
49
98
|
```
|
50
99
|
|
51
|
-
|
100
|
+
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.
|
101
|
+
|
102
|
+
### Donation forms
|
52
103
|
|
53
104
|
```ruby
|
54
|
-
|
105
|
+
# List Donation forms
|
106
|
+
donation_forms = client.donation_forms # paginated
|
107
|
+
donation_forms = client.donation_forms.all # non-paginated
|
108
|
+
|
109
|
+
donation_forms.each do |form|
|
110
|
+
form.title # => "Lorem ipsum dolor sit amet"
|
111
|
+
form.url # => "https://demo1.kentaa.nl/form"
|
112
|
+
end
|
113
|
+
|
114
|
+
# Get Donation form
|
115
|
+
form = client.donation_forms.get(1)
|
116
|
+
|
117
|
+
form.title # => "Lorem ipsum dolor sit amet"
|
118
|
+
form.owner # => Kentaa::Api::Resources::User
|
119
|
+
form.url # => "https://demo1.kentaa.nl/form"
|
120
|
+
form.total_amount # => BigDecimal("95.0")
|
55
121
|
```
|
56
122
|
|
57
|
-
See also
|
123
|
+
See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#donation-forms) and [Kentaa::Api::Resources::DonationForm](lib/kentaa/api/resources/donation_form.rb) for all available properties.
|
58
124
|
|
59
|
-
|
125
|
+
### Donations
|
60
126
|
|
61
127
|
```ruby
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
128
|
+
# List Donations
|
129
|
+
donations = client.donations # paginated
|
130
|
+
donations = client.donations.all # non-paginated
|
131
|
+
|
132
|
+
donations.each do |donations|
|
133
|
+
donation.first_name # => "John"
|
134
|
+
donation.last_name # => "Doe"
|
135
|
+
end
|
136
|
+
|
137
|
+
# Get Donation
|
138
|
+
donation = client.donations.get(1)
|
139
|
+
|
140
|
+
donation.first_name # => "John"
|
141
|
+
donation.last_name # => "Doe"
|
142
|
+
donation.amount # => BigDecimal("15.0")
|
143
|
+
donation.entity # => Kentaa::Api::Resources::Site
|
66
144
|
```
|
67
145
|
|
68
|
-
|
146
|
+
See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#donations) and [Kentaa::Api::Resources::Donation](lib/kentaa/api/resources/donation.rb) for all available properties.
|
69
147
|
|
70
|
-
|
148
|
+
### Manual donations
|
71
149
|
|
72
|
-
|
150
|
+
```ruby
|
151
|
+
# List Manual donations
|
152
|
+
donations = client.manual_donations # paginated
|
153
|
+
donations = client.manual_donations.all # non-paginated
|
154
|
+
|
155
|
+
donations.each do |donations|
|
156
|
+
donation.first_name # => "John"
|
157
|
+
donation.last_name # => "Doe"
|
158
|
+
end
|
159
|
+
|
160
|
+
# Get Manual donation
|
161
|
+
donation = client.manual_donations.get(1)
|
162
|
+
|
163
|
+
donation.first_name # => "John"
|
164
|
+
donation.last_name # => "Doe"
|
165
|
+
donation.amount # => BigDecimal("15.0")
|
166
|
+
donation.entity # => Kentaa::Api::Resources::Site
|
167
|
+
|
168
|
+
# Create a Manual donation
|
169
|
+
donation = client.manual_donations.create(
|
170
|
+
first_name: "John",
|
171
|
+
last_name: "Doe",
|
172
|
+
amount: "15.0"
|
173
|
+
)
|
174
|
+
|
175
|
+
donation.id # => 1
|
176
|
+
donation.first_name # => "John"
|
177
|
+
donation.last_name # => "Doe"
|
178
|
+
donation.amount # => BigDecimal("15.0")
|
179
|
+
donation.entity # => Kentaa::Api::Resources::Site
|
180
|
+
|
181
|
+
# Update a Manual donation
|
182
|
+
donation = client.manual_donations.update(1, first_name: "Jane")
|
183
|
+
|
184
|
+
donation.first_name # => "Jane"
|
185
|
+
|
186
|
+
# Delete a Manual donation
|
187
|
+
client.manual_donations.delete(1)
|
188
|
+
```
|
189
|
+
|
190
|
+
See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#manual-donations) and [Kentaa::Api::Resources::ManualDonation](lib/kentaa/api/resources/manual_donation.rb) for all available properties.
|
191
|
+
|
192
|
+
### Newsletter subscriptions
|
73
193
|
|
74
194
|
```ruby
|
75
|
-
|
76
|
-
|
195
|
+
# List Newsletter subscriptions
|
196
|
+
newsletter_subscriptions = client.newsletter_subscriptions # paginated
|
197
|
+
newsletter_subscriptions = client.newsletter_subscriptions.all # non-paginated
|
198
|
+
|
199
|
+
newsletter_subscriptions.each do |subscription|
|
200
|
+
subscription.email # => "john.doe@kentaa.nl"
|
201
|
+
subscription.subscription_url # => "https://demo1.kentaa.nl"
|
202
|
+
end
|
203
|
+
|
204
|
+
# Get Newsletter subscription
|
205
|
+
subscription = client.newsletter_subscriptions.get(1)
|
77
206
|
|
78
|
-
|
79
|
-
|
207
|
+
subscription.email # => "john.doe@kentaa.nl"
|
208
|
+
subscription.subscription_url # => "https://demo1.kentaa.nl"
|
80
209
|
```
|
81
210
|
|
82
|
-
See also the [Kentaa API docs](https://
|
211
|
+
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.
|
83
212
|
|
84
|
-
|
213
|
+
### Performances
|
214
|
+
|
215
|
+
Performances are available on an [Kentaa::Api::Resources::Action](lib/kentaa/api/resources/action.rb), so you first need to retrieve an Action.
|
85
216
|
|
86
217
|
```ruby
|
87
|
-
|
88
|
-
|
218
|
+
action = client.actions.get(1)
|
219
|
+
|
220
|
+
# List Performances
|
221
|
+
performances = action.performances # paginated
|
222
|
+
performances = action.performances.all # non-paginated
|
223
|
+
|
224
|
+
performances.each do |performance|
|
225
|
+
performance.title # => "First tour"
|
226
|
+
performance.distance # => BigDecimal("65.25")
|
227
|
+
end
|
228
|
+
|
229
|
+
# Get Performance
|
230
|
+
donation = action.performances.get(1)
|
231
|
+
|
232
|
+
performance.title # => "First tour"
|
233
|
+
performance.distance # => BigDecimal("65.25")
|
234
|
+
|
235
|
+
# Create a Performance
|
236
|
+
performance = action.performances.create(
|
237
|
+
title: "First tour",
|
238
|
+
performance_type: "biking",
|
239
|
+
performance_at: Time.now,
|
240
|
+
distance: "65.25"
|
241
|
+
)
|
89
242
|
|
90
|
-
|
243
|
+
performance.title # => "First tour"
|
244
|
+
performance.distance # => BigDecimal("65.25")
|
245
|
+
|
246
|
+
# Update a Performance
|
247
|
+
performance = action.performance.update(1, title: "Big tour")
|
248
|
+
|
249
|
+
performance.title # => "Big tour"
|
250
|
+
|
251
|
+
# Delete a Performance
|
252
|
+
action.performance.delete(1)
|
91
253
|
```
|
92
254
|
|
93
|
-
See also the [Kentaa API docs](https://
|
255
|
+
See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#performances) and [Kentaa::Api::Resources::Performance](lib/kentaa/api/resources/performance.rb) for all available properties.
|
94
256
|
|
95
|
-
|
257
|
+
### Projects
|
96
258
|
|
97
259
|
```ruby
|
98
|
-
|
99
|
-
|
260
|
+
# List Projects
|
261
|
+
projects = client.projects # paginated
|
262
|
+
projects = client.projects.all # non-paginated
|
263
|
+
|
264
|
+
projects.each do |project|
|
265
|
+
project.title # => "Dignissimos provident rerum enim alias magni asperna..."
|
266
|
+
project.target_amount # => 250000
|
267
|
+
end
|
268
|
+
|
269
|
+
# Get Project by ID or slug
|
270
|
+
project = client.projects.get(1)
|
271
|
+
project = client.projects.get("project")
|
272
|
+
|
273
|
+
project.title # => "Dignissimos provident rerum enim alias magni asperna..."
|
274
|
+
project.target_amount # => 250000
|
275
|
+
project.url # => "https://demo1.kentaa.nl/project/dignissimos-provident-rerum-enim-alias-magni-asperna"
|
276
|
+
```
|
277
|
+
|
278
|
+
See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#projects) and [Kentaa::Api::Resources::Project](lib/kentaa/api/resources/project.rb) for all available properties.
|
100
279
|
|
280
|
+
### Recurring donors
|
101
281
|
|
102
|
-
|
282
|
+
```ruby
|
283
|
+
# List Recurring donors
|
284
|
+
recurring_donors = client.recurring_donors # paginated
|
285
|
+
recurring_donors = client.recurring_donors.all # non-paginated
|
286
|
+
|
287
|
+
recurring_donors.each do |recurring_donor|
|
288
|
+
recurring_donor.first_name # => "John"
|
289
|
+
recurring_donor.last_name # => "Doe"
|
290
|
+
end
|
291
|
+
|
292
|
+
# Get Recurring donor
|
293
|
+
recurring_donor = client.recurring_donors.get(1)
|
294
|
+
|
295
|
+
recurring_donor.first_name # => "John"
|
296
|
+
recurring_donor.last_name # => "Doe"
|
297
|
+
recurring_donor.amount # => BigDecimal("15.0")
|
298
|
+
recurring_donor.entity # => Kentaa::Api::Resources::DonationForm
|
103
299
|
```
|
104
300
|
|
105
|
-
See also the [Kentaa API docs](https://
|
301
|
+
See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#recurring-donors) and [Kentaa::Api::Resources::RecurringDonor](lib/kentaa/api/resources/recurring_donor.rb) for all available properties.
|
106
302
|
|
107
|
-
|
303
|
+
### Segments
|
108
304
|
|
109
305
|
```ruby
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
306
|
+
# List Segments
|
307
|
+
segments = client.segments # paginated
|
308
|
+
segments = client.segments.all # non-paginated
|
309
|
+
|
310
|
+
segments.each do |segment|
|
311
|
+
segment.name # => "Segment 2"
|
312
|
+
segment.url # => "https://segment-2.demo1.kentaa.nl/"
|
313
|
+
end
|
314
|
+
|
315
|
+
# Get Segment
|
316
|
+
segment = client.segments.get(1)
|
317
|
+
|
318
|
+
segment.name # => "Segment 2"
|
319
|
+
segment.title # => "Aut est maxime nostrum."
|
320
|
+
segment.url # => "https://segment-2.demo1.kentaa.nl/"
|
321
|
+
segment.target_amount # => 2685
|
115
322
|
```
|
116
323
|
|
117
|
-
See also the [Kentaa API docs](https://
|
324
|
+
See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#segments) and [Kentaa::Api::Resources::Segment](lib/kentaa/api/resources/segment.rb) for all available properties.
|
325
|
+
|
326
|
+
### Sites
|
118
327
|
|
119
|
-
|
328
|
+
The only method here is `current`, since there is only one site per API key.
|
120
329
|
|
121
330
|
```ruby
|
122
|
-
|
123
|
-
|
331
|
+
# Get current Site
|
332
|
+
site = client.sites.current
|
124
333
|
|
125
|
-
|
334
|
+
site.title # => "Aut est maxime nostrum."
|
335
|
+
site.description # => "Maiores ut velit fugiat eos. Quae est nostrum rerum aut et nihil. Sequi eveniet occaecati et est corporis et enim."
|
336
|
+
site.url # => "https://demo1.kentaa.nl/"
|
126
337
|
```
|
127
338
|
|
128
|
-
See also the [Kentaa API docs](https://
|
339
|
+
See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#sites) and [Kentaa::Api::Resources::Site](lib/kentaa/api/resources/site.rb) for all available properties.
|
129
340
|
|
130
|
-
|
341
|
+
### Teams
|
131
342
|
|
132
|
-
|
343
|
+
```ruby
|
344
|
+
# List Teams
|
345
|
+
teams = client.teams # paginated
|
346
|
+
teams = client.teams.all # non-paginated
|
347
|
+
|
348
|
+
teams.each do |team|
|
349
|
+
team.name # => "Asperiores beatae voluptate qui."
|
350
|
+
team.url # => "https://demo1.kentaa.nl/team/asperiores-beatae-voluptate-qui"
|
351
|
+
end
|
352
|
+
|
353
|
+
# Get Team by ID or slug
|
354
|
+
team = client.teams.get(1)
|
355
|
+
team = client.teams.get("team")
|
356
|
+
|
357
|
+
team.name # => "Asperiores beatae voluptate qui."
|
358
|
+
team.url # => "https://demo1.kentaa.nl/team/asperiores-beatae-voluptate-qui"
|
359
|
+
team.total_amount # => BigDecimal("225.0")
|
360
|
+
```
|
361
|
+
|
362
|
+
See also the [Kentaa API docs](https://developer.kentaa.nl/kentaa-api/#teams) and [Kentaa::Api::Resources::Team](lib/kentaa/api/resources/team.rb) for all available properties.
|
363
|
+
|
364
|
+
### Users
|
133
365
|
|
134
366
|
```ruby
|
135
|
-
|
367
|
+
# List Users
|
368
|
+
users = client.users # paginated
|
369
|
+
users = client.users.all # non-paginated
|
370
|
+
|
371
|
+
users.each do |user|
|
372
|
+
user.first_name # => "John"
|
373
|
+
user.last_name # => "Doe"
|
374
|
+
end
|
375
|
+
|
376
|
+
# Get User
|
377
|
+
user = client.users.get(1)
|
378
|
+
|
379
|
+
user.first_name # => "John"
|
380
|
+
user.last_name # => "Doe"
|
381
|
+
|
382
|
+
# Create an User
|
383
|
+
user = client.users.create(
|
384
|
+
first_name: "John",
|
385
|
+
last_name: "Doe"
|
386
|
+
)
|
387
|
+
|
388
|
+
user.id # => 1
|
389
|
+
user.first_name # => "John"
|
390
|
+
user.last_name # => "Doe"
|
391
|
+
|
392
|
+
# Update an User
|
393
|
+
user = client.users.update(1, first_name: "Jane")
|
394
|
+
|
395
|
+
user.first_name # => "Jane"
|
396
|
+
|
397
|
+
# Authenticate an User
|
398
|
+
user = client.users.auth(email: "john.doe@kentaa.nl", password: "secret")
|
399
|
+
|
400
|
+
user.id # => 1
|
401
|
+
user.first_name # => "John"
|
402
|
+
user.last_name # => "Doe"
|
136
403
|
```
|
137
404
|
|
138
|
-
See also the [Kentaa API docs](https://
|
405
|
+
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.
|
406
|
+
|
407
|
+
### Pagination
|
139
408
|
|
140
|
-
|
409
|
+
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.
|
141
410
|
|
142
411
|
```ruby
|
143
|
-
|
144
|
-
teams = client.teams.all # get all teams (non-paginated)
|
412
|
+
actions = client.actions(per_page: 100)
|
145
413
|
|
146
|
-
|
147
|
-
|
414
|
+
actions.each do |action|
|
415
|
+
action.title # => "Lorem ipsum"
|
416
|
+
action.url # => "https://demo1.kentaa.nl/actie/john-doe"
|
417
|
+
end
|
148
418
|
```
|
149
419
|
|
150
|
-
|
420
|
+
You can iterate through the pages using the `.next` method and checking the result. For example:
|
421
|
+
|
422
|
+
```ruby
|
423
|
+
actions = client.actions
|
424
|
+
|
425
|
+
loop do
|
426
|
+
actions.each do |action|
|
427
|
+
# Do something with actions
|
428
|
+
end
|
151
429
|
|
430
|
+
actions = actions.next
|
431
|
+
break if actions.nil?
|
432
|
+
end
|
433
|
+
```
|
152
434
|
|
153
|
-
|
435
|
+
The `all` method on the endpoint returns a lazy [Enumerator](https://ruby-doc.org/core/Enumerator.html) and will automatically iterate through all pages and retrieve the requested data.
|
154
436
|
|
155
437
|
```ruby
|
156
|
-
|
157
|
-
users = client.users.all # get all users (non-paginated)
|
438
|
+
actions = client.actions.all
|
158
439
|
|
159
|
-
|
440
|
+
actions.each do |action|
|
441
|
+
action.title # => "Lorem ipsum"
|
442
|
+
action.url # => "https://demo1.kentaa.nl/actie/john-doe"
|
443
|
+
end
|
160
444
|
```
|
161
445
|
|
162
|
-
See
|
446
|
+
See [Kentaa::Api::Resources::List](lib/kentaa/api/resources/list.rb) for all available pagination methods.
|
447
|
+
|
448
|
+
## Error handling
|
163
449
|
|
450
|
+
All responses that are not HTTP status 20x will result in a [Kentaa::Api::RequestError](lib/kentaa/api/exception.rb).
|
451
|
+
|
452
|
+
```ruby
|
453
|
+
begin
|
454
|
+
client.actions.get("invalid")
|
455
|
+
rescue Kentaa::Api::RequestError => e
|
456
|
+
e.message # => "404: Requested resource was not found."
|
457
|
+
e.http_code # => 404
|
458
|
+
e.errors # => Array[Kentaa::Api::Resources::Error]
|
459
|
+
end
|
460
|
+
```
|
164
461
|
|
165
462
|
## Development
|
166
463
|
|