Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorNihad Abbasov <narkoz.2008@gmail.com>2012-07-06 17:08:17 +0400
committerNihad Abbasov <narkoz.2008@gmail.com>2012-07-06 17:36:43 +0400
commit0f604e62fb453f2359ebc0438fe7dfaff8e55d10 (patch)
treea2323b59a343b53084d0708dd372e17e2286b208 /lib
parent0a6b64e6a9c5858801a7af2c408416b1c98de471 (diff)
refactor projects API
Diffstat (limited to 'lib')
-rw-r--r--lib/api/entities.rb6
-rw-r--r--lib/api/helpers.rb4
-rw-r--r--lib/api/projects.rb24
3 files changed, 13 insertions, 21 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 35ad4d430ad..f57545ff2f5 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -16,11 +16,7 @@ module Gitlab
expose :issues_enabled, :merge_requests_enabled, :wall_enabled, :wiki_enabled, :created_at
end
- class ProjectRepositoryBranches < Grape::Entity
- expose :name, :commit
- end
-
- class ProjectRepositoryTags < Grape::Entity
+ class RepoObject < Grape::Entity
expose :name, :commit
end
diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb
index 424a17b283c..e7b9a417b08 100644
--- a/lib/api/helpers.rb
+++ b/lib/api/helpers.rb
@@ -4,6 +4,10 @@ module Gitlab
@current_user ||= User.find_by_authentication_token(params[:private_token])
end
+ def user_project
+ @project ||= current_user.projects.find_by_code(params[:id])
+ end
+
def authenticate!
error!({'message' => '401 Unauthorized'}, 401) unless current_user
end
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index 70f8fa2aa62..34d1c23676e 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -20,8 +20,7 @@ module Gitlab
# Example Request:
# GET /projects/:id
get ":id" do
- @project = current_user.projects.find_by_code(params[:id])
- present @project, :with => Entities::Project
+ present user_project, :with => Entities::Project
end
# Get a project repository branches
@@ -31,8 +30,7 @@ module Gitlab
# Example Request:
# GET /projects/:id/repository/branches
get ":id/repository/branches" do
- @project = current_user.projects.find_by_code(params[:id])
- present @project.repo.heads.sort_by(&:name), :with => Entities::ProjectRepositoryBranches
+ present user_project.repo.heads.sort_by(&:name), :with => Entities::RepoObject
end
# Get a project repository tags
@@ -42,8 +40,7 @@ module Gitlab
# Example Request:
# GET /projects/:id/repository/tags
get ":id/repository/tags" do
- @project = current_user.projects.find_by_code(params[:id])
- present @project.repo.tags.sort_by(&:name).reverse, :with => Entities::ProjectRepositoryTags
+ present user_project.repo.tags.sort_by(&:name).reverse, :with => Entities::RepoObject
end
# Get a project snippet
@@ -54,8 +51,7 @@ module Gitlab
# Example Request:
# GET /projects/:id/snippets/:snippet_id
get ":id/snippets/:snippet_id" do
- @project = current_user.projects.find_by_code(params[:id])
- @snippet = @project.snippets.find(params[:snippet_id])
+ @snippet = user_project.snippets.find(params[:snippet_id])
present @snippet, :with => Entities::ProjectSnippet
end
@@ -70,8 +66,7 @@ module Gitlab
# Example Request:
# POST /projects/:id/snippets
post ":id/snippets" do
- @project = current_user.projects.find_by_code(params[:id])
- @snippet = @project.snippets.new(
+ @snippet = user_project.snippets.new(
:title => params[:title],
:file_name => params[:file_name],
:expires_at => params[:lifetime],
@@ -98,8 +93,7 @@ module Gitlab
# Example Request:
# PUT /projects/:id/snippets/:snippet_id
put ":id/snippets/:snippet_id" do
- @project = current_user.projects.find_by_code(params[:id])
- @snippet = @project.snippets.find(params[:snippet_id])
+ @snippet = user_project.snippets.find(params[:snippet_id])
parameters = {
:title => (params[:title] || @snippet.title),
:file_name => (params[:file_name] || @snippet.file_name),
@@ -122,8 +116,7 @@ module Gitlab
# Example Request:
# DELETE /projects/:id/snippets/:snippet_id
delete ":id/snippets/:snippet_id" do
- @project = current_user.projects.find_by_code(params[:id])
- @snippet = @project.snippets.find(params[:snippet_id])
+ @snippet = user_project.snippets.find(params[:snippet_id])
@snippet.destroy
end
@@ -135,8 +128,7 @@ module Gitlab
# Example Request:
# GET /projects/:id/snippets/:snippet_id/raw
get ":id/snippets/:snippet_id/raw" do
- @project = current_user.projects.find_by_code(params[:id])
- @snippet = @project.snippets.find(params[:snippet_id])
+ @snippet = user_project.snippets.find(params[:snippet_id])
present @snippet.content
end
end