BigW Consortium Gitlab

Commit cf12763d by Valeriy Sizov

Merge pull request #2127 from NARKOZ/notes-api

API: don't expose 'updated_at' for notes
parents eb061b9b ee6187bd
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
......
...@@ -20,8 +20,7 @@ GET /projects/:id/notes ...@@ -20,8 +20,7 @@ GET /projects/:id/notes
"blocked": false, "blocked": false,
"created_at": "2012-05-23T08:00:58Z" "created_at": "2012-05-23T08:00:58Z"
}, },
"updated_at":"2012-11-27T19:16:44Z", "created_at": "2012-11-27T19:16:44Z"
"created_at":"2012-11-27T19:16:44Z"
} }
] ]
``` ```
...@@ -88,6 +87,22 @@ Parameters: ...@@ -88,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.
......
...@@ -73,7 +73,7 @@ module Gitlab ...@@ -73,7 +73,7 @@ module Gitlab
expose :id expose :id
expose :note, as: :body expose :note, as: :body
expose :author, using: Entities::UserBasic expose :author, using: Entities::UserBasic
expose :updated_at, :created_at expose :created_at
end end
class MRNote < Grape::Entity class MRNote < Grape::Entity
......
...@@ -17,6 +17,24 @@ module Gitlab ...@@ -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"
......
...@@ -30,6 +30,14 @@ describe Gitlab::API do ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment