osem-fcy/app/controllers/admin/event_schedules_controller.rb
Ana bcff982d3d Introduce bulk :create, :update and :destroy
Introduce bulk :create, :update and :destroy actions to avoid doing several request in the admin schedule.
2017-01-12 11:49:35 +01:00

41 lines
1.3 KiB
Ruby

module Admin
class EventSchedulesController < Admin::BaseController
load_and_authorize_resource :event_schedule
def bulk_create
result = EventSchedule.create(params[:event_schedules].values).reject { |p| p.errors.empty? }
if result.empty?
render json: {}
else
event_names = result.collect { |event_schedule| event_schedule.event.try(:title) }
render json: { errors: event_names.to_s }, status: 422
end
end
def bulk_update
keys = []
values = []
params[:event_schedules].values.each do |e|
keys << e.keys[0]
values << e.values[0]
end
result = EventSchedule.update(keys, values).reject { |p| p.errors.empty? }
if result.empty?
render json: {}
else
event_names = result.collect { |event_schedule| event_schedule.event.try(:title) }
render json: { errors: event_names.to_s }, status: 422
end
end
def bulk_destroy
result = EventSchedule.destroy(params[:event_schedules].values).reject { |p| p.errors.empty? }
if result.empty?
render json: {}
else
event_names = result.collect { |event_schedule| event_schedule.event.try(:title) }
render json: { errors: event_names.to_s }, status: 422
end
end
end
end