Commit e117414e44ea5747805b8ff0cba000cd10938cb9
Exists in
master
and in
4 other branches
Merge pull request #2124 from NARKOZ/api
remove unnecessary API::VERSION constant
Showing
8 changed files
with
40 additions
and
6 deletions
Show diff stats
CHANGELOG
doc/api/README.md
@@ -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 | ||
25 | When listing resources you can pass the following parameters: | 25 | When listing resources you can pass the following parameters: |
26 | 26 | ||
27 | + `page` (default: `1`) - page number | 27 | + `page` (default: `1`) - page number |
28 | -+ `per_page` (default: `20`, max: `100`) - how many items to list per page | 28 | ++ `per_page` (default: `20`, max: `100`) - number of items to list per page |
29 | 29 | ||
30 | ## Contents | 30 | ## Contents |
31 | 31 | ||
@@ -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: | ||
36 | + [Repositories](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/repositories.md) | 36 | + [Repositories](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/repositories.md) |
37 | + [Issues](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/issues.md) | 37 | + [Issues](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/issues.md) |
38 | + [Milestones](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/milestones.md) | 38 | + [Milestones](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/milestones.md) |
39 | ++ [Notes](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/notes.md) |
doc/api/notes.md
@@ -57,6 +57,19 @@ Parameters: | @@ -57,6 +57,19 @@ Parameters: | ||
57 | 57 | ||
58 | ## Single note | 58 | ## Single note |
59 | 59 | ||
60 | +### Single wall note | ||
61 | + | ||
62 | +Get a wall note. | ||
63 | + | ||
64 | +``` | ||
65 | +GET /projects/:id/notes/:note_id | ||
66 | +``` | ||
67 | + | ||
68 | +Parameters: | ||
69 | + | ||
70 | ++ `id` (required) - The ID or code name of a project | ||
71 | ++ `note_id` (required) - The ID of a wall note | ||
72 | + | ||
60 | ### Single issue note | 73 | ### Single issue note |
61 | 74 | ||
62 | Get an issue note. | 75 | Get an issue note. |
lib/api.rb
@@ -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} | ||
2 | 2 | ||
3 | module Gitlab | 3 | module Gitlab |
4 | class API < Grape::API | 4 | class API < Grape::API |
5 | - VERSION = 'v2' | ||
6 | - version VERSION, using: :path | 5 | + version 'v2', using: :path |
7 | 6 | ||
8 | rescue_from ActiveRecord::RecordNotFound do | 7 | rescue_from ActiveRecord::RecordNotFound do |
9 | rack_response({'message' => '404 Not found'}.to_json, 404) | 8 | rack_response({'message' => '404 Not found'}.to_json, 404) |
lib/api/entities.rb
@@ -14,7 +14,7 @@ module Gitlab | @@ -14,7 +14,7 @@ module Gitlab | ||
14 | end | 14 | end |
15 | 15 | ||
16 | class Hook < Grape::Entity | 16 | class Hook < Grape::Entity |
17 | - expose :id, :url | 17 | + expose :id, :url, :created_at |
18 | end | 18 | end |
19 | 19 | ||
20 | class Project < Grape::Entity | 20 | class Project < Grape::Entity |
@@ -61,7 +61,7 @@ module Gitlab | @@ -61,7 +61,7 @@ module Gitlab | ||
61 | end | 61 | end |
62 | 62 | ||
63 | class SSHKey < Grape::Entity | 63 | class SSHKey < Grape::Entity |
64 | - expose :id, :title, :key | 64 | + expose :id, :title, :key, :created_at |
65 | end | 65 | end |
66 | 66 | ||
67 | class MergeRequest < Grape::Entity | 67 | class MergeRequest < Grape::Entity |
lib/api/notes.rb
@@ -17,6 +17,18 @@ module Gitlab | @@ -17,6 +17,18 @@ module Gitlab | ||
17 | present paginate(@notes), with: Entities::Note | 17 | present paginate(@notes), with: Entities::Note |
18 | end | 18 | end |
19 | 19 | ||
20 | + # Get a single project wall note | ||
21 | + # | ||
22 | + # Parameters: | ||
23 | + # id (required) - The ID or code name of a project | ||
24 | + # note_id (required) - The ID of a note | ||
25 | + # Example Request: | ||
26 | + # GET /projects/:id/notes/:note_id | ||
27 | + get ":id/notes/:note_id" do | ||
28 | + @note = user_project.common_notes.find(params[:note_id]) | ||
29 | + present @note, with: Entities::Note | ||
30 | + end | ||
31 | + | ||
20 | # Create a new project wall note | 32 | # Create a new project wall note |
21 | # | 33 | # |
22 | # Parameters: | 34 | # Parameters: |
spec/requests/api/notes_spec.rb
@@ -30,6 +30,14 @@ describe Gitlab::API do | @@ -30,6 +30,14 @@ describe Gitlab::API do | ||
30 | end | 30 | end |
31 | end | 31 | end |
32 | 32 | ||
33 | + describe "GET /projects/:id/notes/:note_id" do | ||
34 | + it "should return a wall note by id" do | ||
35 | + get api("/projects/#{project.id}/notes/#{wall_note.id}", user) | ||
36 | + response.status.should == 200 | ||
37 | + json_response['body'].should == wall_note.note | ||
38 | + end | ||
39 | + end | ||
40 | + | ||
33 | describe "POST /projects/:id/notes" do | 41 | describe "POST /projects/:id/notes" do |
34 | it "should create a new wall note" do | 42 | it "should create a new wall note" do |
35 | post api("/projects/#{project.id}/notes", user), body: 'hi!' | 43 | post api("/projects/#{project.id}/notes", user), body: 'hi!' |
spec/support/api_helpers.rb
@@ -18,7 +18,7 @@ module ApiHelpers | @@ -18,7 +18,7 @@ module ApiHelpers | ||
18 | # | 18 | # |
19 | # Returns the relative path to the requested API resource | 19 | # Returns the relative path to the requested API resource |
20 | def api(path, user = nil) | 20 | def api(path, user = nil) |
21 | - "/api/#{Gitlab::API::VERSION}#{path}" + | 21 | + "/api/#{Gitlab::API.version}#{path}" + |
22 | 22 | ||
23 | # Normalize query string | 23 | # Normalize query string |
24 | (path.index('?') ? '' : '?') + | 24 | (path.index('?') ? '' : '?') + |