kentaa-api 0.1.1 → 0.2.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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +13 -12
  5. data/lib/kentaa/api.rb +42 -39
  6. data/lib/kentaa/api/client.rb +10 -10
  7. data/lib/kentaa/api/{requests → clients}/actions.rb +4 -4
  8. data/lib/kentaa/api/{requests → clients}/all.rb +1 -1
  9. data/lib/kentaa/api/clients/base.rb +19 -0
  10. data/lib/kentaa/api/{requests → clients}/donations.rb +4 -4
  11. data/lib/kentaa/api/{requests → clients}/newsletter_subscriptions.rb +4 -4
  12. data/lib/kentaa/api/{requests → clients}/projects.rb +4 -4
  13. data/lib/kentaa/api/{requests → clients}/segments.rb +4 -4
  14. data/lib/kentaa/api/{requests → clients}/sites.rb +2 -2
  15. data/lib/kentaa/api/{requests → clients}/teams.rb +4 -4
  16. data/lib/kentaa/api/{requests → clients}/users.rb +4 -4
  17. data/lib/kentaa/api/config.rb +39 -0
  18. data/lib/kentaa/api/exception.rb +8 -0
  19. data/lib/kentaa/api/finder.rb +35 -0
  20. data/lib/kentaa/api/request.rb +15 -24
  21. data/lib/kentaa/api/{responses → resources}/action.rb +34 -10
  22. data/lib/kentaa/api/{responses → resources}/actions.rb +3 -3
  23. data/lib/kentaa/api/{responses → resources}/activity.rb +2 -2
  24. data/lib/kentaa/api/{responses → resources}/address.rb +2 -2
  25. data/lib/kentaa/api/{responses → resources}/banner.rb +2 -2
  26. data/lib/kentaa/api/{responses → resources}/base.rb +6 -6
  27. data/lib/kentaa/api/{responses → resources}/consent.rb +1 -1
  28. data/lib/kentaa/api/{responses → resources}/donation.rb +45 -6
  29. data/lib/kentaa/api/{responses → resources}/donations.rb +3 -3
  30. data/lib/kentaa/api/{responses → resources}/location.rb +1 -1
  31. data/lib/kentaa/api/{responses → resources}/newsletter_subscription.rb +24 -3
  32. data/lib/kentaa/api/{responses → resources}/newsletter_subscriptions.rb +3 -3
  33. data/lib/kentaa/api/{responses → resources}/pagination.rb +1 -1
  34. data/lib/kentaa/api/{responses → resources}/photo.rb +2 -2
  35. data/lib/kentaa/api/{responses → resources}/project.rb +25 -7
  36. data/lib/kentaa/api/{responses → resources}/projects.rb +3 -3
  37. data/lib/kentaa/api/{responses → resources}/question.rb +2 -2
  38. data/lib/kentaa/api/{responses → resources}/registration_fee.rb +1 -1
  39. data/lib/kentaa/api/{responses → resources}/resource.rb +1 -1
  40. data/lib/kentaa/api/{responses → resources}/reward.rb +2 -2
  41. data/lib/kentaa/api/{responses → resources}/segment.rb +11 -3
  42. data/lib/kentaa/api/{responses → resources}/segments.rb +3 -3
  43. data/lib/kentaa/api/{responses → resources}/site.rb +7 -3
  44. data/lib/kentaa/api/{responses → resources}/status.rb +4 -4
  45. data/lib/kentaa/api/{responses → resources}/team.rb +28 -7
  46. data/lib/kentaa/api/{responses → resources}/teams.rb +3 -3
  47. data/lib/kentaa/api/{responses → resources}/user.rb +11 -3
  48. data/lib/kentaa/api/{responses → resources}/users.rb +3 -3
  49. data/lib/kentaa/api/{responses → resources}/video.rb +2 -2
  50. data/lib/kentaa/api/response.rb +12 -0
  51. data/lib/kentaa/api/version.rb +1 -1
  52. metadata +44 -41
  53. data/lib/kentaa/api/requests/base.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c9f7ea46e68c4af626c227e7ef2bd787d181d487661f60a89c43f5ab7c3d9ac
4
- data.tar.gz: dd3725827a82aa19ad4dfa6858e9a9d47b945a33cd8791410f2d2ce57d0c8e29
3
+ metadata.gz: 8c62a6f7a4458cfe09d6ae1c9afc27460f05c58c8e23d59462a03ef2d59f16cc
4
+ data.tar.gz: f9b555b9a83ae084ca35ca3690f7dd4c85119bcb4aa7984fee0e32ab9e9eadf9
5
5
  SHA512:
