osem-fcy/app/controllers/admin/event_schedule_controller.rb
Ana 99f71497cc Introduce a "Save" button for the admin schedule
The changes were saved after you drop an event, and now it only saves the schedule when you're done with the changes and click the "Save" button.
2016-08-02 00:45:01 +02:00

47 lines
1.6 KiB
Ruby

module Admin
class EventScheduleController < Admin::BaseController
load_and_authorize_resource :event_schedule
def create
event_schedule = EventSchedule.create(get_event_schedule_params(params))
render json: { 'status' => 'ok', event: event_schedule.event.guid, event_schedule_id: event_schedule.id }
end
def update
@event_schedule.update(get_event_schedule_params(params))
render json: { 'status' => 'ok', event: @event_schedule.event.guid, event_schedule_id: @event_schedule.id }
end
def destroy
@event_schedule.destroy if @event_schedule
render json: { 'status' => 'ok', event: @event_schedule.event.guid }
end
private
def get_event_schedule_params(params)
error_message = nil
event = Event.where(guid: params[:event]).first
error_message = "Could not find event GUID: #{params[:event]}" if event.nil?
schedule = Schedule.where(id: params[:schedule]).first
error_message = "Could not find schedule: #{params[:schedule]}" if schedule.nil?
room = Room.where(guid: params[:room]).first
error_message = "Could not find room GUID: #{params[:room]}" if room.nil?
error_message = 'Date and time must be present' if params[:date].eql?('') || params[:time].eql?('')
unless error_message.nil?
render json: { 'status' => 'error', 'message' => error_message }, status: 500
return
end
time = "#{params[:date]} #{params[:time]}"
Rails.logger.debug("Loading #{time}")
start_time = DateTime.strptime(time, '%Y-%m-%d %k:%M')
{ schedule: schedule, event: event, room: room, start_time: start_time }
end
end
end