Commit 0f604e62fb453f2359ebc0438fe7dfaff8e55d10

Authored by Nihad Abbasov
1 parent 0a6b64e6

refactor projects API

lib/api/entities.rb
@@ -16,11 +16,7 @@ module Gitlab @@ -16,11 +16,7 @@ module Gitlab
16 expose :issues_enabled, :merge_requests_enabled, :wall_enabled, :wiki_enabled, :created_at 16 expose :issues_enabled, :merge_requests_enabled, :wall_enabled, :wiki_enabled, :created_at
17 end 17 end
18 18
19 - class ProjectRepositoryBranches < Grape::Entity  
20 - expose :name, :commit  
21 - end  
22 -  
23 - class ProjectRepositoryTags < Grape::Entity 19 + class RepoObject < Grape::Entity
24 expose :name, :commit 20 expose :name, :commit
25 end 21 end
26 22
lib/api/helpers.rb
@@ -4,6 +4,10 @@ module Gitlab @@ -4,6 +4,10 @@ module Gitlab
4 @current_user ||= User.find_by_authentication_token(params[:private_token]) 4 @current_user ||= User.find_by_authentication_token(params[:private_token])
5 end 5 end
6 6
  7 + def user_project
  8 + @project ||= current_user.projects.find_by_code(params[:id])
  9 + end
  10 +
7 def authenticate! 11 def authenticate!
8 error!({'message' => '401 Unauthorized'}, 401) unless current_user 12 error!({'message' => '401 Unauthorized'}, 401) unless current_user
9 end 13 end
lib/api/projects.rb
@@ -20,8 +20,7 @@ module Gitlab @@ -20,8 +20,7 @@ module Gitlab
20 # Example Request: 20 # Example Request:
21 # GET /projects/:id 21 # GET /projects/:id
22 get ":id" do 22 get ":id" do
23 - @project = current_user.projects.find_by_code(params[:id])  
24 - present @project, :with => Entities::Project 23 + present user_project, :with => Entities::Project
25 end 24 end
26 25
27 # Get a project repository branches 26 # Get a project repository branches
@@ -31,8 +30,7 @@ module Gitlab @@ -31,8 +30,7 @@ module Gitlab
31 # Example Request: 30 # Example Request:
32 # GET /projects/:id/repository/branches 31 # GET /projects/:id/repository/branches
33 get ":id/repository/branches" do 32 get ":id/repository/branches" do
34 - @project = current_user.projects.find_by_code(params[:id])  
35 - present @project.repo.heads.sort_by(&:name), :with => Entities::ProjectRepositoryBranches 33 + present user_project.repo.heads.sort_by(&:name), :with => Entities::RepoObject
36 end 34 end
37 35
38 # Get a project repository tags 36 # Get a project repository tags
@@ -42,8 +40,7 @@ module Gitlab @@ -42,8 +40,7 @@ module Gitlab
42 # Example Request: 40 # Example Request:
43 # GET /projects/:id/repository/tags 41 # GET /projects/:id/repository/tags
44 get ":id/repository/tags" do 42 get ":id/repository/tags" do
45 - @project = current_user.projects.find_by_code(params[:id])  
46 - present @project.repo.tags.sort_by(&:name).reverse, :with => Entities::ProjectRepositoryTags 43 + present user_project.repo.tags.sort_by(&:name).reverse, :with => Entities::RepoObject
47 end 44 end
48 45
49 # Get a project snippet 46 # Get a project snippet
@@ -54,8 +51,7 @@ module Gitlab @@ -54,8 +51,7 @@ module Gitlab
54 # Example Request: 51 # Example Request:
55 # GET /projects/:id/snippets/:snippet_id 52 # GET /projects/:id/snippets/:snippet_id
56 get ":id/snippets/:snippet_id" do 53 get ":id/snippets/:snippet_id" do
57 - @project = current_user.projects.find_by_code(params[:id])  
58 - @snippet = @project.snippets.find(params[:snippet_id]) 54 + @snippet = user_project.snippets.find(params[:snippet_id])
59 present @snippet, :with => Entities::ProjectSnippet 55 present @snippet, :with => Entities::ProjectSnippet
60 end 56 end
61 57
@@ -70,8 +66,7 @@ module Gitlab @@ -70,8 +66,7 @@ module Gitlab
70 # Example Request: 66 # Example Request:
71 # POST /projects/:id/snippets 67 # POST /projects/:id/snippets
72 post ":id/snippets" do 68 post ":id/snippets" do
73 - @project = current_user.projects.find_by_code(params[:id])  
74 - @snippet = @project.snippets.new( 69 + @snippet = user_project.snippets.new(
75 :title => params[:title], 70 :title => params[:title],
76 :file_name => params[:file_name], 71 :file_name => params[:file_name],
77 :expires_at => params[:lifetime], 72 :expires_at => params[:lifetime],
@@ -98,8 +93,7 @@ module Gitlab @@ -98,8 +93,7 @@ module Gitlab
98 # Example Request: 93 # Example Request:
99 # PUT /projects/:id/snippets/:snippet_id 94 # PUT /projects/:id/snippets/:snippet_id
100 put ":id/snippets/:snippet_id" do 95 put ":id/snippets/:snippet_id" do
101 - @project = current_user.projects.find_by_code(params[:id])  
102 - @snippet = @project.snippets.find(params[:snippet_id]) 96 + @snippet = user_project.snippets.find(params[:snippet_id])
103 parameters = { 97 parameters = {
104 :title => (params[:title] || @snippet.title), 98 :title => (params[:title] || @snippet.title),
105 :file_name => (params[:file_name] || @snippet.file_name), 99 :file_name => (params[:file_name] || @snippet.file_name),
@@ -122,8 +116,7 @@ module Gitlab @@ -122,8 +116,7 @@ module Gitlab
122 # Example Request: 116 # Example Request:
123 # DELETE /projects/:id/snippets/:snippet_id 117 # DELETE /projects/:id/snippets/:snippet_id
124 delete ":id/snippets/:snippet_id" do 118 delete ":id/snippets/:snippet_id" do
125 - @project = current_user.projects.find_by_code(params[:id])  
126 - @snippet = @project.snippets.find(params[:snippet_id]) 119 + @snippet = user_project.snippets.find(params[:snippet_id])
127 @snippet.destroy 120 @snippet.destroy
128 end 121 end
129 122
@@ -135,8 +128,7 @@ module Gitlab @@ -135,8 +128,7 @@ module Gitlab
135 # Example Request: 128 # Example Request:
136 # GET /projects/:id/snippets/:snippet_id/raw 129 # GET /projects/:id/snippets/:snippet_id/raw
137 get ":id/snippets/:snippet_id/raw" do 130 get ":id/snippets/:snippet_id/raw" do
138 - @project = current_user.projects.find_by_code(params[:id])  
139 - @snippet = @project.snippets.find(params[:snippet_id]) 131 + @snippet = user_project.snippets.find(params[:snippet_id])
140 present @snippet.content 132 present @snippet.content
141 end 133 end
142 end 134 end