kentaa-api 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +14 -3
  4. data/.travis.yml +5 -4
  5. data/Gemfile +3 -2
  6. data/Gemfile.lock +19 -14
  7. data/README.md +12 -12
  8. data/kentaa-api.gemspec +2 -2
  9. data/lib/kentaa/api.rb +6 -4
  10. data/lib/kentaa/api/client.rb +4 -0
  11. data/lib/kentaa/api/clients/actions.rb +19 -6
  12. data/lib/kentaa/api/clients/base.rb +0 -4
  13. data/lib/kentaa/api/clients/donations.rb +9 -6
  14. data/lib/kentaa/api/clients/manual_donations.rb +39 -0
  15. data/lib/kentaa/api/clients/newsletter_subscriptions.rb +9 -6
  16. data/lib/kentaa/api/clients/projects.rb +9 -6
  17. data/lib/kentaa/api/clients/segments.rb +9 -6
  18. data/lib/kentaa/api/clients/sites.rb +3 -3
  19. data/lib/kentaa/api/clients/teams.rb +9 -6
  20. data/lib/kentaa/api/clients/users.rb +19 -6
  21. data/lib/kentaa/api/exception.rb +18 -0
  22. data/lib/kentaa/api/finder.rb +9 -0
  23. data/lib/kentaa/api/request.rb +46 -5
  24. data/lib/kentaa/api/resources/action.rb +36 -20
  25. data/lib/kentaa/api/resources/actions.rb +11 -3
  26. data/lib/kentaa/api/resources/activity.rb +10 -2
  27. data/lib/kentaa/api/resources/address.rb +6 -2
  28. data/lib/kentaa/api/resources/banner.rb +20 -2
  29. data/lib/kentaa/api/resources/base.rb +35 -11
  30. data/lib/kentaa/api/resources/consent.rb +7 -1
  31. data/lib/kentaa/api/resources/contact.rb +83 -0
  32. data/lib/kentaa/api/resources/donation.rb +25 -18
  33. data/lib/kentaa/api/resources/donations.rb +6 -3
  34. data/lib/kentaa/api/resources/error.rb +23 -0
  35. data/lib/kentaa/api/resources/{pagination.rb → list.rb} +26 -3
  36. data/lib/kentaa/api/resources/location.rb +7 -1
  37. data/lib/kentaa/api/resources/manual_donation.rb +112 -0
  38. data/lib/kentaa/api/resources/manual_donations.rb +40 -0
  39. data/lib/kentaa/api/resources/newsletter_subscription.rb +12 -11
  40. data/lib/kentaa/api/resources/newsletter_subscriptions.rb +6 -3
  41. data/lib/kentaa/api/resources/photo.rb +20 -2
  42. data/lib/kentaa/api/resources/project.rb +26 -12
  43. data/lib/kentaa/api/resources/projects.rb +6 -3
  44. data/lib/kentaa/api/resources/question.rb +10 -2
  45. data/lib/kentaa/api/resources/registration_fee.rb +1 -1
  46. data/lib/kentaa/api/resources/resource.rb +50 -3
  47. data/lib/kentaa/api/resources/reward.rb +10 -2
  48. data/lib/kentaa/api/resources/segment.rb +16 -4
  49. data/lib/kentaa/api/resources/segments.rb +6 -3
  50. data/lib/kentaa/api/resources/site.rb +16 -4
  51. data/lib/kentaa/api/resources/team.rb +23 -14
  52. data/lib/kentaa/api/resources/teams.rb +6 -3
  53. data/lib/kentaa/api/resources/user.rb +17 -5
  54. data/lib/kentaa/api/resources/users.rb +11 -3
  55. data/lib/kentaa/api/resources/video.rb +20 -2
  56. data/lib/kentaa/api/response.rb +21 -3
  57. data/lib/kentaa/api/version.rb +1 -1
  58. metadata +16 -14
  59. data/lib/kentaa/api/clients/all.rb +0 -26
  60. data/lib/kentaa/api/resources/status.rb +0 -27
@@ -6,9 +6,7 @@ require 'time'
6
6
  module Kentaa
7
7
  module Api
8
8
  module Resources
9
- class Site < Base
10
- include Kentaa::Api::Resources::Resource
11
-
9
+ class Site < Resource
12
10
  def object_key
13
11
  "Site_#{id}"
14
12
  end
@@ -75,7 +73,7 @@ module Kentaa
75
73
 
76
74
  if data[:banners]
77
75
  data[:banners].each do |banner|
