Fix API notes endpoint when posting only emoji

This commit is contained in:
Z.J. van de Weg 2016-09-16 14:30:28 +02:00
parent 065341bf04
commit cf00fbecc5
3 changed files with 18 additions and 5 deletions

View File

@ -78,7 +78,8 @@ Parameters:
### Create new issue note
Creates a new note to a single project issue.
Creates a new note to a single project issue. If you create a note where the body
only contains an Award Emoji, you'll receive this object back.
```
POST /projects/:id/issues/:issue_id/notes
@ -204,6 +205,7 @@ Parameters:
### Create new snippet note
Creates a new note for a single snippet. Snippet notes are comments users can post to a snippet.
If you create a note where the body only contains an Award Emoji, you'll receive this object back.
```
POST /projects/:id/snippets/:snippet_id/notes
@ -332,6 +334,8 @@ Parameters:
### Create new merge request note
Creates a new note for a single merge request.
If you create a note where the body only contains an Award Emoji, you'll receive
this object back.
```
POST /projects/:id/merge_requests/:merge_request_id/notes

View File

@ -83,12 +83,12 @@ module API
opts[:created_at] = params[:created_at]
end
@note = ::Notes::CreateService.new(user_project, current_user, opts).execute
note = ::Notes::CreateService.new(user_project, current_user, opts).execute
if @note.valid?
present @note, with: Entities::Note
if note.valid?
present note, with: Entities::const_get(note.class.name)
else
not_found!("Note #{@note.errors.messages}")
not_found!("Note #{note.errors.messages}")
end
end

View File

@ -220,6 +220,15 @@ describe API::API, api: true do
expect(Time.parse(json_response['created_at'])).to be_within(1.second).of(creation_time)
end
end
context 'when the user is posting an award emoji' do
it 'returns an award emoji' do
post api("/projects/#{project.id}/issues/#{issue.id}/notes", user), body: ':+1:'
expect(response).to have_http_status(201)
expect(json_response['awardable_id']).to eq issue.id
end
end
end
context "when noteable is a Snippet" do