From 1c5aa848ce6141b8679e167171096055dc7f4df3 Mon Sep 17 00:00:00 2001 From: Nihad Abbasov Date: Thu, 29 Nov 2012 11:33:41 -0800 Subject: [PATCH] API: get a single note --- lib/api/notes.rb | 15 +++++++++++++++ spec/requests/api/notes_spec.rb | 22 ++++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/lib/api/notes.rb b/lib/api/notes.rb index 9b39ff4c..84b6beb5 100644 --- a/lib/api/notes.rb +++ b/lib/api/notes.rb @@ -33,6 +33,21 @@ module Gitlab @noteable = user_project.send(:"#{noteables_str}").find(params[:"#{noteable_id_str}"]) present paginate(@noteable.notes), with: Entities::Note end + + # Get a single +noteable+ note + # + # Parameters: + # id (required) - The ID or code name of a project + # noteable_id (required) - The ID of an issue or snippet + # note_id (required) - The ID of a note + # Example Request: + # GET /projects/:id/issues/:noteable_id/notes/:note_id + # GET /projects/:id/snippets/:noteable_id/notes/:note_id + get ":id/#{noteables_str}/:#{noteable_id_str}/notes/:note_id" do + @noteable = user_project.send(:"#{noteables_str}").find(params[:"#{noteable_id_str}"]) + @note = @noteable.notes.find(params[:note_id]) + present @note, with: Entities::Note + end end end end diff --git a/spec/requests/api/notes_spec.rb b/spec/requests/api/notes_spec.rb index 1d42921f..175d4058 100644 --- a/spec/requests/api/notes_spec.rb +++ b/spec/requests/api/notes_spec.rb @@ -32,7 +32,7 @@ describe Gitlab::API do describe "GET /projects/:id/noteable/:noteable_id/notes" do context "when noteable is an Issue" do - it "should return an array of notes" do + it "should return an array of issue notes" do get api("/projects/#{project.id}/issues/#{issue.id}/notes", user) response.status.should == 200 json_response.should be_an Array @@ -41,7 +41,7 @@ describe Gitlab::API do end context "when noteable is a Snippet" do - it "should return an array of notes" do + it "should return an array of snippet notes" do get api("/projects/#{project.id}/snippets/#{snippet.id}/notes", user) response.status.should == 200 json_response.should be_an Array @@ -49,4 +49,22 @@ describe Gitlab::API do end end end + + describe "GET /projects/:id/noteable/:noteable_id/notes/:note_id" do + context "when noteable is an Issue" do + it "should return an issue note by id" do + get api("/projects/#{project.id}/issues/#{issue.id}/notes/#{issue_note.id}", user) + response.status.should == 200 + json_response['body'].should == issue_note.note + end + end + + context "when noteable is a Snippet" do + it "should return a snippet note by id" do + get api("/projects/#{project.id}/snippets/#{snippet.id}/notes/#{snippet_note.id}", user) + response.status.should == 200 + json_response['body'].should == snippet_note.note + end + end + end end