stbaldricks 8.1.0 → 8.2.1.alpha.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.
- checksums.yaml +4 -4
- data/lib/stbaldricks/endpoints/lib/entity.rb +1 -1
- data/lib/stbaldricks/entities/contact_group.rb +0 -1
- data/lib/stbaldricks/entities/lib/base.rb +6 -0
- data/lib/stbaldricks/entities/response.rb +2 -2
- data/lib/stbaldricks/patches/boolean.rb +2 -0
- data/lib/stbaldricks/patches/float.rb +2 -0
- data/lib/stbaldricks/patches/integer.rb +2 -0
- data/lib/stbaldricks/patches/nil.rb +2 -0
- data/lib/stbaldricks/patches/string.rb +2 -0
- data/lib/stbaldricks/version.rb +1 -1
- data/lib/stbaldricks_factories.rb +5 -0
- data/spec/factories/address.rb +14 -0
- data/spec/factories/campaign/totals.rb +9 -0
- data/spec/factories/campaign.rb +9 -0
- data/spec/factories/challenge.rb +19 -0
- data/spec/factories/challenger.rb +27 -0
- data/spec/factories/collection.rb +17 -0
- data/spec/factories/contact.rb +18 -0
- data/spec/factories/contact_group.rb +18 -0
- data/spec/factories/diagnosis.rb +12 -0
- data/spec/factories/disease.rb +11 -0
- data/spec/factories/donation/participant.rb +27 -0
- data/spec/factories/donation.rb +68 -0
- data/spec/factories/donor.rb +13 -0
- data/spec/factories/email_address.rb +11 -0
- data/spec/factories/error.rb +9 -0
- data/spec/factories/event/coach_tracking/coaching_interactions.rb +12 -0
- data/spec/factories/event/coach_tracking/plaque.rb +12 -0
- data/spec/factories/event/coach_tracking/proceeds.rb +12 -0
- data/spec/factories/event/coach_tracking.rb +18 -0
- data/spec/factories/event/contacts/contact.rb +17 -0
- data/spec/factories/event/contacts/name_pieces.rb +12 -0
- data/spec/factories/event/contacts.rb +16 -0
- data/spec/factories/event/photos.rb +12 -0
- data/spec/factories/event/totals.rb +15 -0
- data/spec/factories/event/venue/location.rb +18 -0
- data/spec/factories/event/venue/social.rb +16 -0
- data/spec/factories/event/venue.rb +16 -0
- data/spec/factories/event.rb +43 -0
- data/spec/factories/event_application.rb +34 -0
- data/spec/factories/event_supporter.rb +19 -0
- data/spec/factories/fund.rb +18 -0
- data/spec/factories/fundraiser/photos.rb +12 -0
- data/spec/factories/fundraiser/policies.rb +11 -0
- data/spec/factories/fundraiser/totals.rb +11 -0
- data/spec/factories/fundraiser.rb +24 -0
- data/spec/factories/fundraising_page.rb +29 -0
- data/spec/factories/grant.rb +22 -0
- data/spec/factories/grant_institution.rb +17 -0
- data/spec/factories/institution.rb +18 -0
- data/spec/factories/kid/custom_institution.rb +12 -0
- data/spec/factories/kid.rb +70 -0
- data/spec/factories/kid_honor.rb +16 -0
- data/spec/factories/kid_institution.rb +17 -0
- data/spec/factories/lib/helpers.rb +7 -0
- data/spec/factories/location.rb +17 -0
- data/spec/factories/memorial/photos.rb +14 -0
- data/spec/factories/memorial/totals.rb +11 -0
- data/spec/factories/memorial/tribute.rb +19 -0
- data/spec/factories/memorial.rb +22 -0
- data/spec/factories/message.rb +31 -0
- data/spec/factories/name_pieces.rb +24 -0
- data/spec/factories/newsletter_recipient.rb +13 -0
- data/spec/factories/organization/addresses.rb +16 -0
- data/spec/factories/organization/email_addresses.rb +14 -0
- data/spec/factories/organization/phone_numbers.rb +14 -0
- data/spec/factories/organization.rb +34 -0
- data/spec/factories/page.rb +5 -0
- data/spec/factories/participant/photos.rb +14 -0
- data/spec/factories/participant/policies.rb +12 -0
- data/spec/factories/participant/rankings/ranking.rb +12 -0
- data/spec/factories/participant/rankings.rb +16 -0
- data/spec/factories/participant/roles/role.rb +150 -0
- data/spec/factories/participant/roles.rb +35 -0
- data/spec/factories/participant/totals.rb +11 -0
- data/spec/factories/participant.rb +89 -0
- data/spec/factories/payment.rb +13 -0
- data/spec/factories/permissions.rb +12 -0
- data/spec/factories/person/addresses.rb +16 -0
- data/spec/factories/person/email_addresses.rb +14 -0
- data/spec/factories/person/phone_numbers.rb +14 -0
- data/spec/factories/person/policies.rb +13 -0
- data/spec/factories/person.rb +22 -0
- data/spec/factories/phone.rb +11 -0
- data/spec/factories/photo.rb +11 -0
- data/spec/factories/photos.rb +9 -0
- data/spec/factories/recurring_gift.rb +22 -0
- data/spec/factories/researcher.rb +15 -0
- data/spec/factories/response.rb +38 -0
- data/spec/factories/search_event.rb +19 -0
- data/spec/factories/search_fundraiser.rb +15 -0
- data/spec/factories/search_kid.rb +13 -0
- data/spec/factories/search_participant.rb +15 -0
- data/spec/factories/search_team.rb +13 -0
- data/spec/factories/shave_schedule/time_selection_permissions.rb +12 -0
- data/spec/factories/shave_schedule.rb +33 -0
- data/spec/factories/team/photos.rb +12 -0
- data/spec/factories/team/rankings/ranking.rb +12 -0
- data/spec/factories/team/rankings.rb +15 -0
- data/spec/factories/team/totals.rb +14 -0
- data/spec/factories/team.rb +43 -0
- data/spec/factories/third_party_media.rb +12 -0
- data/spec/factories/treatment_status.rb +10 -0
- data/spec/factories/user.rb +14 -0
- data/spec/factories/venue.rb +15 -0
- metadata +405 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d116a3534065666c7e6802ef0df0cb5bdf04571b280bde3b607d77f1cb39eb81
|
|
4
|
+
data.tar.gz: ebbc18fb80398caf1613856dd402e943bf3e0cd8f67121c23e5d1be2ba7f184a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 49b494684cc47383febbee7a8641d01f0546e74de599c125365d275c8a547cd0e3ee36b10ae043e3b366b7d5e34f684c6c604e00bdb079e6401eed3db7dbce80
|
|
7
|
+
data.tar.gz: ea1ccfede3938b10bdc31097f454344d99259f1b8073629de4aae6feaf13ed982c8a9df19189ea76485bda8bb9cf8ba765abb0810731c1ec4dd7a25e68045981
|
|
@@ -20,7 +20,7 @@ module SBF
|
|
|
20
20
|
# Calls create if the id field is empty. Otherwise it calls update.
|
|
21
21
|
def save(entity_or_hash, with = {})
|
|
22
22
|
if entity_or_hash.is_a?(SBF::Client::BaseEntity)
|
|
23
|
-
return create(entity_or_hash, with) if entity_or_hash.id.nil?
|
|
23
|
+
return create(entity_or_hash, with) if !entity_or_hash.respond_to?(:id) || entity_or_hash.id.nil?
|
|
24
24
|
|
|
25
25
|
update(entity_or_hash.id, entity_or_hash, with)
|
|
26
26
|
else
|
|
@@ -71,6 +71,12 @@ module SBF
|
|
|
71
71
|
@destroyed
|
|
72
72
|
end
|
|
73
73
|
|
|
74
|
+
def to_partial
|
|
75
|
+
base_class = self.class.name.gsub(/(.*::)(Full|Partial)(.*)/, '\1')
|
|
76
|
+
base_name = self.class.name.gsub(/(.*::)(Full|Partial)(.*)/, '\3')
|
|
77
|
+
"#{base_class}Partial#{base_name}".to_class.new(to_hash)
|
|
78
|
+
end
|
|
79
|
+
|
|
74
80
|
## Returns a hash of changed data for the entity and its sub-entities
|
|
75
81
|
# @param with_keys [Boolean] when true, include the keys of the current entity. (sub-entity keys will always be included if they are present)
|
|
76
82
|
# @return [Hash] the changed data
|
data/lib/stbaldricks/version.rb
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
FactoryBot.define do
|
|
2
|
+
factory :address, class: SBF::Client::Address do
|
|
3
|
+
skip_create
|
|
4
|
+
|
|
5
|
+
initialize_with do
|
|
6
|
+
new(attributes)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
type { SBF::Client::Address::Type::HOME }
|
|
10
|
+
city { Faker::Address.city }
|
|
11
|
+
state { 'NE' }
|
|
12
|
+
country { 'US' }
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require_relative 'lib/helpers'
|
|
2
|
+
|
|
3
|
+
FactoryBot.define do
|
|
4
|
+
factory :challenge, class: SBF::Client::Challenge do
|
|
5
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
|
6
|
+
|
|
7
|
+
initialize_with do
|
|
8
|
+
new(attributes)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
status { SBF::Client::Challenge::Status::PENDING }
|
|
12
|
+
end_date { Date.today + 30 }
|
|
13
|
+
|
|
14
|
+
after :build do |challenge, evaluator|
|
|
15
|
+
challenge.challenger = build(:challenger) if unpopulated?(evaluator, :challenger)
|
|
16
|
+
challenge.challengee = build(:challengee) if unpopulated?(evaluator, :challengee)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require_relative 'lib/helpers'
|
|
2
|
+
|
|
3
|
+
FactoryBot.define do
|
|
4
|
+
factory :_base_challenger, class: SBF::Client::Challenger do
|
|
5
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
|
6
|
+
|
|
7
|
+
initialize_with do
|
|
8
|
+
new(attributes)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
after :build do |challenger, evaluator|
|
|
12
|
+
if unpopulated?(evaluator, :entity)
|
|
13
|
+
event = create(:event)
|
|
14
|
+
participant = create(:shavee, event: event.to_partial)
|
|
15
|
+
challenger.entity = participant.to_partial
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
factory :challenger, class: SBF::Client::Challenger, parent: :_base_challenger do
|
|
21
|
+
is_accepted { true }
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
factory :challengee, class: SBF::Client::Challenger, parent: :_base_challenger do
|
|
25
|
+
is_accepted { false }
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
FactoryBot.define do
|
|
2
|
+
factory :collection, class: SBF::Client::EntityCollection do
|
|
3
|
+
skip_create
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
factory :collection_with_error, parent: :collection do
|
|
7
|
+
after :build do |collection, evaluator|
|
|
8
|
+
if evaluator.error
|
|
9
|
+
collection.add_errors(evaluator.error)
|
|
10
|
+
else
|
|
11
|
+
error = SBF::Client::ErrorEntity.new(code: 5007, type: 'BadRequest', details: 'Invalid Request')
|
|
12
|
+
collection.add_errors(error)
|
|
13
|
+
end
|
|
14
|
+
collection.errors_http_code = evaluator.http_code || 400
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require_relative 'lib/helpers'
|
|
2
|
+
|
|
3
|
+
FactoryBot.define do
|
|
4
|
+
factory :contact, class: SBF::Client::CustomContact do
|
|
5
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
|
6
|
+
|
|
7
|
+
initialize_with do
|
|
8
|
+
new(attributes)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
email { Faker::Internet.email }
|
|
12
|
+
contact_groups { [] }
|
|
13
|
+
|
|
14
|
+
after :build do |contact_group, evaluator|
|
|
15
|
+
contact_group.owner = create(:person) if unpopulated?(evaluator, :owner)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require_relative 'lib/helpers'
|
|
2
|
+
|
|
3
|
+
FactoryBot.define do
|
|
4
|
+
factory :contact_group, class: SBF::Client::ContactGroup do
|
|
5
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
|
6
|
+
|
|
7
|
+
initialize_with do
|
|
8
|
+
new(attributes)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
display_name { random }
|
|
12
|
+
contacts { [] }
|
|
13
|
+
|
|
14
|
+
after :build do |contact_group, evaluator|
|
|
15
|
+
contact_group.owner = create(:person) if unpopulated?(evaluator, :owner)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
FactoryBot.define do
|
|
2
|
+
factory :disease, class: SBF::Client::Grant::Disease do
|
|
3
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
|
4
|
+
|
|
5
|
+
initialize_with do
|
|
6
|
+
new(attributes)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
name { SecureRandom.hex }
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require_relative '../lib/helpers'
|
|
2
|
+
|
|
3
|
+
FactoryBot.define do
|
|
4
|
+
factory :full_donation_participant, class: SBF::Client::Donation::FullParticipant do
|
|
5
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
|
6
|
+
|
|
7
|
+
initialize_with do
|
|
8
|
+
new(attributes)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
fundraising_goal { 100 }
|
|
12
|
+
shave_time { Time.now.to_s }
|
|
13
|
+
sequence(:display_name) { |n| "Display Name #{n}" }
|
|
14
|
+
model_type { 'person' }
|
|
15
|
+
|
|
16
|
+
after :build do |participant, evaluator|
|
|
17
|
+
participant.person = build(:person) if unpopulated?(evaluator, :person)
|
|
18
|
+
participant.send(:totals=, build(:participant_totals)) if unpopulated?(evaluator, :totals)
|
|
19
|
+
participant.send(:rankings=, build(:participant_rankings)) if unpopulated?(evaluator, :rankings)
|
|
20
|
+
participant.roles = build(:participant_roles) if unpopulated?(evaluator, :roles)
|
|
21
|
+
participant.send(:photos=, build(:participant_photos)) if unpopulated?(evaluator, :photos)
|
|
22
|
+
participant.event = build(:event) if unpopulated?(evaluator, :event)
|
|
23
|
+
participant.team = build(:team, event: participant.event) if unpopulated?(evaluator, :team)
|
|
24
|
+
participant.fundraising_page = build(:fundraising_page) if unpopulated?(evaluator, :fundraising_page)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require_relative 'lib/helpers'
|
|
2
|
+
|
|
3
|
+
FactoryBot.define do
|
|
4
|
+
factory :_donation, class: SBF::Client::FullDonation do
|
|
5
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save }
|
|
6
|
+
|
|
7
|
+
initialize_with do
|
|
8
|
+
new(attributes)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
status { SBF::Client::Donation::Status::ACTIVE }
|
|
12
|
+
amount { rand(10..100) }
|
|
13
|
+
display_name { Faker::Name.name }
|
|
14
|
+
year { DateTime.now.year }
|
|
15
|
+
fund { nil }
|
|
16
|
+
memorial { nil }
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
factory :donation, class: SBF::Client::FullDonation, parent: :_donation do
|
|
20
|
+
after :build do |donation, evaluator|
|
|
21
|
+
donation.payment_details = build(:cc_payment) if unpopulated?(evaluator, :payment_details)
|
|
22
|
+
donation.donor = build(:person) if unpopulated?(evaluator, :donor)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
factory :cc_payment, class: SBF::Client::Payment::CreditCardDetails do
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
factory :cash_donation, class: SBF::Client::FullDonation, parent: :_donation do
|
|
30
|
+
status { SBF::Client::Donation::Status::PENDING }
|
|
31
|
+
how_created { SBF::Client::Donation::HowCreated::SUBMIT_CASH }
|
|
32
|
+
|
|
33
|
+
after :build do |donation, evaluator|
|
|
34
|
+
donation.payment_details = build(:cash_payment) if unpopulated?(evaluator, :payment_details)
|
|
35
|
+
donation.donor = build(:person, status: SBF::Client::Person::Status::PENDING) if unpopulated?(evaluator, :donor)
|
|
36
|
+
donation.submitter = build(:person) if unpopulated?(evaluator, :submitter)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
factory :cash_payment, class: SBF::Client::Payment::CashDetails do
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
factory :nonce_payment, class: SBF::Client::Payment::NonceDetails do
|
|
44
|
+
gateway { SBF::Client::Payment::Gateway::PAYMENTSPRING }
|
|
45
|
+
nonce { fake_valid_nonce }
|
|
46
|
+
device_data { random }
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
require 'httparty'
|
|
51
|
+
require 'uri'
|
|
52
|
+
def fake_valid_nonce
|
|
53
|
+
url = "#{ENV['PAYMENTSPRING_BASE_URL']}/tokens/jsonp"
|
|
54
|
+
pub_key = ENV['PAYMENTSPRING_PUBLIC_KEY']
|
|
55
|
+
data = {
|
|
56
|
+
public_api_key: pub_key,
|
|
57
|
+
card_number: '4111111111111111',
|
|
58
|
+
card_exp_month: '1',
|
|
59
|
+
card_exp_year: Date.today.year + 1,
|
|
60
|
+
card_owner_name: 'John%20Doe'
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
uri = URI.parse("#{url}?#{data.to_query}")
|
|
64
|
+
response = HTTParty.get(uri, headers: {'Accept' => 'application/json'})
|
|
65
|
+
raise 'Error retrieving valid nonce' unless response.ok?
|
|
66
|
+
|
|
67
|
+
response.parsed_response['id']
|
|
68
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
FactoryBot.define do
|
|
2
|
+
factory :donor, class: SBF::Client::Donor do
|
|
3
|
+
skip_create
|
|
4
|
+
|
|
5
|
+
initialize_with do
|
|
6
|
+
new(attributes)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
sequence(:donor_name) { |n| "donor name #{n}" }
|
|
10
|
+
amount { 100 }
|
|
11
|
+
donation_created_at { DateTime.now.to_s }
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
FactoryBot.define do
|
|
2
|
+
factory :event_coach_tracking_coaching_interactions, class: SBF::Client::Event::CoachTracking::CoachingInteractions do
|
|
3
|
+
skip_create
|
|
4
|
+
|
|
5
|
+
initialize_with do
|
|
6
|
+
new(attributes)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
introductory_conversation_date { Time.now.to_s }
|
|
10
|
+
post_event_conversation_date { Time.now.to_s }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
FactoryBot.define do
|
|
2
|
+
factory :event_coach_tracking_plaque, class: SBF::Client::Event::CoachTracking::Plaque do
|
|
3
|
+
skip_create
|
|
4
|
+
|
|
5
|
+
initialize_with do
|
|
6
|
+
new(attributes)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
sequence(:issued_to) { |n| "Issued To: #{n}" }
|
|
10
|
+
sent_date { Time.now.to_s }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
FactoryBot.define do
|
|
2
|
+
factory :event_coach_tracking_proceeds, class: SBF::Client::Event::CoachTracking::Proceeds do
|
|
3
|
+
skip_create
|
|
4
|
+
|
|
5
|
+
initialize_with do
|
|
6
|
+
new(attributes)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
received_date { Time.now.to_s }
|
|
10
|
+
notification_email_sent_date { Time.now.to_s }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
FactoryBot.define do
|
|
2
|
+
factory :event_coach_tracking, class: SBF::Client::Event::CoachTracking do
|
|
3
|
+
skip_create
|
|
4
|
+
|
|
5
|
+
initialize_with do
|
|
6
|
+
new(attributes)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
host_agreement_date { Time.now.to_s }
|
|
10
|
+
activated_date { Time.now.to_s }
|
|
11
|
+
|
|
12
|
+
after :build do |coach_tracking, _evaluator|
|
|
13
|
+
coach_tracking.proceeds = build(:event_coach_tracking_proceeds)
|
|
14
|
+
coach_tracking.coaching_interactions = build(:event_coach_tracking_coaching_interactions)
|
|
15
|
+
coach_tracking.plaque = build(:event_coach_tracking_plaque)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require_relative '../../lib/helpers'
|
|
2
|
+
|
|
3
|
+
FactoryBot.define do
|
|
4
|
+
factory :event_contact, class: SBF::Client::Event::Contacts::Contact do
|
|
5
|
+
skip_create
|
|
6
|
+
|
|
7
|
+
initialize_with do
|
|
8
|
+
new(attributes)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
after :build do |contact, evaluator|
|
|
12
|
+
contact.name_pieces = build(:event_contact_name_pieces) if unpopulated?(evaluator, :name_pieces)
|
|
13
|
+
contact.phone = build(:phone) if unpopulated?(evaluator, :phone)
|
|
14
|
+
contact.email_address = build(:email_address) if unpopulated?(evaluator, :email_address)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require_relative '../lib/helpers'
|
|
2
|
+
|
|
3
|
+
FactoryBot.define do
|
|
4
|
+
factory :event_contacts, class: SBF::Client::Event::Contacts do
|
|
5
|
+
skip_create
|
|
6
|
+
|
|
7
|
+
initialize_with do
|
|
8
|
+
new(attributes)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
after :build do |contacts, evaluator|
|
|
12
|
+
contacts.primary = build(:event_contact) if unpopulated?(evaluator, :primary)
|
|
13
|
+
contacts.secondary = build(:event_contact) if unpopulated?(evaluator, :secondary)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
FactoryBot.define do
|
|
2
|
+
factory :event_totals, class: SBF::Client::Event::Totals do
|
|
3
|
+
skip_create
|
|
4
|
+
|
|
5
|
+
initialize_with do
|
|
6
|
+
new(attributes)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
fundraisers { 1 }
|
|
10
|
+
participants { 8 }
|
|
11
|
+
shavees { 5 }
|
|
12
|
+
teams { 2 }
|
|
13
|
+
amount_raised { 100 }
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require_relative '../../lib/helpers'
|
|
2
|
+
|
|
3
|
+
FactoryBot.define do
|
|
4
|
+
factory :event_venue_location, class: SBF::Client::Event::Venue::Location do
|
|
5
|
+
skip_create
|
|
6
|
+
|
|
7
|
+
initialize_with do
|
|
8
|
+
new(attributes)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
type { SBF::Client::Event::Venue::Location::Type::OTHER }
|
|
12
|
+
name { Faker::University.name }
|
|
13
|
+
|
|
14
|
+
after :build do |location, evaluator|
|
|
15
|
+
location.address = build(:address) if unpopulated?(evaluator, :address)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require_relative '../../lib/helpers'
|
|
2
|
+
|
|
3
|
+
FactoryBot.define do
|
|
4
|
+
factory :event_venue_social, class: SBF::Client::Event::Venue::Social do
|
|
5
|
+
skip_create
|
|
6
|
+
|
|
7
|
+
initialize_with do
|
|
8
|
+
new(attributes)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
after :build do |social, evaluator|
|
|
12
|
+
social.facebook_url = "https://www.facebook.com/#{Faker::Internet.slug}" if unpopulated?(evaluator, :facebook_url)
|
|
13
|
+
social.twitter_name = "@#{Faker::Twitter.screen_name.slice(0, 14)}" if unpopulated?(evaluator, :twitter_name)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require_relative '../lib/helpers'
|
|
2
|
+
|
|
3
|
+
FactoryBot.define do
|
|
4
|
+
factory :event_venue, class: SBF::Client::Event::Venue do
|
|
5
|
+
skip_create
|
|
6
|
+
|
|
7
|
+
initialize_with do
|
|
8
|
+
new(attributes)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
after :build do |venue, evaluator|
|
|
12
|
+
venue.location = build(:event_venue_location) if unpopulated?(evaluator, :location)
|
|
13
|
+
venue.social = build(:event_venue_social) if unpopulated?(evaluator, :social)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require_relative 'lib/helpers'
|
|
2
|
+
|
|
3
|
+
FactoryBot.define do
|
|
4
|
+
factory :event, class: SBF::Client::FullEvent do
|
|
5
|
+
# TODO: Hack - including organizers in the save's with should not be necessary. We should always include any dirty data
|
|
6
|
+
# we send to the api in the with so that we know we have the latest data. Fix and remove the with
|
|
7
|
+
to_create { |it| raise "Failed to create #{it.class}: #{it.errors.details}" unless it.save(organizers: nil) }
|
|
8
|
+
|
|
9
|
+
initialize_with do
|
|
10
|
+
new(attributes)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
event_title { "#{Faker::Team.name} #{random}" }
|
|
14
|
+
year { Time.now.year }
|
|
15
|
+
date { Time.now.to_s }
|
|
16
|
+
fund_relationship_type { 'no_association' }
|
|
17
|
+
status { 'active' }
|
|
18
|
+
type { 'head_shaving' }
|
|
19
|
+
sub_type { 'community' }
|
|
20
|
+
how_created { 'admin_control_panel' }
|
|
21
|
+
fundraising_goal { rand(20) * 5000 }
|
|
22
|
+
is_private { false }
|
|
23
|
+
|
|
24
|
+
after :build do |event, evaluator|
|
|
25
|
+
event.venue = build(:event_venue) if unpopulated?(evaluator, :venue)
|
|
26
|
+
event.contacts = build(:event_contacts) if unpopulated?(evaluator, :contacts)
|
|
27
|
+
event.organizers = [build(:lead_organizer, person: create(:person))] if unpopulated?(evaluator, :organizers)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
factory :event_activity, class: SBF::Client::Event::Activity do
|
|
32
|
+
skip_create
|
|
33
|
+
|
|
34
|
+
initialize_with do
|
|
35
|
+
new(attributes)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
start_time { '12:00:00' }
|
|
39
|
+
end_time { '14:00:00' }
|
|
40
|
+
activity { random }
|
|
41
|
+
sort_order { 1 }
|
|
42
|
+
end
|
|
43
|
+
end
|