kentaa-api 0.1.0 → 0.1.1

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