kentaa-api 0.1.0 → 0.1.1

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 (56) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +0 -1
  3. data/.rubocop.yml +18 -1
  4. data/.travis.yml +7 -3
  5. data/Gemfile +4 -1
  6. data/Gemfile.lock +66 -0
  7. data/README.md +15 -0
  8. data/Rakefile +2 -0
  9. data/bin/console +1 -0
  10. data/kentaa-api.gemspec +2 -2
  11. data/lib/kentaa/api/client.rb +14 -8
  12. data/lib/kentaa/api/{http.rb → request.rb} +9 -10
  13. data/lib/kentaa/api/requests/actions.rb +4 -2
  14. data/lib/kentaa/api/requests/all.rb +3 -1
  15. data/lib/kentaa/api/requests/base.rb +5 -3
  16. data/lib/kentaa/api/requests/donations.rb +4 -2
  17. data/lib/kentaa/api/requests/newsletter_subscriptions.rb +8 -1
  18. data/lib/kentaa/api/requests/projects.rb +4 -2
  19. data/lib/kentaa/api/requests/segments.rb +4 -2
  20. data/lib/kentaa/api/requests/sites.rb +3 -1
  21. data/lib/kentaa/api/requests/teams.rb +4 -2
  22. data/lib/kentaa/api/requests/users.rb +21 -0
  23. data/lib/kentaa/api/response.rb +30 -0
  24. data/lib/kentaa/api/responses/action.rb +72 -6
  25. data/lib/kentaa/api/responses/actions.rb +4 -6
  26. data/lib/kentaa/api/responses/activity.rb +15 -0
  27. data/lib/kentaa/api/responses/address.rb +14 -4
  28. data/lib/kentaa/api/responses/banner.rb +2 -4
  29. data/lib/kentaa/api/responses/base.rb +19 -7
  30. data/lib/kentaa/api/responses/consent.rb +21 -0
  31. data/lib/kentaa/api/responses/donation.rb +38 -8
  32. data/lib/kentaa/api/responses/donations.rb +4 -6
  33. data/lib/kentaa/api/responses/location.rb +29 -0
  34. data/lib/kentaa/api/responses/newsletter_subscription.rb +20 -2
  35. data/lib/kentaa/api/responses/newsletter_subscriptions.rb +4 -6
  36. data/lib/kentaa/api/responses/pagination.rb +9 -5
  37. data/lib/kentaa/api/responses/photo.rb +2 -4
  38. data/lib/kentaa/api/responses/project.rb +31 -5
  39. data/lib/kentaa/api/responses/projects.rb +4 -6
  40. data/lib/kentaa/api/responses/question.rb +2 -4
  41. data/lib/kentaa/api/responses/registration_fee.rb +17 -0
  42. data/lib/kentaa/api/responses/resource.rb +2 -0
  43. data/lib/kentaa/api/responses/reward.rb +2 -4
  44. data/lib/kentaa/api/responses/segment.rb +7 -5
  45. data/lib/kentaa/api/responses/segments.rb +4 -6
  46. data/lib/kentaa/api/responses/site.rb +11 -5
  47. data/lib/kentaa/api/responses/status.rb +27 -0
  48. data/lib/kentaa/api/responses/team.rb +24 -6
  49. data/lib/kentaa/api/responses/teams.rb +4 -6
  50. data/lib/kentaa/api/responses/user.rb +89 -0
  51. data/lib/kentaa/api/responses/users.rb +32 -0
  52. data/lib/kentaa/api/responses/video.rb +2 -4
  53. data/lib/kentaa/api/version.rb +3 -1
  54. data/lib/kentaa/api.rb +12 -2
  55. metadata +15 -6
  56. data/lib/kentaa/api/responses/owner.rb +0 -37
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kentaa
2
4
  module Api
3
5
  module Responses
@@ -5,10 +7,6 @@ module Kentaa
5
7
  include Enumerable
6
8
  include Kentaa::Api::Responses::Pagination
7
9
 
8
- def initialize(response)
9
- super(response)
10
- end
11
-
12
10
  def each(&block)
13
11
  actions.each(&block)
14
12
  end
@@ -19,8 +17,8 @@ module Kentaa
19
17
  @actions ||= begin
20
18
  actions = []
21
19
 
22
- if data[:actions]
23
- data[:actions].each do |action|
20
+ if data
21
+ data.each do |action|
24
22
  actions << Kentaa::Api::Responses::Action.new(action)
25
23
  end
26
24
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kentaa
4
+ module Api
5
+ module Responses
6
+ class Activity < Base
7
+ include Kentaa::Api::Responses::Resource
8
+
9
+ def name
10
+ data[:name]
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,13 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kentaa
2
4
  module Api
3
5
  module Responses
4
6
  class Address < Base
5
7
  include Kentaa::Api::Responses::Resource