78
- banners << Kentaa::Api::Resources::Banner.new(config, banner)
76
+ banners << Kentaa::Api::Resources::Banner.new(banner)
79
77
  end
80
78
  end
81
79
 
@@ -86,6 +84,20 @@ module Kentaa
86
84
  def external_reference
87
85
  data[:external_reference]
88
86
  end
87
+
88
+ def donations
89
+ @donations ||= Kentaa::Api::Resources::Donations.new(config)
90
+ end
91
+
92
+ def manual_donations
93
+ @manual_donations ||= Kentaa::Api::Resources::ManualDonations.new(config)
94
+ end
95
+
96
+ private
97
+
98
+ def load_resource
99
+ request.get("/sites/current", options)
100
+ end
89
101
  end
90
102
  end
91
103
  end
@@ -6,23 +6,18 @@ require 'time'
6
6
  module Kentaa
7
7
  module Api
8
8
  module Resources
9
- class Team < Base
10
- include Kentaa::Api::Resources::Resource
11
-
9
+ class Team < Resource
12
10
  def object_key
13
11
  "Team_#{id}"
14
12
  end
15
13
 
16
14
  def parent
17
15
  if project_id
18
- client = Kentaa::Api::Clients::Projects.new(config)
19
- client.get(project_id)
16
+ Kentaa::Api::Resources::Project.new(config, id: project_id)
20
17
  elsif segment_id
21
- client = Kentaa::Api::Clients::Segments.new(config)
22
- client.get(segment_id)
18
+ Kentaa::Api::Resources::Segment.new(config, id: segment_id)
23
19
  else
24
- client = Kentaa::Api::Clients::Sites.new(config)
25
- client.current
20
+ Kentaa::Api::Resources::Site.new(config, id: site_id)
26
21
  end
27
22
  end
28
23
 
@@ -43,7 +38,7 @@ module Kentaa
43
38
  end
44
39
 
45
40
  def owner
46
- @owner ||= Kentaa::Api::Resources::User.new(config, data[:owner])
41
+ @owner ||= Kentaa::Api::Resources::User.new(config, data: data[:owner])
47
42
  end
48
43
 
49
44
  def members
@@ -52,7 +47,7 @@ module Kentaa
52
47
 
53
48
  if data[:members]
54
49
  data[:members].each do |member|
55
- members << Kentaa::Api::Resources::Action.new(config, member)
50
+ members << Kentaa::Api::Resources::Action.new(config, data: member)
56
51
  end
57
52
  end
58
53
 
@@ -122,7 +117,7 @@ module Kentaa
122
117
 
123
118
  if data[:photos]
124
119
  data[:photos].each do |photo|
125
- photos << Kentaa::Api::Resources::Photo.new(config, photo)
120
+ photos << Kentaa::Api::Resources::Photo.new(photo)
126
121
  end
127
122
  end
128
123
 
@@ -136,7 +131,7 @@ module Kentaa
136
131
 
137
132
  if data[:videos]
138
133
  data[:videos].each do |video|
139
- videos << Kentaa::Api::Resources::Video.new(config, video)
134
+ videos << Kentaa::Api::Resources::Video.new(video)
140
135
  end
141
136
  end
142
137
 
@@ -150,7 +145,7 @@ module Kentaa
150
145
 
151
146
  if data[:questions]
152
147
  data[:questions].each do |question|
153
- questions << Kentaa::Api::Resources::Question.new(config, question)
148
+ questions << Kentaa::Api::Resources::Question.new(question)
154
149
  end
155
150
  end
156
151
 
@@ -161,6 +156,20 @@ module Kentaa
161
156
  def external_reference
162
157
  data[:external_reference]
163
158
  end
159
+
160
+ def donations
161
+ @donations ||= Kentaa::Api::Resources::Donations.new(config, team_id: id)
162
+ end
163
+
164
+ def manual_donations
165
+ @manual_donations ||= Kentaa::Api::Resources::ManualDonations.new(config, team_id: id)
166
+ end
167
+
168
+ private
169
+
170
+ def load_resource
171
+ request.get("/teams/#{id}", options)
172
+ end
164
173
  end
165
174
  end
166
175
  end
@@ -3,9 +3,8 @@
3
3
  module Kentaa
4
4
  module Api
5
5
  module Resources
6
- class Teams < Base
6
+ class Teams < List
7
7
  include Enumerable
8
- include Kentaa::Api::Resources::Pagination
9
8
 
10
9
  def each(&block)
11
10
  teams.each(&block)
@@ -13,13 +12,17 @@ module Kentaa
13
12
 
