aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/new_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/new_controller.rb')
-rw-r--r--app/controllers/new_controller.rb46
1 files changed, 46 insertions, 0 deletions
diff --git a/app/controllers/new_controller.rb b/app/controllers/new_controller.rb
new file mode 100644
index 000000000..1952ace06
--- /dev/null
+++ b/app/controllers/new_controller.rb
@@ -0,0 +1,46 @@
+# app/controllers/new_controller.rb:
+# Interface for building a new FOI request.
+#
+# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
+# Email: francis@mysociety.org; WWW: http://www.mysociety.org/
+#
+# $Id: new_controller.rb,v 1.1 2007-10-08 14:58:27 francis Exp $
+
+class NewController < ApplicationController
+ def index
+ # render index.rhtml template
+ end
+
+ 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'
+ }))
+ @info_request.outgoing_messages << @outgoing_message
+ @outgoing_message.info_request = @info_request
+
+ # This automatically saves dependent objects, such as @info_request, in the same transaction
+ if not @info_request.valid?
+ render :action => 'index'
+ elsif check_authentication
+ @info_request.save
+ end
+
+ # Save both models
+# valid = @info_request.valid?
+# valid &&= @outgoing_message.valid? # XXX maybe there is a nicer way of preventing lazy boolean evaluation than this
+# if valid
+# if check_authentication
+# @info_request.save!
+# @outgoing_message.save!
+# end
+# else
+# render :action => 'index'
+# end
+ end
+
+end
+
+