91 lines
3 KiB
Ruby
91 lines
3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module API
|
|
class BulkImports < ::API::Base
|
|
include PaginationParams
|
|
|
|
feature_category :importers
|
|
|
|
helpers do
|
|
def bulk_imports
|
|
@bulk_imports ||= ::BulkImports::ImportsFinder.new(user: current_user, status: params[:status]).execute
|
|
end
|
|
|
|
def bulk_import
|
|
@bulk_import ||= bulk_imports.find(params[:import_id])
|
|
end
|
|
|
|
def bulk_import_entities
|
|
@bulk_import_entities ||= ::BulkImports::EntitiesFinder.new(user: current_user, bulk_import: bulk_import, status: params[:status]).execute
|
|
end
|
|
|
|
def bulk_import_entity
|
|
@bulk_import_entity ||= bulk_import_entities.find(params[:entity_id])
|
|
end
|
|
end
|
|
|
|
before { authenticate! }
|
|
|
|
resource :bulk_imports do
|
|
desc 'List all GitLab Migrations' do
|
|
detail 'This feature was introduced in GitLab 14.1.'
|
|
end
|
|
params do
|
|
use :pagination
|
|
optional :status, type: String, values: BulkImport.all_human_statuses,
|
|
desc: 'Return GitLab Migrations with specified status'
|
|
end
|
|
get do
|
|
present paginate(bulk_imports), with: Entities::BulkImport
|
|
end
|
|
|
|
desc "List all GitLab Migrations' entities" do
|
|
detail 'This feature was introduced in GitLab 14.1.'
|
|
end
|
|
params do
|
|
use :pagination
|
|
optional :status, type: String, values: ::BulkImports::Entity.all_human_statuses,
|
|
desc: "Return all GitLab Migrations' entities with specified status"
|
|
end
|
|
get :entities do
|
|
entities = ::BulkImports::EntitiesFinder.new(user: current_user, status: params[:status]).execute
|
|
|
|
present paginate(entities), with: Entities::BulkImports::Entity
|
|
end
|
|
|
|
desc 'Get GitLab Migration details' do
|
|
detail 'This feature was introduced in GitLab 14.1.'
|
|
end
|
|
params do
|
|
requires :import_id, type: Integer, desc: "The ID of user's GitLab Migration"
|
|
end
|
|
get ':import_id' do
|
|
present bulk_import, with: Entities::BulkImport
|
|
end
|
|
|
|
desc "List GitLab Migration entities" do
|
|
detail 'This feature was introduced in GitLab 14.1.'
|
|
end
|
|
params do
|
|
requires :import_id, type: Integer, desc: "The ID of user's GitLab Migration"
|
|
optional :status, type: String, values: ::BulkImports::Entity.all_human_statuses,
|
|
desc: 'Return import entities with specified status'
|
|
use :pagination
|
|
end
|
|
get ':import_id/entities' do
|
|
present paginate(bulk_import_entities), with: Entities::BulkImports::Entity
|
|
end
|
|
|
|
desc 'Get GitLab Migration entity details' do
|
|
detail 'This feature was introduced in GitLab 14.1.'
|
|
end
|
|
params do
|
|
requires :import_id, type: Integer, desc: "The ID of user's GitLab Migration"
|
|
requires :entity_id, type: Integer, desc: "The ID of GitLab Migration entity"
|
|
end
|
|
get ':import_id/entities/:entity_id' do
|
|
present bulk_import_entity, with: Entities::BulkImports::Entity
|
|
end
|
|
end
|
|
end
|
|
end
|