14
13
  private
15
14
 
15
+ def load_resource
16
+ request.get("/teams", options)
17
+ end
18
+
16
19
  def teams
17
20
  @teams ||= begin
18
21
  teams = []
19
22
 
20
23
  if data
21
24
  data.each do |team|
22
- teams << Kentaa::Api::Resources::Team.new(config, team)
25
+ teams << Kentaa::Api::Resources::Team.new(config, data: team)
23
26
  end
24
27
  end
25
28
 
@@ -5,9 +5,7 @@ require 'time'
5
5
  module Kentaa
6
6
  module Api
7
7
  module Resources
8
- class User < Base
9
- include Kentaa::Api::Resources::Resource
10
-
8
+ class User < Resource
11
9
  def object_key
12
10
  "User_#{id}"
13
11
  end
@@ -29,7 +27,7 @@ module Kentaa
29
27
  end
30
28
 
31
29
  def name
32
- [first_name, infix, last_name].compact.join(" ")
30
+ [first_name, infix, last_name].reject { |s| s.to_s.empty? }.join(" ")
33
31
  end
34
32
 
35
33
  def email
@@ -89,7 +87,21 @@ module Kentaa
89
87
  end
90
88
 
91
89
  def consent
92
- @consent ||= Kentaa::Api::Resources::Consent.new(config, data[:consent]) if data[:consent]
90
+ @consent ||= Kentaa::Api::Resources::Consent.new(data[:consent]) if data[:consent]
91
+ end
92
+
93
+ private
94
+
95
+ def load_resource
96
+ request.get("/users/#{id}", options)
97
+ end
98
+
99
+ def create_resource(attributes)
100
+ request.post("/users", options, attributes)
101
+ end
102
+
103
+ def update_resource(attributes)
104
+ request.patch("/users/#{id}", options, attributes)
93
105
  end
94
106
  end
95
107
  end
@@ -3,23 +3,31 @@
3
3
  module Kentaa
4
4
  module Api
5
5
  module Resources
6
- class Users < Base
6
+ class Users < List
7
7
  include Enumerable
8
- include Kentaa::Api::Resources::Pagination
9
8
 
10
9
  def each(&block)
11
10
  users.each(&block)
12
11
  end
13
12
 
13
+ def create(attributes = {})
14
+ user = Kentaa::Api::Resources::User.new(config, options)
15
+ user.save(attributes)
16
+ end
17
+
14
18
  private
15
19
 
20
+ def load_resource
21
+ request.get("/users", options)
22
+ end
23
+
16
24
  def users
17
25
  @users ||= begin
18
26
  users = []
19
27
 
20
28
  if data
21
29
  data.each do |user|
22
- users << Kentaa::Api::Resources::User.new(config, user)
30
+ users << Kentaa::Api::Resources::User.new(config, data: user)
23
31
  end
24
32
  end
25
33
 
@@ -1,10 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'time'
4
+
3
5
  module Kentaa
4
6
  module Api
5
7
  module Resources
6
- class Video < Base
7
- include Kentaa::Api::Resources::Resource
8
+ class Video
9
+ attr_reader :data
10
+
11
+ def initialize(data)
12
+ @data = data
13
+ end
14
+
15
+ def id
16
+ data[:id]
17
+ end
18
+
19
+ def created_at
20
+ Time.parse(data[:created_at]) if data[:created_at]
21
+ end
22
+
23
+ def updated_at
24
+ Time.parse(data[:updated_at]) if data[:updated_at]
25
+ end
8
26
 
9
27
  def url
10
28
  data[:url]
@@ -9,25 +9,43 @@ module Kentaa
9
9
 
10
10
  def initialize(response)
11
11
  @response = response
12
- @body = parse_body(response.body)
12
+ @body = response.body ? parse_body(response.body) : {}
13
13
  end
14
14
 
15
15
  def success?
16
- (code == 200 || code == 201) && !message
16
+ (http_code == 200 || http_code == 201 || http_code == 204) && !message
17
17
  end
18
18
 
19
19
  def error?
20
20
  !success?
21
21
  end
22
22
 
23
- def code
23
+ def http_code
24
24
  response.code.to_i
25
25
  end
26
26
 
27
+ def request_uri
28
+ response.uri
29
+ end
30
+
27
31
  def message
28
32
  body[:message]
29
33
  end
30
34
 
35
+ def errors
36
+ @errors ||= begin
37
+ errors = []
38
+
39
+ if body[:errors]
40
+ body[:errors].each do |error|
41
+ errors << Kentaa::Api::Resources::Error.new(error)
42
+ end
43
+ end
44
+
45
+ errors
46
+ end
47
+ end
48
+
31
49
  private
