Sha256: 5fb9f1c6f3c01e615c59834afbdd5b1a8cc4f3f2afe39f933abc22e4586154c5

Contents?: true

Size: 1.77 KB

Versions: 5

Compression:

Stored size: 1.77 KB

Contents

class WcoEmail::Api::EmailFiltersController < WcoEmail::ApiController

  def create
    authorize! :create, WcoEmail::EmailFilter
    @item = ::WcoEmail::EmailFilter.new email_filter_pparams

    if @item.save
      render json: { id: @item.id.to_s }, status: :ok
    else
      render json: { messages: @item.errors.full_messages }, status: 400
    end
  end

  def destroy
    @item = ::WcoEmail::EmailFilter.find params[:id]
    authorize! :destroy, @item
    if @item.delete
      render json: {  }, status: :ok
    else
      render json: { messages: @item.errors.full_messages }, status: 400
    end
  end

  def index
    authorize! :index, WcoEmail::EmailFilter
    @items = ::WcoEmail::EmailFilter.all
    # respond_to do |format|
    #   format.json do
    #     render
    #   end
    # end
  end

  def show
    @filter = WcoEmail::EmailFilter.find params[:id]
    authorize! :show, @filter
  end

  def update
    @filter = WcoEmail::EmailFilter.find params[:id]
    authorize! :update, @filter

    if @filter.update email_filter_pparams
      render json: { messages: [ 'Updated the email filter.' ] }, status: :ok
    else
      render json: { messages: @filter.errors.full_messages +
        @filter.actions.map { |k| k.errors.full_messages } +
        @filter.conditions.map { |k| k.errors.full_messages } +
        @filter.skip_conditions.map { |k| k.errors.full_messages }
      }, status: 400
    end
  end

  ##
  ## private
  ##
  private

  def email_filter_pparams
    params[:email_filter].permit({
      actions_attributes:         [ :id, :_destroy,         :kind,            :value ],
      conditions_attributes:      [ :id, :_destroy, :field,        :operator, :value ],
      skip_conditions_attributes: [ :id, :_destroy, :field,        :operator, :value ],
    })
  end


end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
wco_email-0.1.1.94 app/controllers/wco_email/api/email_filters_controller.rb
wco_email-0.1.1.93 app/controllers/wco_email/api/email_filters_controller.rb
wco_email-0.1.1.92 app/controllers/wco_email/api/email_filters_controller.rb
wco_email-0.1.1.91 app/controllers/wco_email/api/email_filters_controller.rb
wco_email-0.1.1.90 app/controllers/wco_email/api/email_filters_controller.rb