Sha256: bdcdafe2df7b97753e21a9f255bd685df3e18b32018a5bf31697c20d2a759924

Contents?: true

Size: 1.77 KB

Versions: 4

Compression:

Stored size: 1.77 KB

Contents

module Droom
  class InvitationsController < Droom::EngineController
    respond_to :js, :html
    layout :no_layout_if_pjax
    
    before_filter :get_event
    before_filter :build_invitation, :only => [:new]
    before_filter :find_or_build_invitation, :only => [:create]
    before_filter :get_invitation, :only => [:accept, :refuse, :toggle]

    def destroy
      @invitation = @event.invitations.find_by_id(params[:id])
      @invitation.destroy if @invitation
      head :ok
    end
    
    def index
      @event = Droom::Event.find(params[:event_id])
      render :partial => 'droom/events/invitations'
    end
    
    def new
      respond_with @invitation
    end
    
    def create
      if @invitation.save
        render :partial => "created"
      else
        respond_with @invitation
      end
    end
    
    def accept
      @invitation.update_attribute(:response, 2)
      render :partial => "droom/invitations/invitation"
    end

    def refuse
      @invitation.update_attribute(:response, 0)
      render :partial => "droom/invitations/invitation"
    end

    def toggle
      @invitation.update_attribute(:response, @invitation.response == 0 ? 2 : 0)
      render :partial => "droom/invitations/invitation"
    end

  protected
    
    def get_event
      @event = Droom::Event.find(params[:event_id])
    end
    
    def build_invitation
      @invitation = @event.invitations.build(params[:invitation])
    end
    
    def find_or_build_invitation
      @person = Droom::Person.find(params[:invitation][:person_id])
      unless @invitation = @event.invitations.for_person(@person).first()
        @invitation = @event.invitations.build(params[:invitation])
      end
    end

    def get_invitation
      @invitation = @event.invitations.find(params[:id])
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
droom-0.4.3 app/controllers/droom/invitations_controller.rb
droom-0.4.2 app/controllers/droom/invitations_controller.rb
droom-0.4.1 app/controllers/droom/invitations_controller.rb
droom-0.2.1 app/controllers/droom/invitations_controller.rb