diff options
author | Z.J. van de Weg <zegerjan@gitlab.com> | 2016-10-06 15:56:27 +0200 |
---|---|---|
committer | Z.J. van de Weg <zegerjan@gitlab.com> | 2016-10-10 20:12:02 +0200 |
commit | a012701162df40e22e920633019865bdddc4cfa3 (patch) | |
tree | 3e3837b1977bb0a278af6c0d0c6b375a8a660537 | |
parent | aa02de2c82cfec394fbbf54554ab97bff1401a0c (diff) | |
download | gitlab-ce-a012701162df40e22e920633019865bdddc4cfa3.tar.gz |
Support for creation of issues
-rw-r--r-- | app/services/mattermost/issue_service.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/app/services/mattermost/issue_service.rb b/app/services/mattermost/issue_service.rb index 9be715ac6c6..dc26039ef41 100644 --- a/app/services/mattermost/issue_service.rb +++ b/app/services/mattermost/issue_service.rb @@ -1,7 +1,33 @@ module Mattermost class IssueService < BaseService + def execute + if params[:text].start_with?('create') + create_issue + else + super + end + end + private + def create_issue + issue = Issues::CreateService.new(project, current_user, issue_params).execute + + byebug + if issue.valid? + generate_response(issue) + else + issue_create_error(issue.errors.full_messages) + end + end + + def issue_create_error(errors) + { + response_type: :ephemeral, + text: "An error occured creating your issue: #{errors}" + } + end + def collection project.issues end @@ -11,5 +37,16 @@ module Mattermost url_helpers. namespace_project_issue_url(project.namespace, project, issue) end + + def issue_params + match = params[:text].match(/\Acreate (?<title>.+$)/) + + return issue_create_error("No title given") unless match + + { + title: match[:title], + description: params[:text].gsub(/\Acreate .+$\s*/, ''), + } + end end end |