2020-04-16 16:26:18 +00:00
|
|
|
|
|
|
|
|
class ApiLiveStreamsController < ApiController
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
respond_to :json
|
|
|
|
|
|
|
|
|
|
def log
|
|
|
|
|
@log || Logging.logger[ApiLiveStreamsController]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def index
|
|
|
|
|
@live_streams = LiveStream.upcoming
|
|
|
|
|
|
|
|
|
|
render "api_live_streams/index", :layout => nil
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def claim
|
|
|
|
|
order = params[:order]
|
|
|
|
|
if order.nil?
|
|
|
|
|
render :json => {}, :status => 404, layout: nil
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
order.strip!
|
|
|
|
|
|
|
|
|
|
if order.start_with? "#"
|
|
|
|
|
order = order[1..-1]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
event_brite_order = EventBriteOrder.find_by_order_id(order)
|
|
|
|
|
|
|
|
|
|
if event_brite_order.nil?
|
|
|
|
|
render :json => {}, :status => 404, layout: nil
|
|
|
|
|
else
|
|
|
|
|
EventBriteOrder.where(id: event_brite_order.id).update_all(times_claimed: event_brite_order.times_claimed + 1)
|
2020-04-18 20:12:45 +00:00
|
|
|
render :json => {event_id: event_brite_order.live_stream.id, order_id: event_brite_order.order_id, event_type: 'eventbrite', slug: event_brite_order.live_stream.slug}, :status => :ok, layout: nil
|
2020-04-16 16:26:18 +00:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def show
|
|
|
|
|
slug = params[:slug]
|
|
|
|
|
@live_stream = LiveStream.find_by_slug!(slug)
|
|
|
|
|
render "api_live_streams/show", :layout => nil
|
|
|
|
|
end
|
|
|
|
|
|
2020-05-01 18:59:48 +00:00
|
|
|
def build_user_detail(user)
|
|
|
|
|
|
|
|
|
|
detail = ''
|
|
|
|
|
participant = "---------Participant: #{user.name}---------\n"
|
|
|
|
|
detail += participant
|
|
|
|
|
detail += "Email: #{user.email}\n"
|
|
|
|
|
detail += "Location: #{user.location}\n"
|
|
|
|
|
detail += "Profile: #{user.biography}\n"
|
|
|
|
|
detail += "Admin URL: #{user.admin_url}\n"
|
|
|
|
|
user.bands.each do | band |
|
|
|
|
|
detail += " Band: #{band.name} #{band.website}\n"
|
|
|
|
|
detail += " Band Profile: #{band.biography}"
|
|
|
|
|
end
|
|
|
|
|
detail += ("-" * participant.length) + "\n"
|
|
|
|
|
|
|
|
|
|
detail
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def email_stream_event(subject, create_entity)
|
|
|
|
|
begin
|
|
|
|
|
music_session_id = params["music_session_id"]
|
|
|
|
|
music_session = MusicSession.find(music_session_id)
|
|
|
|
|
|
|
|
|
|
music_session_admin_url = ''
|
|
|
|
|
if music_session
|
|
|
|
|
music_session_admin_url = music_session.admin_url
|
|
|
|
|
end
|
|
|
|
|
participants = params["participants"]
|
|
|
|
|
|
2020-05-12 01:45:32 +00:00
|
|
|
if !participants.nil? && participants.to_i < 2
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
duration_sec = params["duration_sec"]
|
|
|
|
|
if !duration_sec.nil? && duration_sec.to_i < 180
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
2020-05-01 18:59:48 +00:00
|
|
|
body = "\n"
|
|
|
|
|
body += "Participants: #{participants}\n\n"
|
|
|
|
|
body += build_user_detail(current_user)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
users = nil
|
|
|
|
|
if music_session.active_music_session
|
|
|
|
|
users = music_session.active_music_session.users
|
|
|
|
|
else
|
|
|
|
|
users = music_session.unique_users
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
users.each do |user|
|
|
|
|
|
if user == current_user
|
|
|
|
|
next
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
body += build_user_detail(user)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
body += "\nSession Admin URL: #{music_session_admin_url}"
|
|
|
|
|
|
|
|
|
|
body += "\n\n"
|
|
|
|
|
|
|
|
|
|
body += "--------DUMP--------\n"
|
|
|
|
|
body += params.to_yaml
|
|
|
|
|
|
|
|
|
|
if create_entity
|
|
|
|
|
client_live_stream = ClientLiveStream.new
|
|
|
|
|
client_live_stream.user = current_user
|
|
|
|
|
client_live_stream.music_session = music_session if music_session
|
|
|
|
|
client_live_stream.message = body
|
|
|
|
|
client_live_stream.save
|
|
|
|
|
end
|
|
|
|
|
|
2020-05-01 19:12:08 +00:00
|
|
|
AdminMailer.ugly({to:'david@jamkazam.com', cc:'seth@jamkazam.com,peter@jamkazam.com', body: body, subject: subject}).deliver_now
|
2020-05-01 18:59:48 +00:00
|
|
|
rescue => e
|
|
|
|
|
AdminMailer.ugly({to:'david@jamkazam.com', cc:'seth@jamkazam.com,peter@jamkazam.com', body: params.to_s + "\n\n" + e.to_s, subject: 'Live Stream Started!'}).deliver_now
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
end
|
2020-04-29 21:08:41 +00:00
|
|
|
def stream_started
|
2020-05-01 18:59:48 +00:00
|
|
|
|
2020-05-12 01:45:32 +00:00
|
|
|
#email_stream_event("Live Stream Started!", false)
|
2020-05-01 18:59:48 +00:00
|
|
|
|
|
|
|
|
|
2020-04-29 21:08:41 +00:00
|
|
|
|
|
|
|
|
render json: {}, :status => :ok
|
|
|
|
|
end
|
|
|
|
|
|
2020-05-01 18:59:48 +00:00
|
|
|
def stream_stop
|
|
|
|
|
|
|
|
|
|
email_stream_event("Live Stream Stopped!", true)
|
|
|
|
|
|
|
|
|
|
render json: {}, :status => :ok
|
|
|
|
|
end
|
2020-04-16 16:26:18 +00:00
|
|
|
end
|