gitlab-org--gitlab-foss/app/services/issues/create_service.rb

37 lines
1,022 B
Ruby
Raw Normal View History

module Issues
class CreateService < Issues::BaseService
def execute
filter_params
label_params = params.delete(:label_ids)
request = params.delete(:request)
api = params.delete(:api)
issue = project.issues.new(params)
issue.author = params[:author] || current_user
issue.spam = spam_check_service.execute(request, api, issue)
if issue.save
issue.update_attributes(label_ids: label_params)
notification_service.new_issue(issue, current_user)
2016-02-20 08:59:59 -05:00
todo_service.new_issue(issue, current_user)
event_service.open_issue(issue, current_user)
user_agent_detail_service(issue, request).create
issue.create_cross_references!(current_user)
execute_hooks(issue, 'open')
end
issue
end
private
def spam_check_service
SpamCheckService.new(project, current_user, params)
end
def user_agent_detail_service(issue, request)
UserAgentDetailService.new(issue, request)
end
end
end