6
- metadata.gz: 4e03bd106dfab27111bdcb5ef44019b6cd7872254b22c27d91e35ba849b110c3e866a3f22ac6d9e72a7825ed8cef3f7898cfaf7691ac7f3d085a83a9dea4d4d7
7
- data.tar.gz: be757c6cc5dd388820d05c400cdf2f59e593c82921b4c71374250ca490118315a4fbe4636bc63217fc4ebf2bbd6492c86efb298fd1d71c047c3b1fe49aaa953b
6
+ metadata.gz: 0cdf39593639b4e11f13006bc602f084daa45c4fda1770c6a6b827d66bad3f587cafe82cb1f4cea7b8e3a76d4d4aa1afacc39d6fce9fb85c3434efaf69c27131
7
+ data.tar.gz: c7b0cb509e5ab3215dbdddfb671e6127b3897470edc794e728ca32d21f436e2636afaad21b8d1256b6015b020d1b6af54d31f0ef80cad9622dcb09edb65635dd
@@ -40,6 +40,9 @@ Style/Documentation:
40
40
  Style/ExpandPathArguments:
41
41
  Enabled: false
42
42
 
43
+ Style/IfUnlessModifier:
44
+ Enabled: false
45
+
43
46
  Style/SafeNavigation:
44
47
  Enabled: false