6
8
 
7
- def initialize(response)
8
- super(response)
9
- end
10
-
11
9
  def address
12
10
  data[:address]
13
11
  end
@@ -16,6 +14,18 @@ module Kentaa
16
14
  data[:address2]
17
15
  end
18
16
 
17
+ def street
18
+ data[:street]
19
+ end
20
+
21
+ def house_number
22
+ data[:house_number]
23
+ end
24
+
25
+ def house_number_addition
26
+ data[:house_number_addition]
27
+ end
28
+
19
29
  def zipcode
20
30
  data[:zipcode]
21
31
  end
@@ -1,13 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kentaa
2
4
  module Api
3
5
  module Responses
4
6
  class Banner < Base
5
7
  include Kentaa::Api::Responses::Resource
6
8
 
7
- def initialize(response)
8
- super(response)
9
- end
10
-
11
9
  def url
12
10
  data[:url]
13
11
  end
@@ -1,19 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+
1
5
  module Kentaa
2
6
  module Api
3
7
  module Responses
4
8
  class Base
5
9
  attr_reader :data
6
10
 
7
- def initialize(data)
8
- @data = data
9
- end
11
+ def initialize(response)
12
+ if response.respond_to?(:body)
13
+ extend Kentaa::Api::Responses::Status
10
14
 
11
- def error?
12
- !message.nil?
15
+ @response = response
16
+ @data = response.body[attribute_key]
17
+ else
18
+ @data = response
19
+ end
20
+
21
+ @data ||= {}
13
22
  end
14
23
 
15
- def message
16
- data[:message]
24
+ private
25
+
26
+ def attribute_key
27
+ class_name = self.class.name.split("::").last
28
+ class_name.gsub(/([^\^])([A-Z])/, '\1_\2').downcase.to_sym
17
29
  end
18
30
  end
19
31
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kentaa
4
+ module Api
5
+ module Responses
6
+ class Consent < Base
7
+ def url
8
+ data[:url]
9
+ end
10
+
11
+ def text
12
+ data[:text]
13
+ end
14
+
15
+ def version
16
+ data[:version]
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bigdecimal'
2
4
  require 'time'
3
5
 
@@ -7,10 +9,6 @@ module Kentaa
7
9
  class Donation < Base
8
10
  include Kentaa::Api::Responses::Resource
9
11
 
10
- def initialize(response)
11
- super(response[:donation] || response)
12
- end
13
-
14
12
  def segment_id
15
13
  data[:segment_id]
16
14
  end
@@ -47,6 +45,10 @@ module Kentaa
47
45
  data[:company]
48
46
  end
49
47
 
48
+ def anonymous?
49
+ data[:anonymous]
50
+ end
51
+
50
52
  def email
51
53
  data[:email]
52
54
  end
@@ -67,12 +69,16 @@ module Kentaa
67
69
  data[:locale]
68
70
  end
69
71
 
72
+ def currency
73
+ data[:currency]
74
+ end
75
+
70
76
  def amount
71
- BigDecimal.new(data[:amount])
77
+ BigDecimal(data[:amount])
72
78
  end
73
79
 
74
80
  def transaction_costs
75
- BigDecimal.new(data[:transaction_costs]) if data[:transaction_costs]
81
+ BigDecimal(data[:transaction_costs]) if data[:transaction_costs]
76
82
  end
77
83
 
78
84
  def registration_fee?
@@ -80,11 +86,15 @@ module Kentaa
80
86
  end
81
87
 
82
88
  def registration_fee_amount
83
- BigDecimal.new(data[:registration_fee_amount]) if data[:registration_fee_amount]
89
+ BigDecimal(data[:registration_fee_amount]) if data[:registration_fee_amount]
84
90
  end
85
91
 
86
92
  def total_amount
87
- BigDecimal.new(data[:total_amount])
93
+ BigDecimal(data[:total_amount])
94
+ end
95
+
96
+ def countable?
97
+ data[:countable]
88
98
  end
89
99
 
90
100
  def invoicenumber
@@ -111,6 +121,10 @@ module Kentaa
111
121
  data[:payment_id]
112
122
  end
113
123
 
124
+ def payment_description
125
+ data[:payment_description]
126
+ end
127
+
114
128
  def target_url
115
129
  data[:target_url]
116
130
  end
@@ -136,6 +150,22 @@ module Kentaa
136
150
  def address
137
151
  @address ||= Kentaa::Api::Responses::Address.new(data[:address]) if data[:address]
138
152
  end
153
+
154
+ def birthday
155
+ Time.parse(data[:birthday]) if data[:birthday]
156
+ end
157
+
158
+ def gender
159
+ data[:gender]
160
+ end
161
+
162
+ def phone
163
+ data[:phone]
164
+ end
165
+
166
+ def consent
167
+ @consent ||= Kentaa::Api::Responses::Consent.new(data[:consent]) if data[:consent]
168
+ end
139
169
  end
