stbaldricks 1.5.1.pre

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 (117) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/lib/stbaldricks.rb +2 -0
  4. data/lib/stbaldricks/api.rb +7 -0
  5. data/lib/stbaldricks/api_connector.rb +47 -0
  6. data/lib/stbaldricks/client.rb +7 -0
  7. data/lib/stbaldricks/configuration.rb +47 -0
  8. data/lib/stbaldricks/default_logger.rb +24 -0
  9. data/lib/stbaldricks/endpoints/communicate.rb +67 -0
  10. data/lib/stbaldricks/endpoints/config.rb +18 -0
  11. data/lib/stbaldricks/endpoints/contact.rb +12 -0
  12. data/lib/stbaldricks/endpoints/event.rb +39 -0
  13. data/lib/stbaldricks/endpoints/event_application.rb +32 -0
  14. data/lib/stbaldricks/endpoints/fund.rb +24 -0
  15. data/lib/stbaldricks/endpoints/kid.rb +24 -0
  16. data/lib/stbaldricks/endpoints/kid_honor.rb +17 -0
  17. data/lib/stbaldricks/endpoints/lib/entity.rb +247 -0
  18. data/lib/stbaldricks/endpoints/message.rb +27 -0
  19. data/lib/stbaldricks/endpoints/newsletter_recipient.rb +41 -0
  20. data/lib/stbaldricks/endpoints/participant.rb +66 -0
  21. data/lib/stbaldricks/endpoints/photo.rb +51 -0
  22. data/lib/stbaldricks/endpoints/recurring_gift.rb +18 -0
  23. data/lib/stbaldricks/endpoints/search.rb +63 -0
  24. data/lib/stbaldricks/endpoints/shave_schedule.rb +28 -0
  25. data/lib/stbaldricks/endpoints/user.rb +106 -0
  26. data/lib/stbaldricks/entities/batch.rb +29 -0
  27. data/lib/stbaldricks/entities/campaign.rb +37 -0
  28. data/lib/stbaldricks/entities/communicate.rb +20 -0
  29. data/lib/stbaldricks/entities/config.rb +41 -0
  30. data/lib/stbaldricks/entities/contact.rb +40 -0
  31. data/lib/stbaldricks/entities/contact_group.rb +29 -0
  32. data/lib/stbaldricks/entities/document_library.rb +19 -0
  33. data/lib/stbaldricks/entities/document_library_category.rb +14 -0
  34. data/lib/stbaldricks/entities/donation.rb +372 -0
  35. data/lib/stbaldricks/entities/donation/donor_type.rb +13 -0
  36. data/lib/stbaldricks/entities/donation/how_created.rb +22 -0
  37. data/lib/stbaldricks/entities/donation/payment_type.rb +17 -0
  38. data/lib/stbaldricks/entities/donation/promo_code.rb +22 -0
  39. data/lib/stbaldricks/entities/donation/recipient_type.rb +17 -0
  40. data/lib/stbaldricks/entities/donation/special_donation_type.rb +78 -0
  41. data/lib/stbaldricks/entities/donation/status.rb +12 -0
  42. data/lib/stbaldricks/entities/donation/submitter_type.rb +13 -0
  43. data/lib/stbaldricks/entities/donor.rb +15 -0
  44. data/lib/stbaldricks/entities/event.rb +173 -0
  45. data/lib/stbaldricks/entities/event/fund_relationship_type.rb +15 -0
  46. data/lib/stbaldricks/entities/event/how_created.rb +14 -0
  47. data/lib/stbaldricks/entities/event/promo_code.rb +11 -0
  48. data/lib/stbaldricks/entities/event/status.rb +13 -0
  49. data/lib/stbaldricks/entities/event/sub_type.rb +16 -0
  50. data/lib/stbaldricks/entities/event/type.rb +12 -0
  51. data/lib/stbaldricks/entities/event_application.rb +135 -0
  52. data/lib/stbaldricks/entities/event_application/model_type.rb +15 -0
  53. data/lib/stbaldricks/entities/event_application/status.rb +23 -0
  54. data/lib/stbaldricks/entities/event_donation_summary.rb +18 -0
  55. data/lib/stbaldricks/entities/event_participant_summary.rb +17 -0
  56. data/lib/stbaldricks/entities/event_supporter.rb +24 -0
  57. data/lib/stbaldricks/entities/fund.rb +98 -0
  58. data/lib/stbaldricks/entities/fundraiser.rb +124 -0
  59. data/lib/stbaldricks/entities/international_partner.rb +58 -0
  60. data/lib/stbaldricks/entities/kid.rb +190 -0
  61. data/lib/stbaldricks/entities/kid_honor.rb +123 -0
  62. data/lib/stbaldricks/entities/lib/address.rb +25 -0
  63. data/lib/stbaldricks/entities/lib/base.rb +505 -0
  64. data/lib/stbaldricks/entities/lib/cacheable.rb +43 -0
  65. data/lib/stbaldricks/entities/lib/default_cacheable.rb +17 -0
  66. data/lib/stbaldricks/entities/lib/email_address.rb +15 -0
  67. data/lib/stbaldricks/entities/lib/error.rb +38 -0
  68. data/lib/stbaldricks/entities/lib/fundraising_page.rb +20 -0
  69. data/lib/stbaldricks/entities/lib/geo_location.rb +9 -0
  70. data/lib/stbaldricks/entities/lib/location.rb +27 -0
  71. data/lib/stbaldricks/entities/lib/name.rb +17 -0
  72. data/lib/stbaldricks/entities/lib/not_implemented_object.rb +32 -0
  73. data/lib/stbaldricks/entities/lib/opt_out_settings.rb +21 -0
  74. data/lib/stbaldricks/entities/lib/payment.rb +86 -0
  75. data/lib/stbaldricks/entities/lib/permissions.rb +33 -0
  76. data/lib/stbaldricks/entities/lib/phone.rb +29 -0
  77. data/lib/stbaldricks/entities/lib/third_party_media.rb +20 -0
  78. data/lib/stbaldricks/entities/lib/top_level.rb +99 -0
  79. data/lib/stbaldricks/entities/lib/venue.rb +18 -0
  80. data/lib/stbaldricks/entities/memorial.rb +61 -0
  81. data/lib/stbaldricks/entities/message.rb +65 -0
  82. data/lib/stbaldricks/entities/newsletter_recipient.rb +17 -0
  83. data/lib/stbaldricks/entities/organization.rb +90 -0
  84. data/lib/stbaldricks/entities/page.rb +49 -0
  85. data/lib/stbaldricks/entities/participant.rb +216 -0
  86. data/lib/stbaldricks/entities/person.rb +403 -0
  87. data/lib/stbaldricks/entities/photo.rb +260 -0
  88. data/lib/stbaldricks/entities/recurring_gift.rb +215 -0
  89. data/lib/stbaldricks/entities/response.rb +37 -0
  90. data/lib/stbaldricks/entities/search.rb +223 -0
  91. data/lib/stbaldricks/entities/section.rb +15 -0
  92. data/lib/stbaldricks/entities/shave_schedule.rb +69 -0
  93. data/lib/stbaldricks/entities/summary.rb +32 -0
  94. data/lib/stbaldricks/entities/team.rb +95 -0
  95. data/lib/stbaldricks/entities/user.rb +76 -0
  96. data/lib/stbaldricks/enums/country.rb +223 -0
  97. data/lib/stbaldricks/enums/feature.rb +29 -0
  98. data/lib/stbaldricks/enums/league_status.rb +16 -0
  99. data/lib/stbaldricks/enums/model_type.rb +39 -0
  100. data/lib/stbaldricks/enums/permission.rb +223 -0
  101. data/lib/stbaldricks/enums/permission_model_type.rb +21 -0
  102. data/lib/stbaldricks/enums/province.rb +39 -0
  103. data/lib/stbaldricks/enums/state.rb +137 -0
  104. data/lib/stbaldricks/enums/top_level_category_type.rb +25 -0
  105. data/lib/stbaldricks/errors.rb +18 -0
  106. data/lib/stbaldricks/log.rb +16 -0
  107. data/lib/stbaldricks/patches/array.rb +6 -0
  108. data/lib/stbaldricks/patches/boolean.rb +25 -0
  109. data/lib/stbaldricks/patches/class.rb +13 -0
  110. data/lib/stbaldricks/patches/float.rb +9 -0
  111. data/lib/stbaldricks/patches/hash.rb +16 -0
  112. data/lib/stbaldricks/patches/integer.rb +9 -0
  113. data/lib/stbaldricks/patches/nil.rb +25 -0
  114. data/lib/stbaldricks/patches/string.rb +54 -0
  115. data/lib/stbaldricks/request.rb +146 -0
  116. data/lib/stbaldricks/version.rb +5 -0
  117. metadata +215 -0