45
48
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kentaa-api (0.1.1)
4
+ kentaa-api (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -31,14 +31,15 @@ Create the client with your API key:
31
31
  ```ruby
32
32
  require 'kentaa/api'
33
33
 
34
- client = Kentaa::Api::Client.new('your_api_key')
34
+ config = Kentaa::Api::Config.new('your_api_key')
35
+ client = Kentaa::Api::Client.new(config)
35
36
  ```
36
37
 
37
38
  ### Retrieving data
38
39
 
39
40
  All endpoints use the same convention for retrieving data. The methods `list` and `all` are used for retrieving multiple resources. The method `get` is used for retrieving a single resource.
40
41
 
41
- The `list` method on the endpoint returns an [Enumerable](https://ruby-doc.org/core-2.3.4/Enumerable.html) object:
42
+ The `list` method on the endpoint returns an [Enumerable](https://ruby-doc.org/core/Enumerable.html) object:
42
43
 
43
44
  ```ruby
44
45
  actions = client.actions.list
@@ -53,9 +54,9 @@ The results might be part of a paginated set. You can query the next page by doi
53
54
  actions = client.actions.list(page: actions.next_page) if actions.next_page?
54
55
  ```
55
56
 
56
- See also `Kentaa::Api::Responses::Pagination` for the available methods for pagination.
57
+ See also `Kentaa::Api::Resources::Pagination` for the available methods for pagination.
57
58
 
58
- The `all` method on the endpoint returns an [Enumerator](https://ruby-doc.org/core-2.3.4/Enumerator.html) and will iterate automatically through all pages to retrieve the requested data.
59
+ The `all` method on the endpoint returns an [Enumerator](https://ruby-doc.org/core/Enumerator.html) and will iterate automatically through all pages to retrieve the requested data.
59
60
 
60
61
  ```ruby
61
62
  actions = client.actions.all
@@ -78,7 +79,7 @@ action = client.actions.get(1) # query action by ID
78
79
  action = client.actions.get("john-doe") # query action by slug
79
80
  ```
80
81
 
81
- See also the [Kentaa API documention](https://api.kentaa.nl/v1/doc/actions).
82
+ See also the [Kentaa API docs](https://api.kentaa.nl/v1/doc/actions).
82
83
 
83
84
  #### Donations
84
85
 
@@ -89,7 +90,7 @@ donations = client.donations.all # get all donations (non-paginated)
89
90
  donation = client.donations.get(1) # query donation by ID
90
91
  ```
91
92
 
92
- See also the [Kentaa API documention](https://api.kentaa.nl/v1/doc/donations).
93
+ See also the [Kentaa API docs](https://api.kentaa.nl/v1/doc/donations).
93
94
 
94
95
  #### Newsletter subscriptions
95
96
 
@@ -101,7 +102,7 @@ newsletter_subscriptions = client.newsletter_subscriptions.list # get all news
101
102
  newsletter_subscriptions = client.newsletter_subscriptions.get(1) # query newsletter subscription by ID
102
103
  ```
103
104
 
104
- See also the [Kentaa API documention](https://api.kentaa.nl/v1/doc/newsletter-subscriptions).
105
+ See also the [Kentaa API docs](https://api.kentaa.nl/v1/doc/newsletter-subscriptions).
105
106
 
106
107
  #### Projects
107
108
 
@@ -113,7 +114,7 @@ project = client.projects.get(1) # query project by ID
113
114
  project = client.projects.get("project") # query project by slug
114
115
  ```
115
116
 
116
- See also the [Kentaa API documention](https://api.kentaa.nl/v1/doc/projects).
117
+ See also the [Kentaa API docs](https://api.kentaa.nl/v1/doc/projects).
117
118
 
118
119
  #### Segments
119
120
 
@@ -124,7 +125,7 @@ segments = client.segments.all # get all segments (non-paginated)
124
125
  segment = client.segments.get(1) # query segment by ID
125
126
  ```
126
127
 
127
- See also the [Kentaa API documention](https://api.kentaa.nl/v1/doc/segments).
128
+ See also the [Kentaa API docs](https://api.kentaa.nl/v1/doc/segments).
128
129
 
129
130
  #### Sites
130
131
 
@@ -134,7 +135,7 @@ The only method here is `current`, since there is only one site.
134
135
  site = client.sites.current # get the current site
135
136
  ```
136
137
 
137
- See also the [Kentaa API documention](https://api.kentaa.nl/v1/doc/sites).
138
+ See also the [Kentaa API docs](https://api.kentaa.nl/v1/doc/sites).
138
139
 
139
140
  #### Teams
140
141
 
@@ -146,7 +147,7 @@ team = client.teams.get(1) # query team by ID
146
147
  team = client.teams.get("team") # query team by slug
147
148
  ```
148
149
 
149
- See also the [Kentaa API documention](https://api.kentaa.nl/v1/doc/teams).
150
+ See also the [Kentaa API docs](https://api.kentaa.nl/v1/doc/teams).
150
151
 
151
152
 
152
153
  #### Users
@@ -158,7 +159,7 @@ users = client.users.all # get all users (non-paginated)
158
159
  user = client.users.get(1) # query user by ID
159
160
  ```
160
161
 
161
- See also the [Kentaa API documention](https://api.kentaa.nl/v1/doc/users).
162
+ See also the [Kentaa API docs](https://api.kentaa.nl/v1/doc/users).
162
163
 
163
164
 
164
165
  ## Development
@@ -1,49 +1,52 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "api/requests/base"
4
- require_relative "api/requests/all"
3
+ require_relative "api/clients/base"
4
+ require_relative "api/clients/all"
5
5
 
6
- require_relative "api/requests/actions"
7
- require_relative "api/requests/donations"
8
- require_relative "api/requests/newsletter_subscriptions"
9
- require_relative "api/requests/projects"
10
- require_relative "api/requests/segments"
11
- require_relative "api/requests/sites"
12
- require_relative "api/requests/teams"
13
- require_relative "api/requests/users"
6
+ require_relative "api/clients/actions"
7
+ require_relative "api/clients/donations"
8
+ require_relative "api/clients/newsletter_subscriptions"
9
+ require_relative "api/clients/projects"
10
+ require_relative "api/clients/segments"
11
+ require_relative "api/clients/sites"
12
+ require_relative "api/clients/teams"
13
+ require_relative "api/clients/users"
14
14
 
15
- require_relative "api/responses/base"
16
- require_relative "api/responses/pagination"
17
- require_relative "api/responses/resource"
18
- require_relative "api/responses/status"
15
+ require_relative "api/resources/base"
16
+ require_relative "api/resources/pagination"
17
+ require_relative "api/resources/resource"
18
+ require_relative "api/resources/status"
19
19
 
20
- require_relative "api/responses/action"
21
- require_relative "api/responses/actions"
22
- require_relative "api/responses/activity"
23
- require_relative "api/responses/address"
24
- require_relative "api/responses/banner"
25
- require_relative "api/responses/consent"
26
- require_relative "api/responses/donation"
27
- require_relative "api/responses/donations"
28
- require_relative "api/responses/location"
29
- require_relative "api/responses/newsletter_subscription"
30
- require_relative "api/responses/newsletter_subscriptions"
31
- require_relative "api/responses/photo"
32
- require_relative "api/responses/project"
33
- require_relative "api/responses/projects"
34
- require_relative "api/responses/question"
35
- require_relative "api/responses/registration_fee"
36
- require_relative "api/responses/reward"
37
- require_relative "api/responses/segment"
38
- require_relative "api/responses/segments"
39
- require_relative "api/responses/site"
40
- require_relative "api/responses/team"
41
- require_relative "api/responses/teams"
42
- require_relative "api/responses/user"
43
- require_relative "api/responses/users"
44
- require_relative "api/responses/video"
20
+ require_relative "api/resources/action"
21
+ require_relative "api/resources/actions"
22
+ require_relative "api/resources/activity"
23
+ require_relative "api/resources/address"
24
+ require_relative "api/resources/banner"
25
+ require_relative "api/resources/consent"
26
+ require_relative "api/resources/donation"
27
+ require_relative "api/resources/donations"
28
+ require_relative "api/resources/location"
29
+ require_relative "api/resources/newsletter_subscription"
30
+ require_relative "api/resources/newsletter_subscriptions"
31
+ require_relative "api/resources/photo"
32
+ require_relative "api/resources/project"
33
+ require_relative "api/resources/projects"
34
+ require_relative "api/resources/question"
35
+ require_relative "api/resources/registration_fee"
36
+ require_relative "api/resources/reward"
37
+ require_relative "api/resources/segment"
38
+ require_relative "api/resources/segments"
39
+ require_relative "api/resources/site"
40
+ require_relative "api/resources/team"
41
+ require_relative "api/resources/teams"
42
+ require_relative "api/resources/user"
43
+ require_relative "api/resources/users"
44
+ require_relative "api/resources/video"
45
45
 
46
46
  require_relative "api/client"
47
+ require_relative "api/config"
48
+ require_relative "api/exception"
49
+ require_relative "api/finder"
47
50
  require_relative "api/request"
48
51
  require_relative "api/response"
49
52
 
@@ -3,40 +3,40 @@
3
3
  module Kentaa
4
4
  module Api
5
5
  class Client
6
- def initialize(api_key, options = {})
7
- @request = Kentaa::Api::Request.new(api_key, options)
6
+ def initialize(config)
7
+ @config = config
8
8
  end
9
9
 
10
10
  def actions
11
- Kentaa::Api::Requests::Actions.new(@request)
11
+ Kentaa::Api::Clients::Actions.new(@config)
12
12
  end
13
13
 
14
14
  def donations
15
- Kentaa::Api::Requests::Donations.new(@request)
15
+ Kentaa::Api::Clients::Donations.new(@config)
16
16
  end
17
17
 
18
18
  def newsletter_subscriptions
19
- Kentaa::Api::Requests::NewsletterSubscriptions.new(@request)
19
+ Kentaa::Api::Clients::NewsletterSubscriptions.new(@config)
20
20
  end
21
21
 
22
22
  def projects
23
- Kentaa::Api::Requests::Projects.new(@request)
23
+ Kentaa::Api::Clients::Projects.new(@config)
24
24
  end
25
25
 
26
26
  def segments
27
- Kentaa::Api::Requests::Segments.new(@request)
27
+ Kentaa::Api::Clients::Segments.new(@config)
28
28
  end
29
29
 
30
30
  def sites
31
- Kentaa::Api::Requests::Sites.new(@request)
31
+ Kentaa::Api::Clients::Sites.new(@config)
32
32
  end
33
33
 
34
34
  def teams
35
- Kentaa::Api::Requests::Teams.new(@request)
35
+ Kentaa::Api::Clients::Teams.new(@config)
36
36
  end
37
37
 
38
38
  def users
39
- Kentaa::Api::Requests::Users.new(@request)
39
+ Kentaa::Api::Clients::Users.new(@config)
40
40
  end
41
41
  end
42
42
  end
@@ -2,18 +2,18 @@
2
2
 
3
3
  module Kentaa
4
4
  module Api
5
- module Requests
5
+ module Clients
6
6
  class Actions < Base
7
- include Kentaa::Api::Requests::All
7
+ include Kentaa::Api::Clients::All
8
8
 
9
9
  def list(options = {})
10
10
  response = request.get("/actions", options)
11
- Kentaa::Api::Responses::Actions.new(response)
11
+ Kentaa::Api::Resources::Actions.new(config, response)
12
12
  end
13
13
 
14
14
  def get(id)
15
15
  response = request.get("/actions/#{id}")
16
- Kentaa::Api::Responses::Action.new(response)
16
+ Kentaa::Api::Resources::Action.new(config, response)
17
17
  end
18
18
  end
19
19
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Kentaa
4
4
  module Api
5
- module Requests
5
+ module Clients
6
6
  module All
7
7
  def all(options = {})
8
8
  enumerator = Enumerator.new do |yielder|
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kentaa
4
+ module Api
5
+ module Clients
6
+ class Base
7
+ attr_reader :config
8
+
9
+ def initialize(config)
10
+ @config = config
11
+ end
12
+
13
+ def request
14
+ @request ||= Kentaa::Api::Request.new(config)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -2,18 +2,18 @@
2
2
 
3
3
  module Kentaa
4
4
  module Api
5
- module Requests
5
+ module Clients
6
6
  class Donations < Base
7
- include Kentaa::Api::Requests::All
7
+ include Kentaa::Api::Clients::All
8
8
 
9
9
  def list(options = {})
10
10
  response = request.get("/donations", options)
11
- Kentaa::Api::Responses::Donations.new(response)
11
+ Kentaa::Api::Resources::Donations.new(config, response)
12
12
  end
13
13
 
14
14
  def get(id)
15
15
  response = request.get("/donations/#{id}")
16
- Kentaa::Api::Responses::Donation.new(response)
16
+ Kentaa::Api::Resources::Donation.new(config, response)
17
17
  end
18
18
  end
19
19
  end
@@ -2,18 +2,18 @@
2
2
 
3
3
  module Kentaa
4
4
  module Api
5
- module Requests
5
+ module Clients
6
6
  class NewsletterSubscriptions < Base
7
- include Kentaa::Api::Requests::All
7
+ include Kentaa::Api::Clients::All
8
8
 
9
9
  def list(options = {})
10
10
  response = request.get("/newsletter-subscriptions", options)
11
- Kentaa::Api::Responses::NewsletterSubscriptions.new(response)
11
+ Kentaa::Api::Resources::NewsletterSubscriptions.new(config, response)
12
12
  end
13
13
 
14
14
  def get(id)
15
15
  response = request.get("/newsletter-subscriptions/#{id}")
16
- Kentaa::Api::Responses::NewsletterSubscription.new(response)
16
+ Kentaa::Api::Resources::NewsletterSubscription.new(config, response)
17
17
  end
18
18
  end
19
19
  end
@@ -2,18 +2,18 @@
2
2
 
3
3
  module Kentaa
4
4
  module Api
5
- module Requests
5
+ module Clients
6
6
  class Projects < Base
7
- include Kentaa::Api::Requests::All
7
+ include Kentaa::Api::Clients::All
8
8
 
9
9
  def list(options = {})
10
10
  response = request.get("/projects", options)
11
- Kentaa::Api::Responses::Projects.new(response)
11
+ Kentaa::Api::Resources::Projects.new(config, response)
12
12
  end
13
13
 
14
14
  def get(id)
15
15
  response = request.get("/projects/#{id}")
16
- Kentaa::Api::Responses::Project.new(response)
16
+ Kentaa::Api::Resources::Project.new(config, response)
17
17
  end
18
18
  end
19
19
  end
@@ -2,18 +2,18 @@
2
2
 
3
3
  module Kentaa
4
4
  module Api
5
- module Requests
5
+ module Clients
6
6
  class Segments < Base
7
- include Kentaa::Api::Requests::All
7
+ include Kentaa::Api::Clients::All
8
8
 
9
9
  def list(options = {})
10
10
  response = request.get("/segments", options)
11
- Kentaa::Api::Responses::Segments.new(response)
11
+ Kentaa::Api::Resources::Segments.new(config, response)
12
12
  end
13
13
 
14
14
  def get(id)
15
15
  response = request.get("/segments/#{id}")
16
- Kentaa::Api::Responses::Segment.new(response)
16
+ Kentaa::Api::Resources::Segment.new(config, response)
17
17
  end
18
18
  end
19
19
  end
@@ -2,11 +2,11 @@
2
2
 
3
3
  module Kentaa
4
4
  module Api
5
- module Requests
5
+ module Clients
6
6
  class Sites < Base
7
7
  def current
8
8
  response = request.get("/sites/current")
9
- Kentaa::Api::Responses::Site.new(response)
9
+ Kentaa::Api::Resources::Site.new(config, response)
10
10
  end
11
11
  end
12
12
  end
@@ -2,18 +2,18 @@
2
2
 
3
3
  module Kentaa
4
4
  module Api
5
- module Requests
5
+ module Clients
6
6
  class Teams < Base
7
- include Kentaa::Api::Requests::All
7
+ include Kentaa::Api::Clients::All
8
8
 
9
9
  def list(options = {})
10
10
  response = request.get("/teams", options)
11
- Kentaa::Api::Responses::Teams.new(response)
11
+ Kentaa::Api::Resources::Teams.new(config, response)
12
12
  end
13
13
 
14
14
  def get(id)
15
15
  response = request.get("/teams/#{id}")
16
- Kentaa::Api::Responses::Team.new(response)
16
+ Kentaa::Api::Resources::Team.new(config, response)
17
17
  end
18
18
  end
19
19
  end