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

Version Path
pg_rails-7.0.8.pre.alpha.108 pg_engine/app/controllers/admin/eventos_controller.rb
pg_rails-7.0.8.pre.alpha.107 pg_engine/app/controllers/admin/eventos_controller.rb
pg_rails-7.0.8.pre.alpha.106 pg_engine/app/controllers/admin/eventos_controller.rb
pg_rails-7.0.8.pre.alpha.105 pg_engine/app/controllers/admin/eventos_controller.rb
pg_rails-7.0.8.pre.alpha.104 pg_engine/app/controllers/admin/eventos_controller.rb