debian-mirror-gitlab/app/controllers/projects/autocomplete_sources_controller.rb

45 lines
1.1 KiB
Ruby
Raw Normal View History

2017-08-17 22:00:37 +05:30
class Projects::AutocompleteSourcesController < Projects::ApplicationController
before_action :load_autocomplete_service, except: [:members]
def members
2018-03-17 18:26:18 +05:30
render json: ::Projects::ParticipantsService.new(@project, current_user).execute(target)
2017-08-17 22:00:37 +05:30
end
def issues
render json: @autocomplete_service.issues
end
def merge_requests
render json: @autocomplete_service.merge_requests
end
def labels
2018-11-08 19:23:39 +05:30
render json: @autocomplete_service.labels_as_hash(target)
2017-08-17 22:00:37 +05:30
end
def milestones
render json: @autocomplete_service.milestones
end
def commands
2018-03-17 18:26:18 +05:30
render json: @autocomplete_service.commands(target, params[:type])
2017-08-17 22:00:37 +05:30
end
private
def load_autocomplete_service
@autocomplete_service = ::Projects::AutocompleteService.new(@project, current_user)
end
2018-03-17 18:26:18 +05:30
def target
case params[:type]&.downcase
when 'issue'
2018-03-27 19:54:05 +05:30
IssuesFinder.new(current_user, project_id: @project.id).find_by(iid: params[:type_id])
2018-03-17 18:26:18 +05:30
when 'mergerequest'
2018-03-27 19:54:05 +05:30
MergeRequestsFinder.new(current_user, project_id: @project.id).find_by(iid: params[:type_id])
2018-03-17 18:26:18 +05:30
when 'commit'
2017-08-17 22:00:37 +05:30
@project.commit(params[:type_id])
end
end
end