aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2014-01-28 09:17:45 +0000
committerLouise Crow <louise.crow@gmail.com>2014-01-28 09:17:45 +0000
commitd9136f001e20df18928c1a6818347930fae27a52 (patch)
tree6fde8e2cd9e11dab65607a4b73eef8b095966527
parentbc6531d545810935bec8e847f59830d23e509e13 (diff)
Handle a request with no user in the show request function0.16.0.5hotfix/0.16.0.5
-rw-r--r--app/controllers/api_controller.rb5
-rw-r--r--spec/controllers/api_controller_spec.rb12
2 files changed, 16 insertions, 1 deletions
diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb
index 00a3beebd..e6b0c121a 100644
--- a/app/controllers/api_controller.rb
+++ b/app/controllers/api_controller.rb
@@ -16,11 +16,14 @@ class ApiController < ApplicationController
:status => @request.calculate_status,
:public_body_url => make_url("body", @request.public_body.url_name),
- :requestor_url => make_url("user", @request.user.url_name),
+
:request_email => @request.incoming_email,
:request_text => @request.last_event_forming_initial_request.outgoing_message.body,
}
+ if @request.user
+ @request_data[:requestor_url] = make_url("user", @request.user.url_name)
+ end
render :json => @request_data
end
diff --git a/spec/controllers/api_controller_spec.rb b/spec/controllers/api_controller_spec.rb
index 8e9d17fbe..2b1c515f7 100644
--- a/spec/controllers/api_controller_spec.rb
+++ b/spec/controllers/api_controller_spec.rb
@@ -282,6 +282,18 @@ describe ApiController, "when using the API" do
# check, which does not really test anything at all.
end
+ it 'should show information about an external request' do
+ info_request = info_requests(:external_request)
+ get :show_request,
+ :k => public_bodies(:geraldine_public_body).api_key,
+ :id => info_request.id
+
+ response.should be_success
+ assigns[:request].id.should == info_request.id
+ r = ActiveSupport::JSON.decode(response.body)
+ r["title"].should == info_request.title
+ end
+
it "should show an Atom feed of new request events" do
get :body_request_events,
:id => public_bodies(:geraldine_public_body).id,