Class: Orange::EventResource
Constant Summary
collapse
- ORANGE_EVENTBRITE_KEY =
For integration with Eventbrite. Application key needs user key for full access.
"ODQ5MDMzZWQwOWRl"
Instance Attribute Summary
#model_class
Instance Method Summary
collapse
-
#beforeNew(packet, params = {}) ⇒ Object
Todo - eventbrite crashes when date in past.
-
#beforeSave(packet, model, params = {}) ⇒ Object
Todo - eventbrite crashes when date in past.
-
#eventbrite_events ⇒ Object
-
#eventbrite_synchronize(packet, params = {}) ⇒ Object
-
#eventbrite_user ⇒ Object
-
#eventbrite_venues ⇒ Object
-
#find_extras(packet, mode, opts = {}) ⇒ Object
-
#find_list(packet, mode, opts = {}) ⇒ Object
-
#post_to_eventbrite ⇒ Object
-
#stack_init ⇒ Object
-
#synchronize_attendees(packet, params = {}) ⇒ Object
-
#update_event(event, params, venue) ⇒ Object
-
#update_venue(venue, params) ⇒ Object
#afterDelete, #afterNew, #afterSave, #beforeDelete, #create, #delete, #do_list_view, #do_view, #edit, #find_one, #index, #list, #new, new, #onDelete, #onNew, #onSave, #save, #show, #table_row, use, #view, #view_opts
#routable, #route
Methods inherited from Resource
#afterLoad, call_me, #do_view, #init, #initialize, #options, #orange, #orange_name, #routable, #set_orange, set_orange, #view, #view_opts
#cattr_accessor, #cattr_reader, #cattr_writer, eval_in_accessor_module, fetch_value, store_value
Instance Method Details
#beforeNew(packet, params = {}) ⇒ Object
Todo - eventbrite crashes when date in past
59
60
61
62
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 59
def beforeNew(packet, params = {})
eventbrite_synchronize(packet, params)
true
end
|
#beforeSave(packet, model, params = {}) ⇒ Object
Todo - eventbrite crashes when date in past
65
66
67
68
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 65
def beforeSave(packet, model, params = {})
eventbrite_synchronize(packet, params)
true
end
|
#eventbrite_events ⇒ Object
137
138
139
140
141
142
143
144
145
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 137
def eventbrite_events
list = []
begin
list = eventbrite_user.events
rescue
return false
end
list
end
|
#eventbrite_synchronize(packet, params = {}) ⇒ Object
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 70
def eventbrite_synchronize(packet, params = {})
venue_id = params.delete('orange_venue_id')
if params['link_to_eventbrite'] != "0"
if venue_id == "new"
v = EventBright::Venue.new(eventbrite_user)
v.organizer_id = eventbrite_user.organizers.first.id
else
v = eventbrite_user.venues.select{|v| v.id == venue_id.to_i }.first
end
update_venue(v, params)
if params['eventbrite_id'] == "new"
e = EventBright::Event.new(eventbrite_user)
e.organizer = eventbrite_user.organizers.first
else
e = eventbrite_user.events.select{|e| e.id == params['eventbrite_id'].to_i }.first
end
params['eventbrite_id'] = update_event(e, params, v)
else
params['eventbrite_id'] = nil
end
params
end
|
#eventbrite_user ⇒ Object
18
19
20
21
22
23
24
25
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 18
def eventbrite_user
return false unless options[:eventbrite_key]
begin
@eventbrite_user = EventBright::User.new(options[:eventbrite_key])
rescue
false
end
end
|
#eventbrite_venues ⇒ Object
127
128
129
130
131
132
133
134
135
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 127
def eventbrite_venues
list = []
begin
list = eventbrite_user.venues
rescue
return false
end
list
end
|
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 27
def (packet, mode, opts = {})
= {:calendars => OrangeCalendar.all}
case mode
when :create, :edit
ev = eventbrite_venues
ee = eventbrite_events
ev_json = {} if ev
ev.each{|v| ev_json[v.id] = v.attributes.merge(:id => v.id)} if ev
ee_json = {} if ee
ee.each{|v| ee_json[v.id] = v.attributes.merge(:id => v.id).reject{|k,v| [:venue, :organizer].include? k}} if ee
.merge!(:eventbrite_venues => ev, :venues_json => ev_json.to_json,
:eventbrite_events => ee, :events_json => ee_json.to_json
) if options[:eventbrite_key]
end
end
|
#find_list(packet, mode, opts = {}) ⇒ Object
119
120
121
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 119
def find_list(packet, mode, opts = {})
model_class.all(:order => [:starts.desc]) || []
end
|
#post_to_eventbrite ⇒ Object
123
124
125
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 123
def post_to_eventbrite
end
|
#stack_init ⇒ Object
12
13
14
15
16
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 12
def stack_init
orange[:admin, true].add_link("Content", :resource => @my_orange_name, :text => 'Events')
EventBright.setup(ORANGE_EVENTBRITE_KEY)
options[:eventbrite_key] = orange.options['eventbrite_key'] || false
end
|
#synchronize_attendees(packet, params = {}) ⇒ Object
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 45
def synchronize_attendees(packet, params = {})
no_reroute = params.delete(:no_reroute)
params = params.with_defaults(:resource_id => packet['route.resource_id'])
if packet.request.post? && orange.loaded?(:members) &&
event_orange = model_class.get(params[:resource_id])
event = eventbrite_user.events.select{|e| e.id.to_s == event_orange.eventbrite_id}.first
orange[:members, true].add_attendee_group(packet, "Eventbrite Attendee", "#{event.title} - #{event.id}")
emails = event.attendees.map{|a| a.email}
orange[:members, true].batch_update_interest_mailchimp(packet, emails, "Eventbrite Attendee", "#{event.title} - #{event.id}")
end
packet.reroute(@my_orange_name, :orange, packet['route.resource_id'], 'edit') unless no_reroute
end
|
#update_event(event, params, venue) ⇒ Object
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 93
def update_event(event, params, venue)
event.venue = venue
event.title = params["name"]
event.description = params["description"]
event.start_date = params["starts_date"] + " " + params["starts_time"]
event.end_date = params["ends_date"] + " " + params["ends_time"]
if(event.start_date > event.end_date)
raise "An event can't end before it starts."
else
event.status = "live"
event.save
end
return event.id
end
|
#update_venue(venue, params) ⇒ Object
108
109
110
111
112
113
114
115
116
117
|
# File 'lib/orange-more/events/resources/event_resource.rb', line 108
def update_venue(venue, params)
venue.name = params["location_name"]
venue.address = params["location_address"]
venue.address_2 = params["location_address2"]
venue.city = params["location_city"]
venue.region = params["location_state"]
venue.postal_code = params["location_zip"]
venue.country_code = "US"
venue.save
end
|