From 400b6ae6ee6271b0bc0e3397b55218c8ec75468e Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Wed, 12 Mar 2014 10:50:16 +0100 Subject: [PATCH] Add /requests/:id endpoint --- lib/travis/api/app/endpoint/requests.rb | 4 ++++ spec/integration/v2/requests_spec.rb | 28 ++++++++++++++++++------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/lib/travis/api/app/endpoint/requests.rb b/lib/travis/api/app/endpoint/requests.rb index 08dc8fcd..4a5b73a0 100644 --- a/lib/travis/api/app/endpoint/requests.rb +++ b/lib/travis/api/app/endpoint/requests.rb @@ -17,6 +17,10 @@ class Travis::Api::App { "error" => "Repository could not be found" } end end + + get '/:id' do + respond_with service(:find_request, params) + end end end end diff --git a/spec/integration/v2/requests_spec.rb b/spec/integration/v2/requests_spec.rb index 01a928d3..4b671ad6 100644 --- a/spec/integration/v2/requests_spec.rb +++ b/spec/integration/v2/requests_spec.rb @@ -3,16 +3,28 @@ require 'spec_helper' describe 'Requests' do let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json' } } - it 'fetches requests' do - repo = Factory.create(:repository) - request = Factory.create(:request, repository: repo) + describe '/requests' do + it 'fetches requests' do + repo = Factory.create(:repository) + request = Factory.create(:request, repository: repo) - response = get '/requests', { repository_id: repo.id }, headers - response.should deliver_json_for(repo.requests, version: 'v2', type: 'requests') + response = get '/requests', { repository_id: repo.id }, headers + response.should deliver_json_for(repo.requests, version: 'v2', type: 'requests') + end + + it 'returns an error response if repo can\'t be found' do + response = get '/requests', { repository_id: 0 }, headers + JSON.parse(response.body)['error'].should == "Repository could not be found" + end end - it 'returns an error response if repo can\'t be found' do - response = get '/requests', { repository_id: 0 }, headers - JSON.parse(response.body)['error'].should == "Repository could not be found" + describe '/requests/:id' do + it 'fetches a request' do + repo = Factory.create(:repository) + request = Factory.create(:request, repository: repo) + + response = get "/requests/#{request.id}", {}, headers + response.should deliver_json_for(request, version: 'v2', type: 'request') + end end end