kentaa-api 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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