API: ability to create a wall note

This commit is contained in:
Nihad Abbasov 2012-11-29 15:52:56 -08:00
parent 2a98a060ca
commit ee6187bd55
4 changed files with 45 additions and 3 deletions

View File

@ -1,7 +1,7 @@
v 3.2.0 v 3.2.0
- [API] create notes for snippets and issues - [API] list, create issue notes
- [API] list notes for snippets and issues - [API] list, create snippet notes
- [API] list project wall notes - [API] list, create wall notes
- Remove project code - use path instead - Remove project code - use path instead
- added username field to user - added username field to user
- rake task to fill usernames based on emails create namespaces for users - rake task to fill usernames based on emails create namespaces for users

View File

@ -87,6 +87,22 @@ Parameters:
## New note ## New note
### New wall note
Create a new wall note.
```
POST /projects/:id/notes
```
Parameters:
+ `id` (required) - The ID or code name of a project
+ `body` (required) - The content of a note
Will return created note with status `201 Created` on success, or `404 Not found` on fail.
### New issue note ### New issue note
Create a new issue note. Create a new issue note.

View File

@ -17,6 +17,24 @@ module Gitlab
present paginate(@notes), with: Entities::Note present paginate(@notes), with: Entities::Note
end end
# Create a new project wall note
#
# Parameters:
# id (required) - The ID or code name of a project
# body (required) - The content of a note
# Example Request:
# POST /projects/:id/notes
post ":id/notes" do
@note = user_project.notes.new(note: params[:body])
@note.author = current_user
if @note.save
present @note, with: Entities::Note
else
not_found!
end
end
NOTEABLE_TYPES.each do |noteable_type| NOTEABLE_TYPES.each do |noteable_type|
noteables_str = noteable_type.to_s.underscore.pluralize noteables_str = noteable_type.to_s.underscore.pluralize
noteable_id_str = "#{noteable_type.to_s.underscore}_id" noteable_id_str = "#{noteable_type.to_s.underscore}_id"

View File

@ -30,6 +30,14 @@ describe Gitlab::API do
end end
end end
describe "POST /projects/:id/notes" do
it "should create a new wall note" do
post api("/projects/#{project.id}/notes", user), body: 'hi!'
response.status.should == 201
json_response['body'].should == 'hi!'
end
end
describe "GET /projects/:id/noteable/:noteable_id/notes" do describe "GET /projects/:id/noteable/:noteable_id/notes" do
context "when noteable is an Issue" do context "when noteable is an Issue" do
it "should return an array of issue notes" do it "should return an array of issue notes" do