aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/file_request_controller.rb23
-rw-r--r--app/models/outgoing_message.rb4
2 files changed, 14 insertions, 13 deletions
diff --git a/app/controllers/file_request_controller.rb b/app/controllers/file_request_controller.rb
index d9f22d804..ab9390a4f 100644
--- a/app/controllers/file_request_controller.rb
+++ b/app/controllers/file_request_controller.rb
@@ -4,31 +4,32 @@
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
#
-# $Id: file_request_controller.rb,v 1.7 2007-09-11 15:21:30 francis Exp $
+# $Id: file_request_controller.rb,v 1.8 2007-09-12 15:56:18 francis Exp $
class FileRequestController < ApplicationController
def index
+ # render index.rhtml template
end
+# before_filter :check_authentication, :only => [:create]
def create
+
# Create both FOI request and the first request message
@info_request = InfoRequest.new(params[:info_request])
@outgoing_message = OutgoingMessage.new(params[:outgoing_message].merge({
:status => 'ready',
:message_type => 'initial_request'
}))
+ @outgoing_message.info_request = @info_request
# Save both models
- ActiveRecord::Base.transaction do
- begin
- @info_request.save!
- @outgoing_message.info_request_id = @info_request.id
- @outgoing_message.save!
- # render create action
- rescue ActiveRecord::RecordInvalid => e
- @outgoing_message.valid? # force cecking of errors even if info_request fails
- render :action => 'index'
- end
+ valid = @info_request.valid?
+ valid &&= @outgoing_message.valid? # XXX maybe there is a nicer way of preventing lazy boolean evaluation than this
+ if valid
+ @info_request.save!
+ @outgoing_message.save!
+ else
+ render :action => 'index'
end
end
diff --git a/app/models/outgoing_message.rb b/app/models/outgoing_message.rb
index ef768955d..cc1b7ad54 100644
--- a/app/models/outgoing_message.rb
+++ b/app/models/outgoing_message.rb
@@ -5,11 +5,11 @@
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
#
-# $Id: outgoing_message.rb,v 1.3 2007-09-11 15:26:12 francis Exp $
+# $Id: outgoing_message.rb,v 1.4 2007-09-12 15:56:18 francis Exp $
class OutgoingMessage < ActiveRecord::Base
belongs_to :info_request
- validates_presence_of :info_request_id
+ validates_presence_of :info_request
validates_presence_of :body
validates_inclusion_of :status, :in => ['ready', 'sent', 'failed']