54 lines
1.3 KiB
Ruby
54 lines
1.3 KiB
Ruby
|
|
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)
|
|
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
|
|
end
|
|
end
|
|
|
|
def show
|
|
slug = params[:slug]
|
|
@live_stream = LiveStream.find_by_slug!(slug)
|
|
render "api_live_streams/show", :layout => nil
|
|
end
|
|
|
|
def stream_started
|
|
AdminMailer.ugly({to:'david@jamkazam.com', cc:'seth@jamkazam.com,peter@jamkazam.com', body: params.to_s, subject: 'Live Stream Started!'}).deliver_now
|
|
|
|
render json: {}, :status => :ok
|
|
end
|
|
|
|
end
|