summaryrefslogtreecommitdiff
path: root/lib/api
diff options
context:
space:
mode:
authorRobert Schilling <rschilling@student.tugraz.at>2017-02-06 16:54:30 +0100
committerRobert Schilling <rschilling@student.tugraz.at>2017-02-07 12:20:00 +0100
commit626e79b6f5ed18e1d023643d3e4b85dc4f20286c (patch)
treee1579e1f457f25ae2c511d8e812fa2956eef0e01 /lib/api
parent5985b55769303824f0ce64ae293b0498f2edfc1b (diff)
downloadgitlab-ce-api-remove-snippets-expires-at.tar.gz
Split V3 entities into a separate fileapi-remove-snippets-expires-at
Diffstat (limited to 'lib/api')
-rw-r--r--lib/api/entities.rb14
-rw-r--r--lib/api/v3/entities.rb16
-rw-r--r--lib/api/v3/issues.rb28
-rw-r--r--lib/api/v3/merge_requests.rb40
-rw-r--r--lib/api/v3/project_snippets.rb16
-rw-r--r--lib/api/v3/projects.rb74
6 files changed, 95 insertions, 93 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index d296fbb9313..5d7b8e021bb 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -694,19 +694,5 @@ module API
expose :id, :message, :starts_at, :ends_at, :color, :font
expose :active?, as: :active
end
-
- # Entities for the deprecated V3 API
- class ProjectSnippetV3 < Grape::Entity
- expose :id, :title, :file_name
- expose :author, using: Entities::UserBasic
- expose :updated_at, :created_at
-
- # TODO (rspeicher): Deprecated; remove in 9.0
- expose(:expires_at) { |snippet| nil }
-
- expose :web_url do |snippet, options|
- Gitlab::UrlBuilder.build(snippet)
- end
- end
end
end
diff --git a/lib/api/v3/entities.rb b/lib/api/v3/entities.rb
new file mode 100644
index 00000000000..3cc0dc968a8
--- /dev/null
+++ b/lib/api/v3/entities.rb
@@ -0,0 +1,16 @@
+module API
+ module V3
+ module Entities
+ class ProjectSnippet < Grape::Entity
+ expose :id, :title, :file_name
+ expose :author, using: ::API::Entities::UserBasic
+ expose :updated_at, :created_at
+ expose(:expires_at) { |snippet| nil }
+
+ expose :web_url do |snippet, options|
+ Gitlab::UrlBuilder.build(snippet)
+ end
+ end
+ end
+ end
+end
diff --git a/lib/api/v3/issues.rb b/lib/api/v3/issues.rb
index be3ecc29449..081d45165e8 100644
--- a/lib/api/v3/issues.rb
+++ b/lib/api/v3/issues.rb
@@ -50,7 +50,7 @@ module API
resource :issues do
desc "Get currently authenticated user's issues" do
- success Entities::Issue
+ success ::API::Entities::Issue
end
params do
optional :state, type: String, values: %w[opened closed all], default: 'all',
@@ -60,7 +60,7 @@ module API
get do
issues = find_issues(scope: 'authored')
- present paginate(issues), with: Entities::Issue, current_user: current_user
+ present paginate(issues), with: ::API::Entities::Issue, current_user: current_user
end
end
@@ -69,7 +69,7 @@ module API
end
resource :groups do
desc 'Get a list of group issues' do
- success Entities::Issue
+ success ::API::Entities::Issue
end
params do
optional :state, type: String, values: %w[opened closed all], default: 'opened',
@@ -81,7 +81,7 @@ module API
issues = find_issues(group_id: group.id, state: params[:state] || 'opened', match_all_labels: true)
- present paginate(issues), with: Entities::Issue, current_user: current_user
+ present paginate(issues), with: ::API::Entities::Issue, current_user: current_user
end
end
@@ -93,7 +93,7 @@ module API
desc 'Get a list of project issues' do
detail 'iid filter is deprecated have been removed on V4'
- success Entities::Issue
+ success ::API::Entities::Issue
end
params do
optional :state, type: String, values: %w[opened closed all], default: 'all',
@@ -106,22 +106,22 @@ module API
issues = find_issues(project_id: project.id)
- present paginate(issues), with: Entities::Issue, current_user: current_user, project: user_project
+ present paginate(issues), with: ::API::Entities::Issue, current_user: current_user, project: user_project
end
desc 'Get a single project issue' do
- success Entities::Issue
+ success ::API::Entities::Issue
end
params do
requires :issue_id, type: Integer, desc: 'The ID of a project issue'
end
get ":id/issues/:issue_id" do
issue = find_project_issue(params[:issue_id])
- present issue, with: Entities::Issue, current_user: current_user, project: user_project
+ present issue, with: ::API::Entities::Issue, current_user: current_user, project: user_project
end
desc 'Create a new project issue' do
- success Entities::Issue
+ success ::API::Entities::Issue
end
params do
requires :title, type: String, desc: 'The title of an issue'
@@ -153,14 +153,14 @@ module API
end
if issue.valid?
- present issue, with: Entities::Issue, current_user: current_user, project: user_project
+ present issue, with: ::API::Entities::Issue, current_user: current_user, project: user_project
else
render_validation_error!(issue)
end
end
desc 'Update an existing issue' do
- success Entities::Issue
+ success ::API::Entities::Issue
end
params do
requires :issue_id, type: Integer, desc: 'The ID of a project issue'
@@ -186,14 +186,14 @@ module API
declared_params(include_missing: false)).execute(issue)
if issue.valid?
- present issue, with: Entities::Issue, current_user: current_user, project: user_project
+ present issue, with: ::API::Entities::Issue, current_user: current_user, project: user_project
else
render_validation_error!(issue)
end
end
desc 'Move an existing issue' do
- success Entities::Issue
+ success ::API::Entities::Issue
end
params do
requires :issue_id, type: Integer, desc: 'The ID of a project issue'
@@ -208,7 +208,7 @@ module API
begin
issue = ::Issues::MoveService.new(user_project, current_user).execute(issue, new_project)
- present issue, with: Entities::Issue, current_user: current_user, project: user_project
+ present issue, with: ::API::Entities::Issue, current_user: current_user, project: user_project
rescue ::Issues::MoveService::MoveError => error
render_api_error!(error.message, 400)
end
diff --git a/lib/api/v3/merge_requests.rb b/lib/api/v3/merge_requests.rb
index 1af70cf58cc..129f9d850e9 100644
--- a/lib/api/v3/merge_requests.rb
+++ b/lib/api/v3/merge_requests.rb
@@ -39,7 +39,7 @@ module API
desc 'List merge requests' do
detail 'iid filter is deprecated have been removed on V4'
- success Entities::MergeRequest
+ success ::API::Entities::MergeRequest
end
params do
optional :state, type: String, values: %w[opened closed merged all], default: 'all',
@@ -66,11 +66,11 @@ module API
end
merge_requests = merge_requests.reorder(params[:order_by] => params[:sort])
- present paginate(merge_requests), with: Entities::MergeRequest, current_user: current_user, project: user_project
+ present paginate(merge_requests), with: ::API::Entities::MergeRequest, current_user: current_user, project: user_project
end
desc 'Create a merge request' do
- success Entities::MergeRequest
+ success ::API::Entities::MergeRequest
end
params do
requires :title, type: String, desc: 'The title of the merge request'
@@ -89,7 +89,7 @@ module API
merge_request = ::MergeRequests::CreateService.new(user_project, current_user, mr_params).execute
if merge_request.valid?
- present merge_request, with: Entities::MergeRequest, current_user: current_user, project: user_project
+ present merge_request, with: ::API::Entities::MergeRequest, current_user: current_user, project: user_project
else
handle_merge_request_errors! merge_request.errors
end
@@ -114,34 +114,34 @@ module API
if status == :deprecated
detail DEPRECATION_MESSAGE
end
- success Entities::MergeRequest
+ success ::API::Entities::MergeRequest
end
get path do
merge_request = find_merge_request_with_access(params[:merge_request_id])
- present merge_request, with: Entities::MergeRequest, current_user: current_user, project: user_project
+ present merge_request, with: ::API::Entities::MergeRequest, current_user: current_user, project: user_project
end
desc 'Get the commits of a merge request' do
- success Entities::RepoCommit
+ success ::API::Entities::RepoCommit
end
get "#{path}/commits" do
merge_request = find_merge_request_with_access(params[:merge_request_id])
- present merge_request.commits, with: Entities::RepoCommit
+ present merge_request.commits, with: ::API::Entities::RepoCommit
end
desc 'Show the merge request changes' do
- success Entities::MergeRequestChanges
+ success ::API::Entities::MergeRequestChanges
end
get "#{path}/changes" do
merge_request = find_merge_request_with_access(params[:merge_request_id])
- present merge_request, with: Entities::MergeRequestChanges, current_user: current_user
+ present merge_request, with: ::API::Entities::MergeRequestChanges, current_user: current_user
end
desc 'Update a merge request' do
- success Entities::MergeRequest
+ success ::API::Entities::MergeRequest
end
params do
optional :title, type: String, allow_blank: false, desc: 'The title of the merge request'
@@ -162,14 +162,14 @@ module API
merge_request = ::MergeRequests::UpdateService.new(user_project, current_user, mr_params).execute(merge_request)
if merge_request.valid?
- present merge_request, with: Entities::MergeRequest, current_user: current_user, project: user_project
+ present merge_request, with: ::API::Entities::MergeRequest, current_user: current_user, project: user_project
else
handle_merge_request_errors! merge_request.errors
end
end
desc 'Merge a merge request' do
- success Entities::MergeRequest
+ success ::API::Entities::MergeRequest
end
params do
optional :merge_commit_message, type: String, desc: 'Custom merge commit message'
@@ -209,11 +209,11 @@ module API
.execute(merge_request)
end
- present merge_request, with: Entities::MergeRequest, current_user: current_user, project: user_project
+ present merge_request, with: ::API::Entities::MergeRequest, current_user: current_user, project: user_project
end
desc 'Cancel merge if "Merge When Pipeline Succeeds" is enabled' do
- success Entities::MergeRequest
+ success ::API::Entities::MergeRequest
end
post "#{path}/cancel_merge_when_build_succeeds" do
merge_request = find_project_merge_request(params[:merge_request_id])
@@ -227,19 +227,19 @@ module API
desc 'Get the comments of a merge request' do
detail 'Duplicate. DEPRECATED and HAS BEEN REMOVED in V4'
- success Entities::MRNote
+ success ::API::Entities::MRNote
end
params do
use :pagination
end
get "#{path}/comments" do
merge_request = find_merge_request_with_access(params[:merge_request_id])
- present paginate(merge_request.notes.fresh), with: Entities::MRNote
+ present paginate(merge_request.notes.fresh), with: ::API::Entities::MRNote
end
desc 'Post a comment to a merge request' do
detail 'Duplicate. DEPRECATED and HAS BEEN REMOVED in V4'
- success Entities::MRNote
+ success ::API::Entities::MRNote
end
params do
requires :note, type: String, desc: 'The text of the comment'
@@ -256,14 +256,14 @@ module API
note = ::Notes::CreateService.new(user_project, current_user, opts).execute
if note.save
- present note, with: Entities::MRNote
+ present note, with: ::API::Entities::MRNote
else
render_api_error!("Failed to save note #{note.errors.messages}", 400)
end
end
desc 'List issues that will be closed on merge' do
- success Entities::MRNote
+ success ::API::Entities::MRNote
end
params do
use :pagination
diff --git a/lib/api/v3/project_snippets.rb b/lib/api/v3/project_snippets.rb
index 920cc92217f..9f95d4395fa 100644
--- a/lib/api/v3/project_snippets.rb
+++ b/lib/api/v3/project_snippets.rb
@@ -24,28 +24,28 @@ module API
end
desc 'Get all project snippets' do
- success Entities::ProjectSnippetV3
+ success ::API::V3::Entities::ProjectSnippet
end
params do
use :pagination
end
get ":id/snippets" do
- present paginate(snippets_for_current_user), with: Entities::ProjectSnippetV3
+ present paginate(snippets_for_current_user), with: ::API::V3::Entities::ProjectSnippet
end
desc 'Get a single project snippet' do
- success Entities::ProjectSnippetV3
+ success ::API::V3::Entities::ProjectSnippet
end
params do
requires :snippet_id, type: Integer, desc: 'The ID of a project snippet'
end
get ":id/snippets/:snippet_id" do
snippet = snippets_for_current_user.find(params[:snippet_id])
- present snippet, with: Entities::ProjectSnippetV3
+ present snippet, with: ::API::V3::Entities::ProjectSnippet
end
desc 'Create a new project snippet' do
- success Entities::ProjectSnippetV3
+ success ::API::V3::Entities::ProjectSnippet
end
params do
requires :title, type: String, desc: 'The title of the snippet'
@@ -65,14 +65,14 @@ module API
snippet = CreateSnippetService.new(user_project, current_user, snippet_params).execute
if snippet.persisted?
- present snippet, with: Entities::ProjectSnippetV3
+ present snippet, with: ::API::V3::Entities::ProjectSnippet
else
render_validation_error!(snippet)
end
end
desc 'Update an existing project snippet' do
- success Entities::ProjectSnippetV3
+ success ::API::V3::Entities::ProjectSnippet
end
params do
requires :snippet_id, type: Integer, desc: 'The ID of a project snippet'
@@ -99,7 +99,7 @@ module API
snippet_params).execute
if snippet.persisted?
- present snippet, with: Entities::ProjectSnippetV3
+ present snippet, with: ::API::V3::Entities::ProjectSnippet
else
render_validation_error!(snippet)
end
diff --git a/lib/api/v3/projects.rb b/lib/api/v3/projects.rb
index bac7d485a22..6796da83f07 100644
--- a/lib/api/v3/projects.rb
+++ b/lib/api/v3/projects.rb
@@ -74,32 +74,32 @@ module API
def present_projects(projects, options = {})
options = options.reverse_merge(
- with: Entities::Project,
+ with: ::API::Entities::Project,
current_user: current_user,
simple: params[:simple],
)
projects = filter_projects(projects)
projects = projects.with_statistics if options[:statistics]
- options[:with] = Entities::BasicProjectDetails if options[:simple]
+ options[:with] = ::API::Entities::BasicProjectDetails if options[:simple]
present paginate(projects), options
end
end
desc 'Get a list of visible projects for authenticated user' do
- success Entities::BasicProjectDetails
+ success ::API::Entities::BasicProjectDetails
end
params do
use :collection_params
end
get '/visible' do
- entity = current_user ? Entities::ProjectWithAccess : Entities::BasicProjectDetails
+ entity = current_user ? ::API::Entities::ProjectWithAccess : ::API::Entities::BasicProjectDetails
present_projects ProjectsFinder.new.execute(current_user), with: entity
end
desc 'Get a projects list for authenticated user' do
- success Entities::BasicProjectDetails
+ success ::API::Entities::BasicProjectDetails
end
params do
use :collection_params
@@ -108,11 +108,11 @@ module API
authenticate!
present_projects current_user.authorized_projects,
- with: Entities::ProjectWithAccess
+ with: ::API::Entities::ProjectWithAccess
end
desc 'Get an owned projects list for authenticated user' do
- success Entities::BasicProjectDetails
+ success ::API::Entities::BasicProjectDetails
end
params do
use :collection_params
@@ -122,12 +122,12 @@ module API
authenticate!
present_projects current_user.owned_projects,
- with: Entities::ProjectWithAccess,
+ with: ::API::Entities::ProjectWithAccess,
statistics: params[:statistics]
end
desc 'Gets starred project for the authenticated user' do
- success Entities::BasicProjectDetails
+ success ::API::Entities::BasicProjectDetails
end
params do
use :collection_params
@@ -139,7 +139,7 @@ module API
end
desc 'Get all projects for admin user' do
- success Entities::BasicProjectDetails
+ success ::API::Entities::BasicProjectDetails
end
params do
use :collection_params
@@ -148,11 +148,11 @@ module API
get '/all' do
authenticated_as_admin!
- present_projects Project.all, with: Entities::ProjectWithAccess, statistics: params[:statistics]
+ present_projects Project.all, with: ::API::Entities::ProjectWithAccess, statistics: params[:statistics]
end
desc 'Search for projects the current user has access to' do
- success Entities::Project
+ success ::API::Entities::Project
end
params do
requires :query, type: String, desc: 'The project name to be searched'
@@ -164,11 +164,11 @@ module API
projects = search_service.objects('projects', params[:page])
projects = projects.reorder(params[:order_by] => params[:sort])
- present paginate(projects), with: Entities::Project
+ present paginate(projects), with: ::API::Entities::Project
end
desc 'Create new project' do
- success Entities::Project
+ success ::API::Entities::Project
end
params do
requires :name, type: String, desc: 'The name of the project'
@@ -181,7 +181,7 @@ module API
project = ::Projects::CreateService.new(current_user, attrs).execute
if project.saved?
- present project, with: Entities::Project,
+ present project, with: ::API::Entities::Project,
user_can_admin_project: can?(current_user, :admin_project, project)
else
if project.errors[:limit_reached].present?
@@ -192,7 +192,7 @@ module API
end
desc 'Create new project for a specified user. Only available to admin users.' do
- success Entities::Project
+ success ::API::Entities::Project
end
params do
requires :name, type: String, desc: 'The name of the project'
@@ -210,7 +210,7 @@ module API
project = ::Projects::CreateService.new(user, attrs).execute
if project.saved?
- present project, with: Entities::Project,
+ present project, with: ::API::Entities::Project,
user_can_admin_project: can?(current_user, :admin_project, project)
else
render_validation_error!(project)
@@ -223,26 +223,26 @@ module API
end
resource :projects, requirements: { id: /[^\/]+/ } do
desc 'Get a single project' do
- success Entities::ProjectWithAccess
+ success ::API::Entities::ProjectWithAccess
end
get ":id" do
- entity = current_user ? Entities::ProjectWithAccess : Entities::BasicProjectDetails
+ entity = current_user ? ::API::Entities::ProjectWithAccess : ::API::Entities::BasicProjectDetails
present user_project, with: entity, current_user: current_user,
user_can_admin_project: can?(current_user, :admin_project, user_project)
end
desc 'Get events for a single project' do
- success Entities::Event
+ success ::API::Entities::Event
end
params do
use :pagination
end
get ":id/events" do
- present paginate(user_project.events.recent), with: Entities::Event
+ present paginate(user_project.events.recent), with: ::API::Entities::Event
end
desc 'Fork new project for the current user or provided namespace.' do
- success Entities::Project
+ success ::API::Entities::Project
end
params do
optional :namespace, type: String, desc: 'The ID or name of the namespace that the project will be forked into'
@@ -268,13 +268,13 @@ module API
if forked_project.errors.any?
conflict!(forked_project.errors.messages)
else
- present forked_project, with: Entities::Project,
+ present forked_project, with: ::API::Entities::Project,
user_can_admin_project: can?(current_user, :admin_project, forked_project)
end
end
desc 'Update an existing project' do
- success Entities::Project
+ success ::API::Entities::Project
end
params do
optional :name, type: String, desc: 'The name of the project'
@@ -298,7 +298,7 @@ module API
result = ::Projects::UpdateService.new(user_project, current_user, attrs).execute
if result[:status] == :success
- present user_project, with: Entities::Project,
+ present user_project, with: ::API::Entities::Project,
user_can_admin_project: can?(current_user, :admin_project, user_project)
else
render_validation_error!(user_project)
@@ -306,29 +306,29 @@ module API
end
desc 'Archive a project' do
- success Entities::Project
+ success ::API::Entities::Project
end
post ':id/archive' do
authorize!(:archive_project, user_project)
user_project.archive!
- present user_project, with: Entities::Project
+ present user_project, with: ::API::Entities::Project
end
desc 'Unarchive a project' do
- success Entities::Project
+ success ::API::Entities::Project
end
post ':id/unarchive' do
authorize!(:archive_project, user_project)
user_project.unarchive!
- present user_project, with: Entities::Project
+ present user_project, with: ::API::Entities::Project
end
desc 'Star a project' do
- success Entities::Project
+ success ::API::Entities::Project
end
post ':id/star' do
if current_user.starred?(user_project)
@@ -337,19 +337,19 @@ module API
current_user.toggle_star(user_project)
user_project.reload
- present user_project, with: Entities::Project
+ present user_project, with: ::API::Entities::Project
end
end
desc 'Unstar a project' do
- success Entities::Project
+ success ::API::Entities::Project
end
delete ':id/star' do
if current_user.starred?(user_project)
current_user.toggle_star(user_project)
user_project.reload
- present user_project, with: Entities::Project
+ present user_project, with: ::API::Entities::Project
else
not_modified!
end
@@ -390,7 +390,7 @@ module API
end
desc 'Share the project with a group' do
- success Entities::ProjectGroupLink
+ success ::API::Entities::ProjectGroupLink
end
params do
requires :group_id, type: Integer, desc: 'The ID of a group'
@@ -412,7 +412,7 @@ module API
link = user_project.project_group_links.new(declared_params(include_missing: false))
if link.save
- present link, with: Entities::ProjectGroupLink
+ present link, with: ::API::Entities::ProjectGroupLink
else
render_api_error!(link.errors.full_messages.first, 409)
end
@@ -440,7 +440,7 @@ module API
end
desc 'Get the users list of a project' do
- success Entities::UserBasic
+ success ::API::Entities::UserBasic
end
params do
optional :search, type: String, desc: 'Return list of users matching the search criteria'
@@ -450,7 +450,7 @@ module API
users = user_project.team.users
users = users.search(params[:search]) if params[:search].present?
- present paginate(users), with: Entities::UserBasic
+ present paginate(users), with: ::API::Entities::UserBasic
end
end
end