class PollsController < ApplicationController
  before_filter :get_poll, except: [:index, :new, :create]

  def index
    @polls = Poll.all
  end

  def show
  end

  def new
    @poll = Poll.new
    @poll.options.build
    raise AccessError unless @poll.can_create? cuser
  end

  def edit
    raise AccessError unless @poll.can_update? cuser
  end

  def create
    @poll = Poll.new params[:poll]
    @poll.user = cuser
    raise AccessError unless @poll.can_create? cuser

    if @poll.save
      flash[:notice] = t(:polls_create)
      redirect_to @poll
    else
      render :new
    end
  end

  def update
    raise AccessError unless @poll.can_update? cuser

    if @poll.update_attributes params[:poll]
      flash[:notice] = t(:polls_update)
      redirect_to @poll
    else
      render :edit
    end
  end

  def destroy
    raise AccessError unless @poll.can_destroy? cuser
    @poll.destroy
    redirect_to polls_url
  end

  private

  def get_poll
    @poll = Poll.find params[:id]
  end
end
