summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2012-12-02 03:30:30 -0800
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2012-12-02 03:30:30 -0800
commite117414e44ea5747805b8ff0cba000cd10938cb9 (patch)
treec789823f4dec58527f22d2ae2a3c2651b43250fd
parent46bf3a094988327b08c88006c694f0a0a15f7da2 (diff)
parent270a43370a4cd9e5f222ad707f68f42088d5ae06 (diff)
downloadgitlab-ce-e117414e44ea5747805b8ff0cba000cd10938cb9.tar.gz
Merge pull request #2124 from NARKOZ/api
remove unnecessary API::VERSION constant
-rw-r--r--CHANGELOG1
-rw-r--r--doc/api/README.md3
-rw-r--r--doc/api/notes.md13
-rw-r--r--lib/api.rb3
-rw-r--r--lib/api/entities.rb4
-rw-r--r--lib/api/notes.rb12
-rw-r--r--spec/requests/api/notes_spec.rb8
-rw-r--r--spec/support/api_helpers.rb2
8 files changed, 40 insertions, 6 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 2c6152e77dd..73933e0be4b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,5 @@
v 4.0.0
+ - [API] expose created date for hooks and SSH keys
- [API] list, create issue notes
- [API] list, create snippet notes
- [API] list, create wall notes
diff --git a/doc/api/README.md b/doc/api/README.md
index 19b7ff20bf3..ca346418f23 100644
--- a/doc/api/README.md
+++ b/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
When listing resources you can pass the following parameters:
+ `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
@@ -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)
+ [Issues](https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/issues.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)
diff --git a/doc/api/notes.md b/doc/api/notes.md
index 97899fa0f6e..7b226dea44c 100644
--- a/doc/api/notes.md
+++ b/doc/api/notes.md
@@ -57,6 +57,19 @@ Parameters:
## 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
Get an issue note.
diff --git a/lib/api.rb b/lib/api.rb
index 99e2074f306..d01d534cf6b 100644
--- a/lib/api.rb
+++ b/lib/api.rb
@@ -2,8 +2,7 @@ Dir["#{Rails.root}/lib/api/*.rb"].each {|file| require file}
module Gitlab
class API < Grape::API
- VERSION = 'v2'
- version VERSION, using: :path
+ version 'v2', using: :path
rescue_from ActiveRecord::RecordNotFound do
rack_response({'message' => '404 Not found'}.to_json, 404)
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index f985636aa10..9e9d44594a2 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -14,7 +14,7 @@ module Gitlab
end
class Hook < Grape::Entity
- expose :id, :url
+ expose :id, :url, :created_at
end
class Project < Grape::Entity
@@ -61,7 +61,7 @@ module Gitlab
end
class SSHKey < Grape::Entity
- expose :id, :title, :key
+ expose :id, :title, :key, :created_at
end
class MergeRequest < Grape::Entity
diff --git a/lib/api/notes.rb b/lib/api/notes.rb
index b47ff5c300f..a3e1858458d 100644
--- a/lib/api/notes.rb
+++ b/lib/api/notes.rb
@@ -17,6 +17,18 @@ module Gitlab
present paginate(@notes), with: Entities::Note
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
#
# Parameters:
diff --git a/spec/requests/api/notes_spec.rb b/spec/requests/api/notes_spec.rb
index dc02e7a3efa..681ba01558e 100644
--- a/spec/requests/api/notes_spec.rb
+++ b/spec/requests/api/notes_spec.rb
@@ -30,6 +30,14 @@ describe Gitlab::API do
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
it "should create a new wall note" do
post api("/projects/#{project.id}/notes", user), body: 'hi!'
diff --git a/spec/support/api_helpers.rb b/spec/support/api_helpers.rb
index 7d9011971dd..c4514bf38be 100644
--- a/spec/support/api_helpers.rb
+++ b/spec/support/api_helpers.rb
@@ -18,7 +18,7 @@ module ApiHelpers
#
# Returns the relative path to the requested API resource
def api(path, user = nil)
- "/api/#{Gitlab::API::VERSION}#{path}" +
+ "/api/#{Gitlab::API.version}#{path}" +
# Normalize query string
(path.index('?') ? '' : '?') +