32
50
 
33
51
  def parse_body(body)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Kentaa
4
4
  module Api
5
- VERSION = "0.2.0"
5
+ VERSION = "0.4.0"
6
6
  end
7
7
  end
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.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kentaa
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-06 00:00:00.000000000 Z
11
+ date: 2020-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '12.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '12.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -72,7 +72,7 @@ dependencies:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: 2.3.2
75
- description:
75
+ description:
76
76
  email:
77
77
  - support@kentaa.nl
78
78
  executables: []
@@ -94,9 +94,9 @@ files:
94
94
  - lib/kentaa/api.rb
95
95
  - lib/kentaa/api/client.rb
96
96
  - lib/kentaa/api/clients/actions.rb
97
- - lib/kentaa/api/clients/all.rb
98
97
  - lib/kentaa/api/clients/base.rb
99
98
  - lib/kentaa/api/clients/donations.rb
99
+ - lib/kentaa/api/clients/manual_donations.rb
100
100
  - lib/kentaa/api/clients/newsletter_subscriptions.rb
101
101
  - lib/kentaa/api/clients/projects.rb
102
102
  - lib/kentaa/api/clients/segments.rb
@@ -114,12 +114,16 @@ files:
114
114
  - lib/kentaa/api/resources/banner.rb
115
115
  - lib/kentaa/api/resources/base.rb
116
116
  - lib/kentaa/api/resources/consent.rb
117
+ - lib/kentaa/api/resources/contact.rb
117
118
  - lib/kentaa/api/resources/donation.rb
118
119
  - lib/kentaa/api/resources/donations.rb
120
+ - lib/kentaa/api/resources/error.rb
121
+ - lib/kentaa/api/resources/list.rb
119
122
  - lib/kentaa/api/resources/location.rb
123
+ - lib/kentaa/api/resources/manual_donation.rb
124
+ - lib/kentaa/api/resources/manual_donations.rb
120
125
  - lib/kentaa/api/resources/newsletter_subscription.rb
121
126
  - lib/kentaa/api/resources/newsletter_subscriptions.rb
122
- - lib/kentaa/api/resources/pagination.rb
123
127
  - lib/kentaa/api/resources/photo.rb
124
128
  - lib/kentaa/api/resources/project.rb
125
129
  - lib/kentaa/api/resources/projects.rb
@@ -130,7 +134,6 @@ files:
130
134
  - lib/kentaa/api/resources/segment.rb
131
135
  - lib/kentaa/api/resources/segments.rb
132
136
  - lib/kentaa/api/resources/site.rb
133
- - lib/kentaa/api/resources/status.rb
134
137
  - lib/kentaa/api/resources/team.rb
135
138
  - lib/kentaa/api/resources/teams.rb
136
139
  - lib/kentaa/api/resources/user.rb
@@ -142,7 +145,7 @@ homepage: https://github.com/KentaaNL/kentaa-api
142
145
  licenses:
143
146
  - MIT
144
147
  metadata: {}
145
- post_install_message:
148
+ post_install_message:
146
149
  rdoc_options: []
147
150
  require_paths:
148
151
  - lib
@@ -150,16 +153,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
150
153
  requirements:
151
154
  - - ">="
152
155
  - !ruby/object:Gem::Version
153
- version: 2.0.0
156
+ version: 2.3.0
154
157
  required_rubygems_version: !ruby/object:Gem::Requirement
155
158
  requirements:
156
159
  - - ">="
157
160
  - !ruby/object:Gem::Version
158
161
  version: '0'
159
162
  requirements: []
160
- rubyforge_project:
161
- rubygems_version: 2.7.9
162
- signing_key:
163
+ rubygems_version: 3.1.2
164
+ signing_key:
163
165
  specification_version: 4
164
166
  summary: Ruby library for communicating with the Kentaa API
165
167
  test_files: []
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Kentaa
4
- module Api
5
- module Clients
6
- module All
7
- def all(options = {})
8
- enumerator = Enumerator.new do |yielder|
9
- page = 1
10
-
11
- loop do
12
- response = list(options.merge(page: page))
13
- response.each { |item| yielder.yield item } if response.success?
14
-
15
- raise StopIteration unless response.next_page?
16
-
17
- page = response.next_page
18
- end
19
- end
20
-
21
- enumerator.lazy
22
- end
23
- end
24
- end
25
- end
26
- end