kentaa-api 0.1.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.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.rspec +2 -0
- data/.rubocop.yml +33 -0
- data/.travis.yml +7 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +163 -0
- data/Rakefile +8 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/kentaa-api.gemspec +30 -0
- data/lib/kentaa/api/client.rb +37 -0
- data/lib/kentaa/api/http.rb +47 -0
- data/lib/kentaa/api/requests/actions.rb +19 -0
- data/lib/kentaa/api/requests/all.rb +24 -0
- data/lib/kentaa/api/requests/base.rb +13 -0
- data/lib/kentaa/api/requests/donations.rb +19 -0
- data/lib/kentaa/api/requests/newsletter_subscriptions.rb +14 -0
- data/lib/kentaa/api/requests/projects.rb +19 -0
- data/lib/kentaa/api/requests/segments.rb +19 -0
- data/lib/kentaa/api/requests/sites.rb +12 -0
- data/lib/kentaa/api/requests/teams.rb +19 -0
- data/lib/kentaa/api/responses/action.rb +114 -0
- data/lib/kentaa/api/responses/actions.rb +34 -0
- data/lib/kentaa/api/responses/address.rb +33 -0
- data/lib/kentaa/api/responses/banner.rb +29 -0
- data/lib/kentaa/api/responses/base.rb +21 -0
- data/lib/kentaa/api/responses/donation.rb +142 -0
- data/lib/kentaa/api/responses/donations.rb +34 -0
- data/lib/kentaa/api/responses/newsletter_subscription.rb +33 -0
- data/lib/kentaa/api/responses/newsletter_subscriptions.rb +34 -0
- data/lib/kentaa/api/responses/owner.rb +37 -0
- data/lib/kentaa/api/responses/pagination.rb +47 -0
- data/lib/kentaa/api/responses/photo.rb +17 -0
- data/lib/kentaa/api/responses/project.rb +102 -0
- data/lib/kentaa/api/responses/projects.rb +34 -0
- data/lib/kentaa/api/responses/question.rb +21 -0
- data/lib/kentaa/api/responses/resource.rb +21 -0
- data/lib/kentaa/api/responses/reward.rb +29 -0
- data/lib/kentaa/api/responses/segment.rb +70 -0
- data/lib/kentaa/api/responses/segments.rb +34 -0
- data/lib/kentaa/api/responses/site.rb +82 -0
- data/lib/kentaa/api/responses/team.rb +128 -0
- data/lib/kentaa/api/responses/teams.rb +34 -0
- data/lib/kentaa/api/responses/video.rb +17 -0
- data/lib/kentaa/api/version.rb +5 -0
- data/lib/kentaa/api.rb +40 -0
- metadata +153 -0
@@ -0,0 +1,114 @@
|
|
1
|
+
require 'bigdecimal'
|
2
|
+
require 'time'
|
3
|
+
|
4
|
+
module Kentaa
|
5
|
+
module Api
|
6
|
+
module Responses
|
7
|
+
class Action < Base
|
8
|
+
include Kentaa::Api::Responses::Resource
|
9
|
+
|
10
|
+
def initialize(response)
|
11
|
+
super(response[:action] || response)
|
12
|
+
end
|
13
|
+
|
14
|
+
def slug
|
15
|
+
data[:slug]
|
16
|
+
end
|
17
|
+
|
18
|
+
def segment_id
|
19
|
+
data[:segment_id]
|
20
|
+
end
|
21
|
+
|
22
|
+
def project_id
|
23
|
+
data[:project_id]
|
24
|
+
end
|
25
|
+
|
26
|
+
def team_id
|
27
|
+
data[:team_id]
|
28
|
+
end
|
29
|
+
|
30
|
+
def owner
|
31
|
+
@owner ||= Kentaa::Api::Responses::Owner.new(data[:owner])
|
32
|
+
end
|
33
|
+
|
34
|
+
def title
|
35
|
+
data[:title]
|
36
|
+
end
|
37
|
+
|
38
|
+
def description
|
39
|
+
data[:description]
|
40
|
+
end
|
41
|
+
|
42
|
+
def target_amount
|
43
|
+
data[:target_amount]
|
44
|
+
end
|
45
|
+
|
46
|
+
def total_amount
|
47
|
+
BigDecimal.new(data[:total_amount])
|
48
|
+
end
|
49
|
+
|
50
|
+
def total_donations
|
51
|
+
data[:total_donations]
|
52
|
+
end
|
53
|
+
|
54
|
+
def visible?
|
55
|
+
data[:visible]
|
56
|
+
end
|
57
|
+
|
58
|
+
def end_date
|
59
|
+
Time.parse(data[:end_date]) if data[:end_date]
|
60
|
+
end
|
61
|
+
|
62
|
+
def url
|
63
|
+
data[:url]
|
64
|
+
end
|
65
|
+
|
66
|
+
def donate_url
|
67
|
+
data[:donate_url]
|
68
|
+
end
|
69
|
+
|
70
|
+
def photos
|
71
|
+
@photos ||= begin
|
72
|
+
photos = []
|
73
|
+
|
74
|
+
if data[:photos]
|
75
|
+
data[:photos].each do |photo|
|
76
|
+
photos << Kentaa::Api::Responses::Photo.new(photo)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
photos
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def videos
|
85
|
+
@videos ||= begin
|
86
|
+
videos = []
|
87
|
+
|
88
|
+
if data[:videos]
|
89
|
+
data[:videos].each do |video|
|
90
|
+
videos << Kentaa::Api::Responses::Video.new(video)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
videos
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def questions
|
99
|
+
@questions ||= begin
|
100
|
+
questions = []
|
101
|
+
|
102
|
+
if data[:questions]
|
103
|
+
data[:questions].each do |question|
|
104
|
+
questions << Kentaa::Api::Responses::Question.new(question)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
questions
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Kentaa
|
2
|
+
module Api
|
3
|
+
module Responses
|
4
|
+
class Actions < Base
|
5
|
+
include Enumerable
|
6
|
+
include Kentaa::Api::Responses::Pagination
|
7
|
+
|
8
|
+
def initialize(response)
|
9
|
+
super(response)
|
10
|
+
end
|
11
|
+
|
12
|
+
def each(&block)
|
13
|
+
actions.each(&block)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def actions
|
19
|
+
@actions ||= begin
|
20
|
+
actions = []
|
21
|
+
|
22
|
+
if data[:actions]
|
23
|
+
data[:actions].each do |action|
|
24
|
+
actions << Kentaa::Api::Responses::Action.new(action)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
actions
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Kentaa
|
2
|
+
module Api
|
3
|
+
module Responses
|
4
|
+
class Address < Base
|
5
|
+
include Kentaa::Api::Responses::Resource
|
6
|
+
|
7
|
+
def initialize(response)
|
8
|
+
super(response)
|
9
|
+
end
|
10
|
+
|
11
|
+
def address
|
12
|
+
data[:address]
|
13
|
+
end
|
14
|
+
|
15
|
+
def address2
|
16
|
+
data[:address2]
|
17
|
+
end
|
18
|
+
|
19
|
+
def zipcode
|
20
|
+
data[:zipcode]
|
21
|
+
end
|
22
|
+
|
23
|
+
def city
|
24
|
+
data[:city]
|
25
|
+
end
|
26
|
+
|
27
|
+
def country
|
28
|
+
data[:country]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Kentaa
|
2
|
+
module Api
|
3
|
+
module Responses
|
4
|
+
class Banner < Base
|
5
|
+
include Kentaa::Api::Responses::Resource
|
6
|
+
|
7
|
+
def initialize(response)
|
8
|
+
super(response)
|
9
|
+
end
|
10
|
+
|
11
|
+
def url
|
12
|
+
data[:url]
|
13
|
+
end
|
14
|
+
|
15
|
+
def text
|
16
|
+
data[:text]
|
17
|
+
end
|
18
|
+
|
19
|
+
def link
|
20
|
+
data[:link]
|
21
|
+
end
|
22
|
+
|
23
|
+
def locale
|
24
|
+
data[:locale]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,142 @@
|
|
1
|
+
require 'bigdecimal'
|
2
|
+
require 'time'
|
3
|
+
|
4
|
+
module Kentaa
|
5
|
+
module Api
|
6
|
+
module Responses
|
7
|
+
class Donation < Base
|
8
|
+
include Kentaa::Api::Responses::Resource
|
9
|
+
|
10
|
+
def initialize(response)
|
11
|
+
super(response[:donation] || response)
|
12
|
+
end
|
13
|
+
|
14
|
+
def segment_id
|
15
|
+
data[:segment_id]
|
16
|
+
end
|
17
|
+
|
18
|
+
def project_id
|
19
|
+
data[:project_id]
|
20
|
+
end
|
21
|
+
|
22
|
+
def team_id
|
23
|
+
data[:team_id]
|
24
|
+
end
|
25
|
+
|
26
|
+
def action_id
|
27
|
+
data[:action_id]
|
28
|
+
end
|
29
|
+
|
30
|
+
def first_name
|
31
|
+
data[:first_name]
|
32
|
+
end
|
33
|
+
|
34
|
+
def infix
|
35
|
+
data[:infix]
|
36
|
+
end
|
37
|
+
|
38
|
+
def last_name
|
39
|
+
data[:last_name]
|
40
|
+
end
|
41
|
+
|
42
|
+
def name
|
43
|
+
[first_name, infix, last_name].compact.join(" ")
|
44
|
+
end
|
45
|
+
|
46
|
+
def company
|
47
|
+
data[:company]
|
48
|
+
end
|
49
|
+
|
50
|
+
def email
|
51
|
+
data[:email]
|
52
|
+
end
|
53
|
+
|
54
|
+
def message
|
55
|
+
data[:message]
|
56
|
+
end
|
57
|
+
|
58
|
+
def newsletter?
|
59
|
+
data[:newsletter]
|
60
|
+
end
|
61
|
+
|
62
|
+
def device_type
|
63
|
+
data[:device_type]
|
64
|
+
end
|
65
|
+
|
66
|
+
def locale
|
67
|
+
data[:locale]
|
68
|
+
end
|
69
|
+
|
70
|
+
def amount
|
71
|
+
BigDecimal.new(data[:amount])
|
72
|
+
end
|
73
|
+
|
74
|
+
def transaction_costs
|
75
|
+
BigDecimal.new(data[:transaction_costs]) if data[:transaction_costs]
|
76
|
+
end
|
77
|
+
|
78
|
+
def registration_fee?
|
79
|
+
data[:registration_fee]
|
80
|
+
end
|
81
|
+
|
82
|
+
def registration_fee_amount
|
83
|
+
BigDecimal.new(data[:registration_fee_amount]) if data[:registration_fee_amount]
|
84
|
+
end
|
85
|
+
|
86
|
+
def total_amount
|
87
|
+
BigDecimal.new(data[:total_amount])
|
88
|
+
end
|
89
|
+
|
90
|
+
def invoicenumber
|
91
|
+
data[:invoicenumber]
|
92
|
+
end
|
93
|
+
|
94
|
+
def payment_method
|
95
|
+
data[:payment_method]
|
96
|
+
end
|
97
|
+
|
98
|
+
def payment_status
|
99
|
+
data[:payment_status]
|
100
|
+
end
|
101
|
+
|
102
|
+
def payment_status_at
|
103
|
+
Time.parse(data[:payment_status_at]) if data[:payment_status_at]
|
104
|
+
end
|
105
|
+
|
106
|
+
def transaction_id
|
107
|
+
data[:transaction_id]
|
108
|
+
end
|
109
|
+
|
110
|
+
def payment_id
|
111
|
+
data[:payment_id]
|
112
|
+
end
|
113
|
+
|
114
|
+
def target_url
|
115
|
+
data[:target_url]
|
116
|
+
end
|
117
|
+
|
118
|
+
def questions
|
119
|
+
@questions ||= begin
|
120
|
+
questions = []
|
121
|
+
|
122
|
+
if data[:questions]
|
123
|
+
data[:questions].each do |question|
|
124
|
+
questions << Kentaa::Api::Responses::Question.new(question)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
questions
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
def reward
|
133
|
+
@reward ||= Kentaa::Api::Responses::Reward.new(data[:reward]) if data[:reward]
|
134
|
+
end
|
135
|
+
|
136
|
+
def address
|
137
|
+
@address ||= Kentaa::Api::Responses::Address.new(data[:address]) if data[:address]
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Kentaa
|
2
|
+
module Api
|
3
|
+
module Responses
|
4
|
+
class Donations < Base
|
5
|
+
include Enumerable
|
6
|
+
include Kentaa::Api::Responses::Pagination
|
7
|
+
|
8
|
+
def initialize(response)
|
9
|
+
super(response)
|
10
|
+
end
|
11
|
+
|
12
|
+
def each(&block)
|
13
|
+
donations.each(&block)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def donations
|
19
|
+
@donations ||= begin
|
20
|
+
donations = []
|
21
|
+
|
22
|
+
if data[:donations]
|
23
|
+
data[:donations].each do |donation|
|
24
|
+
donations << Kentaa::Api::Responses::Donation.new(donation)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
donations
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Kentaa
|
2
|
+
module Api
|
3
|
+
module Responses
|
4
|
+
class NewsletterSubscription < Base
|
5
|
+
include Kentaa::Api::Responses::Resource
|
6
|
+
|
7
|
+
def initialize(response)
|
8
|
+
super(response)
|
9
|
+
end
|
10
|
+
|
11
|
+
def segment_id
|
12
|
+
data[:segment_id]
|
13
|
+
end
|
14
|
+
|
15
|
+
def project_id
|
16
|
+
data[:project_id]
|
17
|
+
end
|
18
|
+
|
19
|
+
def email
|
20
|
+
data[:email]
|
21
|
+
end
|
22
|
+
|
23
|
+
def locale
|
24
|
+
data[:locale]
|
25
|
+
end
|
26
|
+
|
27
|
+
def subscription_url
|
28
|
+
data[:subscription_url]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Kentaa
|
2
|
+
module Api
|
3
|
+
module Responses
|
4
|
+
class NewsletterSubscriptions < Base
|
5
|
+
include Enumerable
|
6
|
+
include Kentaa::Api::Responses::Pagination
|
7
|
+
|
8
|
+
def initialize(response)
|
9
|
+
super(response)
|
10
|
+
end
|
11
|
+
|
12
|
+
def each(&block)
|
13
|
+
newsletter_subscriptions.each(&block)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def newsletter_subscriptions
|
19
|
+
@newsletter_subscriptions ||= begin
|
20
|
+
newsletter_subscriptions = []
|
21
|
+
|
22
|
+
if data[:newsletter_subscriptions]
|
23
|
+
data[:newsletter_subscriptions].each do |newsletter_subscription|
|
24
|
+
newsletter_subscriptions << Kentaa::Api::Responses::NewsletterSubscription.new(newsletter_subscription)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
newsletter_subscriptions
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Kentaa
|
2
|
+
module Api
|
3
|
+
module Responses
|
4
|
+
class Owner < Base
|
5
|
+
include Kentaa::Api::Responses::Resource
|
6
|
+
|
7
|
+
def initialize(response)
|
8
|
+
super(response)
|
9
|
+
end
|
10
|
+
|
11
|
+
def first_name
|
12
|
+
data[:first_name]
|
13
|
+
end
|
14
|
+
|
15
|
+
def infix
|
16
|
+
data[:infix]
|
17
|
+
end
|
18
|
+
|
19
|
+
def last_name
|
20
|
+
data[:last_name]
|
21
|
+
end
|
22
|
+
|
23
|
+
def name
|
24
|
+
[first_name, infix, last_name].compact.join(" ")
|
25
|
+
end
|
26
|
+
|
27
|
+
def email
|
28
|
+
data[:email]
|
29
|
+
end
|
30
|
+
|
31
|
+
def avatar_url
|
32
|
+
data[:avatar_url]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Kentaa
|
2
|
+
module Api
|
3
|
+
module Responses
|
4
|
+
module Pagination
|
5
|
+
def links
|
6
|
+
data[:links]
|
7
|
+
end
|
8
|
+
|
9
|
+
def pages
|
10
|
+
links[:pages] if links
|
11
|
+
end
|
12
|
+
|
13
|
+
def total_entries
|
14
|
+
data[:total_entries]
|
15
|
+
end
|
16
|
+
|
17
|
+
def total_pages
|
18
|
+
data[:total_pages]
|
19
|
+
end
|
20
|
+
|
21
|
+
def per_page
|
22
|
+
data[:per_page]
|
23
|
+
end
|
24
|
+
|
25
|
+
def current_page
|
26
|
+
data[:current_page]
|
27
|
+
end
|
28
|
+
|
29
|
+
def next_page
|
30
|
+
current_page + 1 if next_page?
|
31
|
+
end
|
32
|
+
|
33
|
+
def next_page?
|
34
|
+
current_page && current_page < total_pages
|
35
|
+
end
|
36
|
+
|
37
|
+
def previous_page
|
38
|
+
current_page - 1 if previous_page?
|
39
|
+
end
|
40
|
+
|
41
|
+
def previous_page?
|
42
|
+
current_page && current_page > 1
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require 'bigdecimal'
|
2
|
+
require 'time'
|
3
|
+
|
4
|
+
module Kentaa
|
5
|
+
module Api
|
6
|
+
module Responses
|
7
|
+
class Project < Base
|
8
|
+
include Kentaa::Api::Responses::Resource
|
9
|
+
|
10
|
+
def initialize(response)
|
11
|
+
super(response[:project] || response)
|
12
|
+
end
|
13
|
+
|
14
|
+
def slug
|
15
|
+
data[:slug]
|
16
|
+
end
|
17
|
+
|
18
|
+
def segment_id
|
19
|
+
data[:segment_id]
|
20
|
+
end
|
21
|
+
|
22
|
+
def title
|
23
|
+
data[:title]
|
24
|
+
end
|
25
|
+
|
26
|
+
def description
|
27
|
+
data[:description]
|
28
|
+
end
|
29
|
+
|
30
|
+
def target_amount
|
31
|
+
data[:target_amount]
|
32
|
+
end
|
33
|
+
|
34
|
+
def total_amount
|
35
|
+
BigDecimal.new(data[:total_amount])
|
36
|
+
end
|
37
|
+
|
38
|
+
def total_donations
|
39
|
+
data[:total_donations]
|
40
|
+
end
|
41
|
+
|
42
|
+
def visible?
|
43
|
+
data[:visible]
|
44
|
+
end
|
45
|
+
|
46
|
+
def end_date
|
47
|
+
Time.parse(data[:end_date]) if data[:end_date]
|
48
|
+
end
|
49
|
+
|
50
|
+
def url
|
51
|
+
data[:url]
|
52
|
+
end
|
53
|
+
|
54
|
+
def donate_url
|
55
|
+
data[:donate_url]
|
56
|
+
end
|
57
|
+
|
58
|
+
def photos
|
59
|
+
@photos ||= begin
|
60
|
+
photos = []
|
61
|
+
|
62
|
+
if data[:photos]
|
63
|
+
data[:photos].each do |photo|
|
64
|
+
photos << Kentaa::Api::Responses::Photo.new(photo)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
photos
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def videos
|
73
|
+
@videos ||= begin
|
74
|
+
videos = []
|
75
|
+
|
76
|
+
if data[:videos]
|
77
|
+
data[:videos].each do |video|
|
78
|
+
videos << Kentaa::Api::Responses::Video.new(video)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
videos
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def questions
|
87
|
+
@questions ||= begin
|
88
|
+
questions = []
|
89
|
+
|
90
|
+
if data[:questions]
|
91
|
+
data[:questions].each do |question|
|
92
|
+
questions << Kentaa::Api::Responses::Question.new(question)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
questions
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Kentaa
|
2
|
+
module Api
|
3
|
+
module Responses
|
4
|
+
class Projects < Base
|
5
|
+
include Enumerable
|
6
|
+
include Kentaa::Api::Responses::Pagination
|
7
|
+
|
8
|
+
def initialize(response)
|
9
|
+
super(response)
|
10
|
+
end
|
11
|
+
|
12
|
+
def each(&block)
|
13
|
+
projects.each(&block)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def projects
|
19
|
+
@projects ||= begin
|
20
|
+
projects = []
|
21
|
+
|
22
|
+
if data[:projects]
|
23
|
+
data[:projects].each do |project|
|
24
|
+
projects << Kentaa::Api::Responses::Project.new(project)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
projects
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|