Commit e117414e authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge pull request #2124 from NARKOZ/api

remove unnecessary API::VERSION constant
parents 46bf3a09 270a4337
v 4.0.0 v 4.0.0
- [API] expose created date for hooks and SSH keys
- [API] list, create issue notes - [API] list, create issue notes
- [API] list, create snippet notes - [API] list, create snippet notes
- [API] list, create wall notes - [API] list, create wall notes
......
...@@ -25,7 +25,7 @@ The API uses JSON to serialize data. You don't need to specify `.json` at the en ...@@ -25,7 +25,7 @@ The API uses JSON to serialize data. You don't need to specify `.json` at the en
When listing resources you can pass the following parameters: When listing resources you can pass the following parameters:
+ `page` (default: `1`) - page number + `page` (default: `1`) - page number
+ `per_page` (default: `20`, max: `100`) - how many items to list per page + `per_page` (default: `20`, max: `100`) - number of items to list per page
## Contents ## Contents
...@@ -36,3 +36,4 @@ When listing resources you can pass the following parameters: ...@@ -36,3 +36,4 @@ When listing resources you can pass the following parameters:
+ [Repositories](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/repositories.md) + [Repositories](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/repositories.md)
+ [Issues](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/issues.md) + [Issues](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/issues.md)
+ [Milestones](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/milestones.md) + [Milestones](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/milestones.md)
+ [Notes](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/notes.md)
...@@ -57,6 +57,19 @@ Parameters: ...@@ -57,6 +57,19 @@ Parameters:
## Single note ## Single note
### Single wall note
Get a wall note.
```
GET /projects/:id/notes/:note_id
```
Parameters:
+ `id` (required) - The ID or code name of a project
+ `note_id` (required) - The ID of a wall note
### Single issue note ### Single issue note
Get an issue note. Get an issue note.
......
...@@ -2,8 +2,7 @@ Dir["#{Rails.root}/lib/api/*.rb"].each {|file| require file} ...@@ -2,8 +2,7 @@ Dir["#{Rails.root}/lib/api/*.rb"].each {|file| require file}
module Gitlab module Gitlab
class API < Grape::API class API < Grape::API
VERSION = 'v2' version 'v2', using: :path
version VERSION, using: :path
rescue_from ActiveRecord::RecordNotFound do rescue_from ActiveRecord::RecordNotFound do
rack_response({'message' => '404 Not found'}.to_json, 404) rack_response({'message' => '404 Not found'}.to_json, 404)
......
...@@ -14,7 +14,7 @@ module Gitlab ...@@ -14,7 +14,7 @@ module Gitlab
end end
class Hook < Grape::Entity class Hook < Grape::Entity
expose :id, :url expose :id, :url, :created_at
end end
class Project < Grape::Entity class Project < Grape::Entity
...@@ -61,7 +61,7 @@ module Gitlab ...@@ -61,7 +61,7 @@ module Gitlab
end end
class SSHKey < Grape::Entity class SSHKey < Grape::Entity
expose :id, :title, :key expose :id, :title, :key, :created_at
end end
class MergeRequest < Grape::Entity class MergeRequest < Grape::Entity
......
...@@ -17,6 +17,18 @@ module Gitlab ...@@ -17,6 +17,18 @@ module Gitlab
present paginate(@notes), with: Entities::Note present paginate(@notes), with: Entities::Note
end end
# Get a single project wall note
#
# Parameters:
# id (required) - The ID or code name of a project
# note_id (required) - The ID of a note
# Example Request:
# GET /projects/:id/notes/:note_id
get ":id/notes/:note_id" do
@note = user_project.common_notes.find(params[:note_id])
present @note, with: Entities::Note
end
# Create a new project wall note # Create a new project wall note
# #
# Parameters: # Parameters:
......
...@@ -30,6 +30,14 @@ describe Gitlab::API do ...@@ -30,6 +30,14 @@ describe Gitlab::API do
end end
end end
describe "GET /projects/:id/notes/:note_id" do
it "should return a wall note by id" do
get api("/projects/#{project.id}/notes/#{wall_note.id}", user)
response.status.should == 200
json_response['body'].should == wall_note.note
end
end
describe "POST /projects/:id/notes" do describe "POST /projects/:id/notes" do
it "should create a new wall note" do it "should create a new wall note" do
post api("/projects/#{project.id}/notes", user), body: 'hi!' post api("/projects/#{project.id}/notes", user), body: 'hi!'
......
...@@ -18,7 +18,7 @@ module ApiHelpers ...@@ -18,7 +18,7 @@ module ApiHelpers
# #
# Returns the relative path to the requested API resource # Returns the relative path to the requested API resource
def api(path, user = nil) def api(path, user = nil)
"/api/#{Gitlab::API::VERSION}#{path}" + "/api/#{Gitlab::API.version}#{path}" +
# Normalize query string # Normalize query string
(path.index('?') ? '' : '?') + (path.index('?') ? '' : '?') +
......
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