the-city-admin 0.1.5 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +1 -4
- data/index.rb +228 -16
- data/lib/api/donation.rb +51 -0
- data/lib/api/donation_list.rb +74 -0
- data/lib/api/fund.rb +45 -0
- data/lib/api/fund_list.rb +74 -0
- data/lib/api/pledge.rb +11 -2
- data/lib/api/pledge_list.rb +4 -4
- data/lib/readers/donation_list_reader.rb +23 -0
- data/lib/readers/donation_reader.rb +21 -0
- data/lib/readers/fund_list_reader.rb +23 -0
- data/lib/readers/fund_reader.rb +21 -0
- data/thecity_admin_api.gemspec +1 -1
- metadata +10 -2
data/README.rdoc
CHANGED
data/index.rb
CHANGED
@@ -5,33 +5,245 @@
|
|
5
5
|
# @authors Robbie Lieb <robbie@onthecity.org>, Wes Hays <wes@onthecity.org>
|
6
6
|
# *******************************************
|
7
7
|
|
8
|
+
# TCA_ENV = 'development'
|
9
|
+
# THE_CITY_ADMIN_PATH = 'http://api.devthecity.org:9292'
|
8
10
|
|
9
11
|
require 'ruby-debug'
|
10
12
|
require File.dirname(__FILE__) + '/lib/the_city_admin.rb'
|
11
13
|
|
12
|
-
key = '
|
13
|
-
token = '
|
14
|
+
# key = '66c59e2ee24553e7237259e30b4c17365681b95c'
|
15
|
+
# token = 'a9ae4af3c3e80102'
|
14
16
|
|
17
|
+
key = '2bcee1fdccd31f1ef35a7c6708daf5a446a61ee2'
|
18
|
+
token = 'e37ae7fb2042a17a'
|
15
19
|
|
16
20
|
TheCity::AdminApi.connect(key, token)
|
17
21
|
|
18
22
|
|
19
|
-
|
20
|
-
|
21
|
-
|
23
|
+
puts "-----------------------------"
|
24
|
+
puts "##### FUNDS / DONATIONS / PLEDGES #######"
|
25
|
+
puts "-----------------------------"
|
22
26
|
|
23
|
-
while !done
|
24
|
-
group_list = TheCity::GroupList.new({:page => page})
|
25
27
|
|
26
|
-
|
27
|
-
count += 1
|
28
|
-
puts "#{count}) #{group.name}"
|
29
|
-
end
|
28
|
+
# donation_list = TheCity::DonationList.new({:page => 1, :include_details => 1, :start_date => '2012-09-01', :end_date => '2012-09-30'})
|
30
29
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
# donation_list.each do |donation|
|
31
|
+
# puts [donation.user_name, donation.amount].join(' :: ')
|
32
|
+
# end
|
33
|
+
|
34
|
+
|
35
|
+
fund_list = TheCity::FundList.new({:page => 1})
|
36
|
+
|
37
|
+
fund_list.each do |fund|
|
38
|
+
puts [fund.id, fund.name].join(' :: ')
|
36
39
|
end
|
37
40
|
|
41
|
+
sfund = TheCity::Fund.load_fund_by_id(fund_list.first.id)
|
42
|
+
|
43
|
+
puts [sfund.id, sfund.name].join(' :-: ')
|
44
|
+
|
45
|
+
# done = false
|
46
|
+
# page = 1
|
47
|
+
# count = 0
|
48
|
+
|
49
|
+
# while !done
|
50
|
+
# group_list = TheCity::GroupList.new({:page => page, :group_types => 'CG', :include_inactive => true})
|
51
|
+
|
52
|
+
# group_list.each do |group|
|
53
|
+
# count += 1
|
54
|
+
# puts "#{count}) #{group.name}"
|
55
|
+
# end
|
56
|
+
|
57
|
+
# if group_list.total_pages <= page
|
58
|
+
# done = true
|
59
|
+
# else
|
60
|
+
# page += 1
|
61
|
+
# end
|
62
|
+
# end
|
63
|
+
|
64
|
+
|
65
|
+
# done = false
|
66
|
+
# page = 1
|
67
|
+
# count = 0
|
68
|
+
|
69
|
+
# while !done
|
70
|
+
# tag_list = TheCity::TagList.new({:page => page})
|
71
|
+
|
72
|
+
# tag_list.each do |tag|
|
73
|
+
# count += 1
|
74
|
+
# puts "#{count}) #{tag.name} :: #{tag.id}"
|
75
|
+
# end
|
76
|
+
|
77
|
+
# if tag_list.total_pages <= page
|
78
|
+
# done = true
|
79
|
+
# else
|
80
|
+
# page += 1
|
81
|
+
# end
|
82
|
+
# end
|
83
|
+
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
# puts "-----------------------------"
|
89
|
+
# puts "##### USERS #######"
|
90
|
+
# puts "-----------------------------"
|
91
|
+
|
92
|
+
|
93
|
+
# user_list = TheCity::UserList.new
|
94
|
+
|
95
|
+
# user_list.each do |u|
|
96
|
+
# puts u.full_name
|
97
|
+
# end
|
98
|
+
|
99
|
+
# puts "-----------------------------"
|
100
|
+
|
101
|
+
# user = TheCity::User.new
|
102
|
+
# user.title = 'Deacon'
|
103
|
+
# user.first = 'James'
|
104
|
+
# user.middle = 'Wesley'
|
105
|
+
# user.last = 'Hays'
|
106
|
+
# user.nickname = 'Wes'
|
107
|
+
# user.gender = TheCity::User::Gender[:male]
|
108
|
+
# user.email = 'someguy@somewhere.org'
|
109
|
+
# user.staff = false
|
110
|
+
# user.member_since = Time.now.strftime("%Y-%m-%d")
|
111
|
+
# user.birthdate = '1980-09-27'
|
112
|
+
# user.primary_phone = '775-111-2222'
|
113
|
+
# user.primary_phone_type = TheCity::User::PhoneType[:mobile]
|
114
|
+
# user.secondary_phone = '775-333-4444'
|
115
|
+
# user.secondary_phone_type = TheCity::User::PhoneType[:home]
|
116
|
+
# user.marital_status = TheCity::User::MaritalStatus[:married]
|
117
|
+
# #user.primary_campus_id
|
118
|
+
# #user.external_id_1
|
119
|
+
# #user.external_id_2
|
120
|
+
# #user.external_id_3
|
121
|
+
|
122
|
+
# if user.save
|
123
|
+
# puts "User #{user.full_name} saved (#{user.id})"
|
124
|
+
# else
|
125
|
+
# user.error_messages.each { |em| puts em }
|
126
|
+
# end
|
127
|
+
|
128
|
+
# user2 = TheCity::User.load_by_id(user.id)
|
129
|
+
# user2.email = 'somegirl@somewhere.org'
|
130
|
+
# user2.nickname = 'dog'
|
131
|
+
|
132
|
+
# if user2.save
|
133
|
+
# puts "User #{user2.full_name} updated (#{user2.id})"
|
134
|
+
# else
|
135
|
+
# user2.error_messages.each { |em| puts em }
|
136
|
+
# end
|
137
|
+
|
138
|
+
# if user.delete
|
139
|
+
# puts "User #{user.full_name} deleted (#{user.id})"
|
140
|
+
# else
|
141
|
+
# puts "Something bad happened"
|
142
|
+
# #user.error_messages.each { |em| puts em }
|
143
|
+
# end
|
144
|
+
|
145
|
+
|
146
|
+
# puts "-----------------------------"
|
147
|
+
|
148
|
+
# user_list = TheCity::UserList.new
|
149
|
+
|
150
|
+
# user = user_list[0]
|
151
|
+
# puts user.full_name
|
152
|
+
# user.first = 'Wes'
|
153
|
+
# puts user.full_name
|
154
|
+
# user.save
|
155
|
+
# puts user.id
|
156
|
+
|
157
|
+
# user2 = TheCity::User.load_by_id(user.id)
|
158
|
+
# puts user2.full_name
|
159
|
+
|
160
|
+
# puts "User has #{user.addresses.size} addresses"
|
161
|
+
# puts "User has #{user.family.size} family members"
|
162
|
+
# puts "User has #{user.notes.size} notes"
|
163
|
+
# puts "User has #{user.roles.size} roles"
|
164
|
+
# puts "User has #{user.skills.size} skills"
|
165
|
+
# #puts "User has #{user.processes.size} processes"
|
166
|
+
# puts "User has #{user.invitations.size} invitations"
|
167
|
+
# #puts "User has #{user.admin_privileges.size} admin_privileges"
|
168
|
+
|
169
|
+
|
170
|
+
# This is currenly returning a 404 if no family members are found
|
171
|
+
# puts user.family[0].name
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
# puts "-----------------------------"
|
176
|
+
|
177
|
+
|
178
|
+
# group_list = TheCity::GroupList.new(:)
|
179
|
+
# puts group.name
|
180
|
+
# group.name = 'Wes Group'
|
181
|
+
# puts group.name
|
182
|
+
# group.save
|
183
|
+
# group2 = TheCity::Group.load_by_id(group.id)
|
184
|
+
# puts group2.name
|
185
|
+
|
186
|
+
|
187
|
+
# puts "-----------------------------"
|
188
|
+
# puts "##### GROUPS #######"
|
189
|
+
# puts "-----------------------------"
|
190
|
+
|
191
|
+
# group_list = TheCity::GroupList.new
|
192
|
+
|
193
|
+
# group = group_list[13]
|
194
|
+
# puts "Group Name: #{group.name} (#{group.id})"
|
195
|
+
|
196
|
+
# if group.roles.size == 0
|
197
|
+
# puts "No group roles found"
|
198
|
+
# else
|
199
|
+
# puts group.roles[0].title
|
200
|
+
# end
|
201
|
+
|
202
|
+
# if group.tags.size == 0
|
203
|
+
# puts "No group tags found"
|
204
|
+
# else
|
205
|
+
# puts group.tags[0].name
|
206
|
+
# end
|
207
|
+
|
208
|
+
# if group.invitations.size == 0
|
209
|
+
# puts "No group invitations found"
|
210
|
+
# else
|
211
|
+
# puts group.invitations[0].id
|
212
|
+
# end
|
213
|
+
|
214
|
+
|
215
|
+
# puts "-----------------------------"
|
216
|
+
# puts "##### SKILLS #######"
|
217
|
+
# puts "-----------------------------"
|
218
|
+
|
219
|
+
# skill_list = TheCity::SkillList.new
|
220
|
+
|
221
|
+
# puts skill_list.inspect
|
222
|
+
|
223
|
+
# # skill_list.each do |skill|
|
224
|
+
# # puts skill.name
|
225
|
+
# # end
|
226
|
+
|
227
|
+
|
228
|
+
# puts "-----------------------------"
|
229
|
+
# puts "##### USERS #######"
|
230
|
+
# puts "-----------------------------"
|
231
|
+
|
232
|
+
# done = false
|
233
|
+
# page = 1
|
234
|
+
|
235
|
+
|
236
|
+
# while !done
|
237
|
+
# user_list = TheCity::UserList.new({:page => page})
|
238
|
+
|
239
|
+
# user_list.each do |user|
|
240
|
+
# puts user.full_name
|
241
|
+
# end
|
242
|
+
|
243
|
+
# if user_list.total_pages <= page
|
244
|
+
# done = true
|
245
|
+
# else
|
246
|
+
# page += 1
|
247
|
+
# end
|
248
|
+
# end
|
249
|
+
|
data/lib/api/donation.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
module TheCity
|
2
|
+
|
3
|
+
class Donation < ApiObject
|
4
|
+
tc_attr_accessor :id,
|
5
|
+
:user_id,
|
6
|
+
:fund_id,
|
7
|
+
:batch_id,
|
8
|
+
:amount,
|
9
|
+
:instrument_type,
|
10
|
+
:donation_state,
|
11
|
+
:donation_date,
|
12
|
+
:created_at,
|
13
|
+
:updated_at,
|
14
|
+
:fund_name,
|
15
|
+
:primary_campus_id,
|
16
|
+
:user_name,
|
17
|
+
:user_type,
|
18
|
+
:user_api_url,
|
19
|
+
:user_is_member,
|
20
|
+
:spouse_id,
|
21
|
+
:spouse_name,
|
22
|
+
:spouse_is_member
|
23
|
+
|
24
|
+
# Loads the donation by the specified ID.
|
25
|
+
#
|
26
|
+
# @param donation_id The ID of the donation to load.
|
27
|
+
#
|
28
|
+
# Returns a new {Donation} object.
|
29
|
+
def self.load_donation_by_id(pledge_id)
|
30
|
+
donation_reader = DonationReader.new(Pledge_id)
|
31
|
+
self.new(donation_reader)
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
# Constructor.
|
37
|
+
#
|
38
|
+
# @param reader (optional) The object that has the data. This can be a {DonationReader} or Hash object.
|
39
|
+
def initialize(reader = nil)
|
40
|
+
if reader.is_a?(DonationReader)
|
41
|
+
initialize_from_json_object(reader.load_feed)
|
42
|
+
elsif reader.is_a?(Hash)
|
43
|
+
initialize_from_json_object(reader)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module TheCity
|
2
|
+
|
3
|
+
class DonationList
|
4
|
+
|
5
|
+
include Enumerable
|
6
|
+
|
7
|
+
attr_reader :total_entries, :total_pages, :per_page, :current_page
|
8
|
+
|
9
|
+
|
10
|
+
# Constructor.
|
11
|
+
#
|
12
|
+
# @param options A hash of options for loading the list.
|
13
|
+
#
|
14
|
+
# Options:
|
15
|
+
# :page - The page number to get.
|
16
|
+
# :reader - The Reader to use to load the data.
|
17
|
+
# :search - (optional) A donation name to search on.
|
18
|
+
#
|
19
|
+
#
|
20
|
+
# Examples:
|
21
|
+
# DonationList.new
|
22
|
+
#
|
23
|
+
# DonationList.new({:page => 2})
|
24
|
+
#
|
25
|
+
def initialize(options = {})
|
26
|
+
options[:page] ||= 1
|
27
|
+
reader = options[:reader] || TheCity::DonationListReader.new(options)
|
28
|
+
@json_data = reader.load_feed
|
29
|
+
|
30
|
+
@total_entries = @json_data['total_entries']
|
31
|
+
@total_pages = @json_data['total_pages']
|
32
|
+
@per_page = @json_data['per_page']
|
33
|
+
@current_page = @json_data['current_page']
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
# All the donations in the list.
|
38
|
+
#
|
39
|
+
# @return array of donation names.
|
40
|
+
def all_names
|
41
|
+
@json_data['donations'].collect { |donation| donation['user_name'] }
|
42
|
+
end
|
43
|
+
alias :names :all_names
|
44
|
+
|
45
|
+
|
46
|
+
# Get the specified donation.
|
47
|
+
#
|
48
|
+
# @param index The index of the donation to get.
|
49
|
+
#
|
50
|
+
# @return [donation]
|
51
|
+
def [](index)
|
52
|
+
Donation.new( @json_data['donations'][index] ) if @json_data['donations'][index]
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
# This method is needed for Enumerable.
|
57
|
+
def each &block
|
58
|
+
@json_data['donations'].each{ |donation| yield( Donation.new(donation) )}
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
# Alias the count method
|
63
|
+
alias :size :count
|
64
|
+
|
65
|
+
# Checks if the list is empty.
|
66
|
+
#
|
67
|
+
# @return True on empty, false otherwise.
|
68
|
+
def empty?
|
69
|
+
@json_data['donations'].empty?
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
data/lib/api/fund.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
module TheCity
|
2
|
+
|
3
|
+
class Fund < ApiObject
|
4
|
+
tc_attr_accessor :id,
|
5
|
+
:name,
|
6
|
+
:tax_deductible,
|
7
|
+
:group_id,
|
8
|
+
:fund_state,
|
9
|
+
:pledge_type,
|
10
|
+
:pledge_state,
|
11
|
+
:pledge_inactive_date,
|
12
|
+
:pledge_description,
|
13
|
+
:online_givable,
|
14
|
+
:external_id,
|
15
|
+
:created_at,
|
16
|
+
:updated_at
|
17
|
+
|
18
|
+
# Loads the fund by the specified ID.
|
19
|
+
#
|
20
|
+
# @param fund_id The ID of the fund to load.
|
21
|
+
#
|
22
|
+
# Returns a new {Fund} object.
|
23
|
+
def self.load_fund_by_id(fund_id)
|
24
|
+
fund_reader = FundReader.new(fund_id)
|
25
|
+
self.new(fund_reader)
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
# Constructor.
|
31
|
+
#
|
32
|
+
# @param reader (optional) The object that has the data. This can be a {FundReader} or Hash object.
|
33
|
+
def initialize(reader = nil)
|
34
|
+
if reader.is_a?(FundReader)
|
35
|
+
initialize_from_json_object(reader.load_feed)
|
36
|
+
elsif reader.is_a?(Hash)
|
37
|
+
initialize_from_json_object(reader)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module TheCity
|
2
|
+
|
3
|
+
class FundList
|
4
|
+
|
5
|
+
include Enumerable
|
6
|
+
|
7
|
+
attr_reader :total_entries, :total_pages, :per_page, :current_page
|
8
|
+
|
9
|
+
|
10
|
+
# Constructor.
|
11
|
+
#
|
12
|
+
# @param options A hash of options for loading the list.
|
13
|
+
#
|
14
|
+
# Options:
|
15
|
+
# :page - The page number to get.
|
16
|
+
# :reader - The Reader to use to load the data.
|
17
|
+
# :search - (optional) A fund name to search on.
|
18
|
+
#
|
19
|
+
#
|
20
|
+
# Examples:
|
21
|
+
# FundList.new
|
22
|
+
#
|
23
|
+
# FundList.new({:page => 2})
|
24
|
+
#
|
25
|
+
def initialize(options = {})
|
26
|
+
options[:page] ||= 1
|
27
|
+
reader = options[:reader] || TheCity::FundListReader.new(options)
|
28
|
+
@json_data = reader.load_feed
|
29
|
+
|
30
|
+
@total_entries = @json_data['total_entries']
|
31
|
+
@total_pages = @json_data['total_pages']
|
32
|
+
@per_page = @json_data['per_page']
|
33
|
+
@current_page = @json_data['current_page']
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
# All the funds in the list.
|
38
|
+
#
|
39
|
+
# @return array of fund names.
|
40
|
+
def all_names
|
41
|
+
@json_data['funds'].collect { |fund| fund['user_name'] }
|
42
|
+
end
|
43
|
+
alias :names :all_names
|
44
|
+
|
45
|
+
|
46
|
+
# Get the specified fund.
|
47
|
+
#
|
48
|
+
# @param index The index of the fund to get.
|
49
|
+
#
|
50
|
+
# @return [fund]
|
51
|
+
def [](index)
|
52
|
+
Fund.new( @json_data['funds'][index] ) if @json_data['funds'][index]
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
# This method is needed for Enumerable.
|
57
|
+
def each &block
|
58
|
+
@json_data['funds'].each{ |fund| yield( Fund.new(fund) )}
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
# Alias the count method
|
63
|
+
alias :size :count
|
64
|
+
|
65
|
+
# Checks if the list is empty.
|
66
|
+
#
|
67
|
+
# @return True on empty, false otherwise.
|
68
|
+
def empty?
|
69
|
+
@json_data['funds'].empty?
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
data/lib/api/pledge.rb
CHANGED
@@ -7,7 +7,16 @@ module TheCity
|
|
7
7
|
:amount,
|
8
8
|
:pledge_date,
|
9
9
|
:created_at,
|
10
|
-
:updated_at
|
10
|
+
:updated_at,
|
11
|
+
:fund_name,
|
12
|
+
:primary_campus_id,
|
13
|
+
:user_name,
|
14
|
+
:user_type,
|
15
|
+
:user_api_url,
|
16
|
+
:user_is_member,
|
17
|
+
:spouse_id,
|
18
|
+
:spouse_name,
|
19
|
+
:spouse_is_name
|
11
20
|
|
12
21
|
|
13
22
|
# Loads the pledge by the specified ID.
|
@@ -17,7 +26,7 @@ module TheCity
|
|
17
26
|
# Returns a new {Pledge} object.
|
18
27
|
def self.load_pledge_by_id(pledge_id)
|
19
28
|
pledge_reader = PledgeReader.new(Pledge_id)
|
20
|
-
self.new(
|
29
|
+
self.new(pledge_reader)
|
21
30
|
end
|
22
31
|
|
23
32
|
|
data/lib/api/pledge_list.rb
CHANGED
@@ -18,9 +18,9 @@ module TheCity
|
|
18
18
|
#
|
19
19
|
#
|
20
20
|
# Examples:
|
21
|
-
#
|
21
|
+
# PledgeList.new
|
22
22
|
#
|
23
|
-
#
|
23
|
+
# PledgeList.new({:page => 2})
|
24
24
|
#
|
25
25
|
def initialize(options = {})
|
26
26
|
options[:page] ||= 1
|
@@ -38,7 +38,7 @@ module TheCity
|
|
38
38
|
#
|
39
39
|
# @return array of pledge names.
|
40
40
|
def all_names
|
41
|
-
@json_data['pledges'].collect { |pledge| pledge['
|
41
|
+
@json_data['pledges'].collect { |pledge| pledge['user_name'] }
|
42
42
|
end
|
43
43
|
alias :names :all_names
|
44
44
|
|
@@ -49,7 +49,7 @@ module TheCity
|
|
49
49
|
#
|
50
50
|
# @return [pledge]
|
51
51
|
def [](index)
|
52
|
-
|
52
|
+
Pledge.new( @json_data['pledges'][index] ) if @json_data['pledges'][index]
|
53
53
|
end
|
54
54
|
|
55
55
|
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module TheCity
|
2
|
+
|
3
|
+
class DonationListReader < ApiReader
|
4
|
+
|
5
|
+
# Constructor.
|
6
|
+
#
|
7
|
+
# @param page The page number to get. Default is 1.
|
8
|
+
# @param options A hash of options for requesting data from the server.
|
9
|
+
# @param [CacheAdapter] cacher (optional) The cacher to be used to cache data.
|
10
|
+
def initialize(options = {}, cacher = nil)
|
11
|
+
options[:page] ||= 1
|
12
|
+
|
13
|
+
#@class_key = "pledge_list_#{options[:page]}_{some_kind_of_md5_thing_here}"
|
14
|
+
@url_data_path = "/donations"
|
15
|
+
@url_data_params = options
|
16
|
+
|
17
|
+
# The object to store and load the cache.
|
18
|
+
@cacher = cacher unless cacher.nil?
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module TheCity
|
2
|
+
|
3
|
+
class DonationReader < ApiReader
|
4
|
+
|
5
|
+
# Constructor.
|
6
|
+
#
|
7
|
+
# <b>donation_id</b> The ID of the donation to load.
|
8
|
+
# <b>CacheAdapter cacher</b> (optional) The cacher to be used to cache data.
|
9
|
+
def initialize(donation_id, cacher = nil)
|
10
|
+
#@class_key = "donations_#{donation_id}"
|
11
|
+
@url_data_path = "/donations/#{donation_id}"
|
12
|
+
|
13
|
+
# The object to store and load the cache.
|
14
|
+
@cacher = cacher unless cacher.nil?
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module TheCity
|
2
|
+
|
3
|
+
class FundListReader < ApiReader
|
4
|
+
|
5
|
+
# Constructor.
|
6
|
+
#
|
7
|
+
# @param page The page number to get. Default is 1.
|
8
|
+
# @param options A hash of options for requesting data from the server.
|
9
|
+
# @param [CacheAdapter] cacher (optional) The cacher to be used to cache data.
|
10
|
+
def initialize(options = {}, cacher = nil)
|
11
|
+
options[:page] ||= 1
|
12
|
+
|
13
|
+
#@class_key = "pledge_list_#{options[:page]}_{some_kind_of_md5_thing_here}"
|
14
|
+
@url_data_path = "/funds"
|
15
|
+
@url_data_params = options
|
16
|
+
|
17
|
+
# The object to store and load the cache.
|
18
|
+
@cacher = cacher unless cacher.nil?
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module TheCity
|
2
|
+
|
3
|
+
class FundReader < ApiReader
|
4
|
+
|
5
|
+
# Constructor.
|
6
|
+
#
|
7
|
+
# <b>fund_id</b> The ID of the fund to load.
|
8
|
+
# <b>CacheAdapter cacher</b> (optional) The cacher to be used to cache data.
|
9
|
+
def initialize(fund_id, cacher = nil)
|
10
|
+
#@class_key = "funds_#{fund_id}"
|
11
|
+
@url_data_path = "/funds/#{fund_id}"
|
12
|
+
|
13
|
+
# The object to store and load the cache.
|
14
|
+
@cacher = cacher unless cacher.nil?
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
|
data/thecity_admin_api.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: the-city-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: typhoeus
|
@@ -66,8 +66,12 @@ files:
|
|
66
66
|
- lib/api/barcode.rb
|
67
67
|
- lib/api/checkin.rb
|
68
68
|
- lib/api/checkin_list.rb
|
69
|
+
- lib/api/donation.rb
|
70
|
+
- lib/api/donation_list.rb
|
69
71
|
- lib/api/family.rb
|
70
72
|
- lib/api/family_member.rb
|
73
|
+
- lib/api/fund.rb
|
74
|
+
- lib/api/fund_list.rb
|
71
75
|
- lib/api/group.rb
|
72
76
|
- lib/api/group_address.rb
|
73
77
|
- lib/api/group_address_list.rb
|
@@ -135,7 +139,11 @@ files:
|
|
135
139
|
- lib/readers/api_reader.rb
|
136
140
|
- lib/readers/checkin_list_reader.rb
|
137
141
|
- lib/readers/checkin_reader.rb
|
142
|
+
- lib/readers/donation_list_reader.rb
|
143
|
+
- lib/readers/donation_reader.rb
|
138
144
|
- lib/readers/family_reader.rb
|
145
|
+
- lib/readers/fund_list_reader.rb
|
146
|
+
- lib/readers/fund_reader.rb
|
139
147
|
- lib/readers/group_address_list_reader.rb
|
140
148
|
- lib/readers/group_checkin_list_reader.rb
|
141
149
|
- lib/readers/group_event_attendance_list_reader.rb
|