From 7b22662b0366ee98d6fbb5caeb3b4e9bc49f9073 Mon Sep 17 00:00:00 2001 From: bborn Date: Mon, 17 Aug 2009 09:22:32 -0500 Subject: [PATCH] fix messages controller --- app/controllers/messages_controller.rb | 45 +++++++++------------ test/functional/messages_controller_test.rb | 20 ++++----- 2 files changed, 30 insertions(+), 35 deletions(-) diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 18dd1a03..b4f1a8d7 100755 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -26,39 +26,34 @@ def show def new if params[:reply_to] in_reply_to = Message.find_by_id(params[:reply_to]) - @message = Message.new_reply(@user, in_reply_to, params) - else - @message = Message.new(:to=>params[:to]) end - + @message = Message.new_reply(@user, in_reply_to, params) end def create messages = [] - begin - if params[:message][:to].blank? - # If 'to' field is empty, call validations to catch other - # errors and raise exception to re-show form - @message = Message.new(params[:message]) - @message.valid? - raise - else - # If 'to' field isn't empty then make sure each recipient - # is valid - params[:message][:to].split(',').uniq.each do |to| - @message = Message.new(params[:message]) - @message.recipient = User.find_by_login(to.strip) - @message.sender = @user - raise unless @message.valid? + + if params[:message][:to].blank? + # If 'to' field is empty, call validations to catch other + @message = Message.new(params[:message]) + @message.valid? + render :action => :new and return + else + # If 'to' field isn't empty then make sure each recipient is valid + params[:message][:to].split(',').uniq.each do |to| + @message = Message.new(params[:message]) + @message.recipient = User.find_by_login(to.strip) + @message.sender = @user + unless @message.valid? + render :action => :new and return + else messages << @message end - # If all messages are valid then send message - messages.each {|msg| msg.save!} - flash[:notice] = :message_sent.l - redirect_to user_messages_path(@user) end - rescue - render :action => :new + # If all messages are valid then send messages + messages.each {|msg| msg.save!} + flash[:notice] = :message_sent.l + redirect_to user_messages_path(@user) and return end end diff --git a/test/functional/messages_controller_test.rb b/test/functional/messages_controller_test.rb index d0229a35..10fc26c6 100644 --- a/test/functional/messages_controller_test.rb +++ b/test/functional/messages_controller_test.rb @@ -147,17 +147,17 @@ def test_should_mark_recipient_deleted end private - def create_message(sender,recipient) - Message.create(:sender_id => sender.id, :recipient_id => recipient.id, - :body => 'Some content', :subject => 'A subject').save! - end + def create_message(sender,recipient) + Message.create(:sender_id => sender.id, :recipient_id => recipient.id, + :body => 'Some content', :subject => 'A subject').save! + end - def should_mark_deleted(user) - @request.env['HTTP_REFERER'] = "#{user.login}/messages" - create_message(users(:leopoldo),users(:florian)) - post :delete_selected, :delete => [Message.last.id], :user_id => user.id - assert_redirected_to "#{user.login}/messages" - end + def should_mark_deleted(user) + @request.env['HTTP_REFERER'] = "#{user.login}/messages" + create_message(users(:leopoldo),users(:florian)) + post :delete_selected, :delete => [Message.last.id], :user_id => user.id + assert_redirected_to "#{user.login}/messages" + end end \ No newline at end of file