move subscribe to its own controller, add authorization, test subscribe/unsubscribe

This commit is contained in:
Stella 2014-10-31 22:45:15 +02:00 committed by Stella Rouzi
parent 97bf86454e
commit 3be200abcc
7 changed files with 92 additions and 43 deletions

View file

@ -0,0 +1,27 @@
class SubscriptionsController < ApplicationController
before_filter :verify_user
load_and_authorize_resource :conference, find_by: :short_title
load_and_authorize_resource only: [:create, :destroy], through: :conference
def create
@subscription = current_user.subscriptions.build(conference_id: @conference.id)
if @subscription.save!
flash[:notice] = "You have been subscribed to receive email notifications for #{@conference.short_title}."
redirect_to root_path
else
flash[:error] = subscription.errors.full_messages.to_sentence
redirect_to root_path
end
end
def destroy
@subscription = current_user.subscriptions.find_by(conference_id: @conference.id)
if @subscription.destroy
flash[:notice] = "You have been unsubscribed and now you will not be receiving email notifications for #{@conference.short_title}."
redirect_to root_path
else
flash[:error] = @subscription.errors.full_messages.to_sentence
redirect_to root_path
end
end
end