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

@ -5,42 +5,6 @@ class ConferenceController < ApplicationController
@keynote_speakers = @conference.keynote_speakers
end
def subscribe
conference = Conference.find_by_short_title(params[:id])
if current_user.subscriptions.where(conference: conference).blank?
subscription = Subscription.new(user_id: current_user.id, conference_id: conference.id)
begin
subscription.save!
flash[:success] = 'You have been subscribed to receive Email Notifications from this Conference.'
redirect_to root_path
rescue ActiveRecord::RecordInvalid
flash[:error] = subscription.errors.full_messages.to_sentence
redirect_to root_path
end
else
flash[:notice] = 'Already Subscribed'
redirect_to root_path
end
end
def unsubscribe
conference = Conference.find_by_short_title(params[:id])
subscription = current_user.subscriptions.where(conference_id: conference.id).first
if subscription.blank?
flash[:notice] = 'Already Unsubscribed'
redirect_to root_path
else
begin
subscription.destroy!
flash[:notice] = "You have been unsubscribed and now you won't be receiving any Email Notifications."
redirect_to root_path
rescue ActiveRecord::RecordInvalid
flash[:error] = subscription.errors.full_messages.to_sentence
redirect_to root_path
end
end
end
def gallery_photos
@photos = @conference.photos
render 'photos', formats: [:js]