@@ -0,0 +1,16 @@
1
+ require 'stbaldricks/entities/lib/top_level'
2
+
3
+ module SBF
4
+ module Client
5
+ class Event < SBF::Client::TopLevelEntity
6
+ module SubType
7
+ NONE = 'none'
8
+ VIRTUAL = 'virtual'
9
+ CAMPUS = 'campus'
10
+ COMMUNITY = 'community'
11
+ CORPORATE = 'corporate'
12
+ SCHOOL = 'school'
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ require 'stbaldricks/entities/lib/top_level'
2
+
3
+ module SBF
4
+ module Client
5
+ class Event < SBF::Client::TopLevelEntity
6
+ module Type
7
+ HEAD_SHAVING = 'head-shaving'
8
+ OTHER = 'other'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,135 @@
1
+ require 'stbaldricks/endpoints/event_application'
2
+ require 'stbaldricks/entities/fund'
3
+ require 'stbaldricks/entities/campaign'
4
+ require 'stbaldricks/entities/event'
5
+ require 'stbaldricks/entities/team'
6
+ require 'stbaldricks/entities/participant'
7
+ require 'stbaldricks/entities/fundraiser'
8
+ require 'stbaldricks/entities/lib/address'
9
+ require 'stbaldricks/entities/lib/base'
10
+ require 'stbaldricks/entities/lib/top_level'
11
+ require 'stbaldricks/entities/lib/name'
12
+
13
+ module SBF
14
+ module Client
15
+ class EventApplication < SBF::Client::TopLevelEntity
16
+ endpoint SBF::Client::EventApplicationEndpoint
17
+ actions DEFAULT_CRUD_ACTIONS
18
+ blacklist_action :delete
19
+
20
+ class FullParticipant < SBF::Client::FullParticipant
21
+ attr_reader :model_type
22
+
23
+ def model_type
24
+ SBF::Client::EventApplication::ModelType::PARTICIPANT
25
+ end
26
+ end
27
+
28
+ class PartialParticipant < SBF::Client::PartialParticipant
29
+ attr_reader :model_type
30
+ attr_accessor :year
31
+
32
+ def model_type
33
+ SBF::Client::EventApplication::ModelType::PARTICIPANT
34
+ end
35
+ end
36
+
37
+ class FullFundraiser < SBF::Client::FullFundraiser
38
+ attr_reader :model_type
39
+
40
+ def model_type
41
+ SBF::Client::EventApplication::ModelType::FUNDRAISER
42
+ end
43
+ end
44
+
45
+ class PartialFundraiser < SBF::Client::PartialFundraiser
46
+ attr_reader :model_type
47
+ attr_accessor :year
48
+
49
+ def model_type
50
+ SBF::Client::EventApplication::ModelType::FUNDRAISER
51
+ end
52
+ end
53
+
54
+ class FullTeam < SBF::Client::FullTeam
55
+ attr_reader :model_type
56
+
57
+ def model_type
58
+ SBF::Client::EventApplication::ModelType::TEAM
59
+ end
60
+ end
61
+
62
+ class PartialTeam < SBF::Client::PartialTeam
63
+ attr_reader :model_type
64
+ attr_accessor :year
65
+
66
+ def model_type
67
+ SBF::Client::EventApplication::ModelType::TEAM
68
+ end
69
+ end
70
+
71
+ class FullEvent < SBF::Client::FullEvent
72
+ attr_reader :model_type
73
+
74
+ def model_type
75
+ SBF::Client::EventApplication::ModelType::EVENT
76
+ end
77
+ end
78
+
79
+ class PartialEvent < SBF::Client::PartialEvent
80
+ attr_reader :model_type
81
+
82
+ def model_type
83
+ SBF::Client::EventApplication::ModelType::EVENT
84
+ end
85
+ end
86
+
87
+ class Requestor < SBF::Client::BaseEntity
88
+ attr_accessor :name
89
+ entity_attr_accessor :name_pieces, 'SBF::Client::NamePieces'
90
+ entity_attr_accessor :email_address, 'SBF::Client::EmailAddress'
91
+ entity_attr_accessor :phone, 'SBF::Client::Phone'
92
+ entity_attr_accessor :address, 'SBF::Client::Address'
93
+ end
94
+
95
+ attr_accessor :id
96
+ attr_accessor :requested_event_title
97
+ attr_accessor :status
98
+ attr_accessor :is_archived
99
+ attr_accessor :no_conversion_reason
100
+ attr_accessor :promotional_code
101
+ attr_accessor :created_at, :modified_at
102
+ entity_attr_accessor :requestor, 'SBF::Client::EventApplication::Requestor'
103
+ entity_attr_accessor :qualifier, 'SBF::Client::FullPerson', 'SBF::Client::PartialPerson', true
104
+ entity_attr_accessor :fund, 'SBF::Client::FullFund', 'SBF::Client::PartialFund', true
105
+ entity_attr_accessor :campaign, 'SBF::Client::FullCampaign', 'SBF::Client::PartialCampaign', true
106
+
107
+ multitype_attr_accessor(
108
+ :model,
109
+ [
110
+ [
111
+ ->(v) { v[:model_type] == SBF::Client::EventApplication::ModelType::PARTICIPANT },
112
+ 'SBF::Client::EventApplication::FullParticipant',
113
+ 'SBF::Client::EventApplication::PartialParticipant'
114
+ ],
115
+ [
116
+ ->(v) { v[:model_type] == SBF::Client::EventApplication::ModelType::FUNDRAISER },
117
+ 'SBF::Client::EventApplication::FullFundraiser',
118
+ 'SBF::Client::EventApplication::PartialFundraiser'
119
+ ],
120
+ [
121
+ ->(v) { v[:model_type] == SBF::Client::EventApplication::ModelType::TEAM },
122
+ 'SBF::Client::EventApplication::FullTeam',
123
+ 'SBF::Client::EventApplication::PartialTeam'
124
+ ],
125
+ [
126
+ ->(v) { v[:model_type] == SBF::Client::EventApplication::ModelType::EVENT },
127
+ 'SBF::Client::EventApplication::FullEvent',
128
+ 'SBF::Client::EventApplication::PartialEvent'
129
+ ]
130
+ ],
131
+ optional: true
132
+ )
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,15 @@
1
+ require 'stbaldricks/entities/lib/top_level'
2
+
3
+ module SBF
4
+ module Client
5
+ class EventApplication < SBF::Client::TopLevelEntity
6
+ module ModelType
7
+ EVENT = 'event'
8
+ TEAM = 'team'
9
+ PARTICIPANT = 'participant'
10
+ FUNDRAISER = 'fundraiser'
11
+ MEMORIAL = 'memorial'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,23 @@
1
+ require 'stbaldricks/entities/lib/top_level'
2
+
3
+ module SBF
4
+ module Client
5
+ class EventApplication < SBF::Client::TopLevelEntity
6
+ module Status
7
+ NEW = 'new'
8
+ REACHED_OUT = 'reached_out'
9
+ CREATED_EVENT = 'created_event'
10
+ CREATED_PARTICIPANT = 'created_participant'
11
+ CREATED_TEAM = 'created_team'
12
+ CREATED_FUNDRAISER = 'created_fundraiser'
13
+ NO_CONVERSION = 'no_conversion'
14
+ CONNECTED = 'connected'
15
+ DUPLICATE = 'duplicate'
16
+ CREATED_DONOR = 'created_donor'
17
+ NEXT_YEAR = 'next_year'
18
+ FINALIZING = 'finalizing'
19
+ CREATED_MEMORIAL = 'created_memorial'
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,18 @@
1
+ require 'stbaldricks/entities/lib/top_level'
2
+
3
+ module SBF
4
+ module Client
5
+ class EventDonationSummary < SBF::Client::TopLevelEntity
6
+ actions DEFAULT_CRUD_ACTIONS
7
+ blacklist_action :get
8
+ blacklist_action :create
9
+ blacklist_action :update
10
+ blacklist_action :delete
11
+
12
+ attr_accessor :amount_raised
13
+ attr_accessor :donations
14
+ attr_accessor :direct_amount_raised
15
+ attr_accessor :direct_donations
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ require 'stbaldricks/entities/lib/top_level'
2
+
3
+ module SBF
4
+ module Client
5
+ class EventParticipantSummary < SBF::Client::TopLevelEntity
6
+ actions DEFAULT_CRUD_ACTIONS
7
+ blacklist_action :get
8
+ blacklist_action :create
9
+ blacklist_action :update
10
+ blacklist_action :delete
11
+
12
+ attr_accessor :shavees
13
+ attr_accessor :non_shavees
14
+ attr_accessor :participants
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,24 @@
1
+ require 'stbaldricks/entities/lib/top_level'
2
+ require 'stbaldricks/entities/event'
3
+ require 'htmlentities'
4
+
5
+ module SBF
6
+ module Client
7
+ class EventSupporter < SBF::Client::TopLevelEntity
8
+ actions DEFAULT_CRUD_ACTIONS
9
+
10
+ disallow_instantiation
11
+ attr_accessor :id, :sort_order
12
+ end
13
+
14
+ class PartialEventSupporter < EventSupporter
15
+ end
16
+
17
+ class FullEventSupporter < EventSupporter
18
+ attr_accessor :photo_url
19
+ attr_accessor :name, :url
20
+ entity_attr_accessor :event, 'SBF::Client::FullEvent', 'SBF::Client::PartialEvent', true
21
+ entity_attr_accessor :photo, 'SBF::Client::Photo'
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,98 @@
1
+ require 'stbaldricks/entities/fund'
2
+ require 'stbaldricks/entities/lib/top_level'
3
+ require 'stbaldricks/entities/lib/fundraising_page'
4
+ require 'stbaldricks/endpoints/fund'
5
+ require 'htmlentities'
6
+
7
+ module SBF
8
+ module Client
9
+ class Fund < SBF::Client::TopLevelEntity
10
+ endpoint SBF::Client::FundEndpoint
11
+ action :allowed_entities
12
+ action :get
13
+ action :find
14
+ action :find_first
15
+ action :update
16
+
17
+ disallow_instantiation
18
+
19
+ class Photos < SBF::Client::BaseEntity
20
+ attr_reader :avatar, :default
21
+ end
22
+
23
+ class YearlyTotals < SBF::Client::BaseEntity
24
+ attr_reader :year
25
+ attr_reader :fundraisers
26
+ attr_reader :participants
27
+ attr_reader :shavees
28
+ attr_reader :non_shavees
29
+ attr_reader :teams
30
+ attr_reader :events
31
+ attr_reader :amount_raised
32
+
33
+ def to_hash
34
+ {}.tap do |hsh|
35
+ self.class.attributes.each { |name| hsh[name] = send(name.to_sym) unless name.to_sym == :year }
36
+ end
37
+ end
38
+ end
39
+
40
+ class Totals < SBF::Client::BaseEntity
41
+ attr_reader :fundraisers
42
+ attr_reader :participants
43
+ attr_reader :shavees
44
+ attr_reader :non_shavees
45
+ attr_reader :teams
46
+ attr_reader :events
47
+ attr_reader :amount_raised
48
+ end
49
+
50
+ class Photos < SBF::Client::BaseEntity
51
+ attr_reader :avatar, :default
52
+ end
53
+ end
54
+
55
+ class PartialFund < Fund
56
+ attr_accessor :id
57
+ end
58
+
59
+ class FullFund < Fund
60
+ attr_accessor :id
61
+ attr_reader :display_name
62
+ attr_accessor :name
63
+ attr_accessor :disabled
64
+ attr_accessor :description
65
+ entity_attr_accessor :photos, 'SBF::Client::Fund::Photos'
66
+ entity_attr_reader :totals, 'SBF::Client::Fund::Totals'
67
+ entity_collection_attr_accessor :totals_by_year, 'SBF::Client::Fund::Total'
68
+ entity_attr_accessor :fundraising_page, 'SBF::Client::FundraisingPage', nil, true
69
+ entity_attr_accessor :photos, 'SBF::Client::Fund::Photos'
70
+ attr_accessor :kid_name
71
+ attr_accessor :offline_donation_uuid, :offline_donation_form
72
+
73
+ def display_name
74
+ HTMLEntities.new.decode(@display_name)
75
+ end
76
+
77
+ def totals_by_year=(value)
78
+ return [] if value.nil? || value.empty?
79
+
80
+ @totals_by_year = value.map { |k, v|
81
+ SBF::Client::Fund::YearlyTotals.new(v.merge(year: k.to_s.to_i))
82
+ }
83
+ end
84
+
85
+ def to_hash
86
+ hsh = super.to_hash
87
+ return hsh if @totals_by_year.nil?
88
+
89
+ hsh[:totals_by_year] = {}
90
+ @totals_by_year.each do |year_total|
91
+ hsh[:totals_by_year][year_total.year.to_s.to_sym] = year_total.to_hash
92
+ end
93
+
94
+ hsh
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,124 @@
1
+ require 'stbaldricks/entities/lib/top_level'
2
+ require 'stbaldricks/entities/person'
3
+ require 'stbaldricks/entities/fund'
4
+ require 'stbaldricks/entities/event'
5
+ require 'stbaldricks/entities/team'
6
+ require 'stbaldricks/entities/lib/fundraising_page'
7
+ require 'stbaldricks/entities/lib/venue'
8
+ require 'stbaldricks/entities/lib/permissions'
9
+ require 'htmlentities'
10
+ require 'stbaldricks/entities/lib/default_cacheable'
11
+
12
+ module SBF
13
+ module Client
14
+ class Fundraiser < SBF::Client::TopLevelEntity
15
+ include Entities::DefaultCacheable
16
+ actions DEFAULT_CRUD_ACTIONS
17
+
18
+ disallow_instantiation
19
+
20
+ module Status
21
+ ACTIVE = 'active'
22
+ PENDING = 'pending'
23
+ end
24
+
25
+ module HowCreated
26
+ WEBSITE = 'website'
27
+ ADMIN_CONTROL_PANEL = 'admin_control_panel'
28
+ ADMIN_IMPORT = 'admin_import'
29
+ LEGACY = 'legacy'
30
+ MOBILE = 'mobile'
31
+ end
32
+
33
+ module FundRelationshipType
34
+ NO_ASSOCIATION = 'no_association'
35
+ INDIRECT_ONE = 'indirect_one'
36
+ INDIRECT_MULTIPLE = 'indirect_multiple'
37
+ DIRECT = 'direct'
38
+ DIRECT_BUT_LOCKED = 'direct_but_locked'
39
+ INHERITED_TEAM = 'inherited_team'
40
+ INHERITED_EVENT = 'inherited_event'
41
+ INHERITED_TEAMS_EVENT = 'inherited_teams_event'
42
+ INHERITED_BOTH_TEAM_AND_EVENT = 'inherited_both_team_and_event'
43
+ end
44
+
45
+ class Photos < SBF::Client::BaseEntity
46
+ attr_reader :avatar, :default
47
+ end
48
+
49
+ class Policies < SBF::Client::BaseEntity
50
+ attr_accessor :is_waiver_policy_accepted
51
+ end
52
+
53
+ class Totals < SBF::Client::BaseEntity
54
+ attr_reader :amount_raised
55
+ attr_reader :donations
56
+ end
57
+
58
+ class Rankings < SBF::Client::BaseEntity
59
+ class Ranking < SBF::Client::BaseEntity
60
+ attr_reader :rank, :total
61
+ end
62
+
63
+ entity_attr_reader :team, 'SBF::Client::Fundraiser::Rankings::Ranking'
64
+ entity_attr_reader :event, 'SBF::Client::Fundraiser::Rankings::Ranking'
65
+ end
66
+
67
+ class Venue < SBF::Client::BaseEntity
68
+ entity_attr_accessor :location, 'SBF::Client::Fundraiser::Location'
69
+ end
70
+
71
+ class Location < SBF::Client::BaseEntity
72
+ attr_accessor :name
73
+ entity_attr_accessor :address, 'SBF::Client::Address'
74
+
75
+ def name
76
+ HTMLEntities.new.decode(@name)
77
+ end
78
+ end
79
+ end
80
+
81
+ class PartialFundraiser < Fundraiser
82
+ attr_accessor :id
83
+ end
84
+
85
+ class FullFundraiser < Fundraiser
86
+ attr_accessor :id
87
+ attr_accessor :status
88
+ attr_accessor :title
89
+ attr_accessor :display_name_override
90
+ attr_reader :display_name
91
+ entity_attr_accessor :owner, 'SBF::Client::FullPerson'
92
+ attr_accessor :start_date, :end_date
93
+ attr_accessor :start_time, :end_time
94
+ attr_accessor :offline_donation_uuid, :offline_donation_form
95
+ attr_accessor :fundraising_goal, :fundraising_message
96
+ entity_attr_accessor :fundraising_page, 'SBF::Client::FundraisingPage', nil, true
97
+ entity_attr_accessor :event, 'SBF::Client::FullEvent', 'SBF::Client::PartialEvent', true
98
+ entity_attr_accessor :team, 'SBF::Client::FullTeam', 'SBF::Client::PartialTeam', true
99
+ entity_attr_accessor :fund, 'SBF::Client::FullFund', 'SBF::Client::PartialFund', true
100
+ attr_accessor :fund_relationship_type
101
+ entity_attr_accessor :venue, 'SBF::Client::Fundraiser::Venue'
102
+ entity_attr_accessor :photos, 'SBF::Client::Fundraiser::Photos'
103
+ entity_attr_accessor :policies, 'SBF::Client::Fundraiser::Policies'
104
+ entity_attr_reader :rankings, 'SBF::Client::Fundraiser::Rankings', nil, true
105
+ entity_attr_reader :totals, 'SBF::Client::Fundraiser::Totals'
106
+ attr_reader :created_at, :modified_at
107
+ attr_accessor :modified_by
108
+ attr_accessor :how_created
109
+ entity_attr_reader :permissions, 'SBF::Client::Permissions', nil, true
110
+
111
+ def active?
112
+ status == SBF::Client::Fundraiser::Status::ACTIVE
113
+ end
114
+
115
+ def display_name
116
+ HTMLEntities.new.decode(@display_name)
117
+ end
118
+
119
+ def title
120
+ HTMLEntities.new.decode(@title)
121
+ end
122
+ end
123
+ end
124
+ end