140
170
  end
141
171
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kentaa
2
4
  module Api
3
5
  module Responses
@@ -5,10 +7,6 @@ module Kentaa
5
7
  include Enumerable
6
8
  include Kentaa::Api::Responses::Pagination
7
9
 
8
- def initialize(response)
9
- super(response)
10
- end
11
-
12
10
  def each(&block)
13
11
  donations.each(&block)
14
12
  end
@@ -19,8 +17,8 @@ module Kentaa
19
17
  @donations ||= begin
20
18
  donations = []
21
19
 
22
- if data[:donations]
23
- data[:donations].each do |donation|
20
+ if data
21
+ data.each do |donation|
24
22
  donations << Kentaa::Api::Responses::Donation.new(donation)
25
23
  end
26
24
  end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kentaa
4
+ module Api
5
+ module Responses
6
+ class Location < Base
7
+ def zip_code
8
+ data[:zip_code]
9
+ end
10
+
11
+ def street
12
+ data[:street]
13
+ end
14
+
15
+ def city
16
+ data[:city]
17
+ end
18
+
19
+ def latitude
20
+ data[:latitude]
21
+ end
22
+
23
+ def longitude
24
+ data[:longitude]
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,11 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kentaa
2
4
  module Api
3
5
  module Responses
4
6
  class NewsletterSubscription < Base
5
7
  include Kentaa::Api::Responses::Resource
6
8
 
7
- def initialize(response)
8
- super(response)
9
+ def first_name
10
+ data[:first_name]
11
+ end
12
+
13
+ def infix
14
+ data[:infix]
15
+ end
16
+
17
+ def last_name
18
+ data[:last_name]
19
+ end
20
+
21
+ def name
22
+ [first_name, infix, last_name].compact.join(" ")
9
23
  end
10
24
 
11
25
  def segment_id
@@ -27,6 +41,10 @@ module Kentaa
27
41
  def subscription_url
28
42
  data[:subscription_url]
29
43
  end
44
+
45
+ def consent
46
+ @consent ||= Kentaa::Api::Responses::Consent.new(data[:consent]) if data[:consent]
47
+ end
30
48
  end
31
49
  end
32
50
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kentaa
2
4
  module Api
3
5
  module Responses
@@ -5,10 +7,6 @@ module Kentaa
5
7
  include Enumerable
6
8
  include Kentaa::Api::Responses::Pagination
7
9
 
8
- def initialize(response)
9
- super(response)
10
- end
11
-
12
10
  def each(&block)
13
11
  newsletter_subscriptions.each(&block)
14
12
  end
@@ -19,8 +17,8 @@ module Kentaa
19
17
  @newsletter_subscriptions ||= begin
20
18
  newsletter_subscriptions = []
21
19
 
22
- if data[:newsletter_subscriptions]
23
- data[:newsletter_subscriptions].each do |newsletter_subscription|
20
+ if data
21
+ data.each do |newsletter_subscription|
24
22
  newsletter_subscriptions << Kentaa::Api::Responses::NewsletterSubscription.new(newsletter_subscription)
25
23
  end
26
24
  end
@@ -1,9 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kentaa
2
4
  module Api
3
5
  module Responses
4
6
  module Pagination
7
+ attr_accessor :body
8
+
5
9
  def links
6
- data[:links]
10
+ body[:links]
7
11
  end
8
12
 
9
13
  def pages
@@ -11,19 +15,19 @@ module Kentaa
11
15
  end
12
16
 
13
17
  def total_entries
14
- data[:total_entries]
18
+ body[:total_entries]
15
19
  end
16
20
 
17
21
  def total_pages
18
- data[:total_pages]
22
+ body[:total_pages]
19
23
  end
20
24
 
21
25
  def per_page
22
- data[:per_page]
26
+ body[:per_page]
23
27
  end
24
28
 
25
29
  def current_page
26
- data[:current_page]
30
+ body[:current_page]
27
31
  end
28
32
 
29
33
  def next_page
@@ -1,13 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kentaa
2
4
  module Api
3
5
  module Responses
4
6
  class Photo < Base
5
7
  include Kentaa::Api::Responses::Resource
6
8
 
7
- def initialize(response)
8
- super(response)
9
- end
10
-
11
9
  def url
12
10
  data[:url]
13
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bigdecimal'
2
4
  require 'time'
3
5
 
@@ -7,10 +9,6 @@ module Kentaa
7
9
  class Project < Base
8
10
  include Kentaa::Api::Responses::Resource
9
11
 
10
- def initialize(response)
11
- super(response[:project] || response)
12
- end
13
-
14
12
  def slug
15
13
  data[:slug]
16
14
  end
@@ -32,17 +30,33 @@ module Kentaa
32
30
  end
33
31
 
