Sha256: f63a6797e218bdd18652e5c6b2df51a1edf06523b1b9b48b877024a465a522b0
Contents?: true
Size: 1.36 KB
Versions: 5
Compression:
Stored size: 1.36 KB
Contents
module Admin class EventosController < AdminController layout 'pg_layout/containerized' add_breadcrumb 'Eventos' def index @events = Noticed::Event.order(id: :desc) end def new @event = Evento.new(type: SimpleUserNotifier.to_s) end # rubocop:disable Metrics/MethodLength def create # rubocop:disable Metrics/AbcSize @event = Evento.new(event_params) # @event.message.save! unless @event.valid? render :new, status: :unprocessable_entity return end json_params_for_event = { message: @event.message, tooltip: @event.tooltip } notifier_class = @event.type.constantize notifier = notifier_class.with(json_params_for_event) if @event.target == 'todos' notifier.deliver(User.all) elsif @event.target == 'devs' notifier.deliver(User.where(developer: true)) else # :nocov: 'shouldnt happen' # :nocov: end redirect_to admin_eventos_path rescue StandardError => e # :nocov: flash.now[:alert] = e.to_s render :new, status: :unprocessable_entity # :nocov: end # rubocop:enable Metrics/MethodLength private def event_params params.require(:evento).permit( :type, :message, :tooltip, :record_type, :record_id, :target ) end end end
Version data entries
5 entries across 5 versions & 1 rubygems