34
32
  def total_amount
35
- BigDecimal.new(data[:total_amount])
33
+ BigDecimal(data[:total_amount])
36
34
  end
37
35
 
38
36
  def total_donations
39
37
  data[:total_donations]
40
38
  end
41
39
 
40
+ def target_amount_achieved?
41
+ data[:target_amount_achieved]
42
+ end
43
+
42
44
  def visible?
43
45
  data[:visible]
44
46
  end
45
47
 
48
+ def countable?
49
+ data[:countable]
50
+ end
51
+
52
+ def closed?
53
+ data[:closed]
54
+ end
55
+
56
+ def ended?
57
+ data[:ended]
58
+ end
59
+
46
60
  def end_date
47
61
  Time.parse(data[:end_date]) if data[:end_date]
48
62
  end
@@ -55,6 +69,10 @@ module Kentaa
55
69
  data[:donate_url]
56
70
  end
57
71
 
72
+ def location
73
+ @location ||= Kentaa::Api::Responses::Location.new(data[:location])
74
+ end
75
+
58
76
  def photos
59
77
  @photos ||= begin
60
78
  photos = []
@@ -96,6 +114,14 @@ module Kentaa
96
114
  questions
97
115
  end
98
116
  end
117
+
118
+ def consent
119
+ @consent ||= Kentaa::Api::Responses::Consent.new(data[:consent]) if data[:consent]
120
+ end
121
+
122
+ def external_reference
123
+ data[:external_reference]
124
+ end
99
125
  end
100
126
  end
101
127
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kentaa
2
4
  module Api
3
5
  module Responses
@@ -5,10 +7,6 @@ module Kentaa
5
7
  include Enumerable
6
8
  include Kentaa::Api::Responses::Pagination
7
9
 
8
- def initialize(response)
9
- super(response)
10
- end
11
-
12
10
  def each(&block)
13
11
  projects.each(&block)
14
12
  end
@@ -19,8 +17,8 @@ module Kentaa
19
17
  @projects ||= begin
20
18
  projects = []
21
19
 
22
- if data[:projects]
23
- data[:projects].each do |project|
20
+ if data
21
+ data.each do |project|
24
22
  projects << Kentaa::Api::Responses::Project.new(project)
25
23
  end
26
24
  end
@@ -1,13 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kentaa
2
4
  module Api
3
5
  module Responses
4
6
  class Question < Base
5
7
  include Kentaa::Api::Responses::Resource
6
8
 
7
- def initialize(response)
8
- super(response)
9
- end
10
-
11
9
  def question
12
10
  data[:question]
13
11
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kentaa
4
+ module Api
5
+ module Responses
6
+ class RegistrationFee < Base
7
+ def amount
8
+ data[:amount]
9
+ end
10
+
11
+ def title
12
+ data[:title]
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'time'
2
4
 
3
5
  module Kentaa
@@ -1,13 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kentaa
2
4
  module Api
3
5
  module Responses
4
6
  class Reward < Base
5
7
  include Kentaa::Api::Responses::Resource
6
8
 
7
- def initialize(response)
8
- super(response)
9
- end
10
-
11
9
  def type
12
10
  data[:type]
13
11
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bigdecimal'
2
4
  require 'time'
3
5
 
@@ -7,10 +9,6 @@ module Kentaa
7
9
  class Segment < Base
8
10
  include Kentaa::Api::Responses::Resource
9
11
 
10
- def initialize(response)
11
- super(response[:segment] || response)
12
- end
13
-
14
12
  def subdomain
15
13
  data[:subdomain]
16
14
  end
@@ -32,7 +30,7 @@ module Kentaa
32
30
  end
33
31
 
34
32
  def total_amount
35
- BigDecimal.new(data[:total_amount])
33
+ BigDecimal(data[:total_amount])
36
34
  end
37
35
 
38
36
  def total_donations
@@ -64,6 +62,10 @@ module Kentaa
64
62
  banners
65
63
  end
66
64
  end
65
+
66
+ def external_reference
67
+ data[:external_reference]
68
+ end
67
69
  end
68
70
  end
69
71
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kentaa
2
4
  module Api
3
5
  module Responses
@@ -5,10 +7,6 @@ module Kentaa
5
7
  include Enumerable
6
8
  include Kentaa::Api::Responses::Pagination
7
9
 
8
- def initialize(response)
9
- super(response)
10
- end
11
-
12
10
  def each(&block)
13
11
  segments.each(&block)
14
12
  end
@@ -19,8 +17,8 @@ module Kentaa
19
17
  @segments ||= begin
20
18
  segments = []
21
19
 
22
- if data[:segments]
23
- data[:segments].each do |segment|
20
+ if data
21
+ data.each do |segment|
24
22
  segments << Kentaa::Api::Responses::Segment.new(segment)
25
23
  end
26
24
  end