Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZ.J. van de Weg <git@zjvandeweg.nl>2017-02-20 15:41:50 +0300
committerZ.J. van de Weg <git@zjvandeweg.nl>2017-02-20 15:41:50 +0300
commit444d71e043eb19979ec1b08504b2760910cb2a47 (patch)
treeeae73ba8a12de1a84faee800fae9749b70ed1b78 /app/services/groups/create_service.rb
parent549fc3469790da388035de713294f335fbfb4fb5 (diff)
Transactional mattermost team creation
Before this commit, but still on this feature branch, the creation of mattermost teams where a background job. However, it was decided it was better that these happened as transaction so feedback could be displayed to the user.
Diffstat (limited to 'app/services/groups/create_service.rb')
-rw-r--r--app/services/groups/create_service.rb21
1 files changed, 13 insertions, 8 deletions
diff --git a/app/services/groups/create_service.rb b/app/services/groups/create_service.rb
index 13d1b545498..3028025fc6e 100644
--- a/app/services/groups/create_service.rb
+++ b/app/services/groups/create_service.rb
@@ -2,12 +2,10 @@ module Groups
class CreateService < Groups::BaseService
def initialize(user, params = {})
@current_user, @params = user, params.dup
+ @chat_team = @params.delete(:create_chat_team)
end
def execute
- create_chat_team = params.delete(:create_chat_team)
- team_name = params.delete(:chat_team_name)
-
@group = Group.new(params)
unless Gitlab::VisibilityLevel.allowed_for?(current_user, params[:visibility_level])
@@ -23,15 +21,22 @@ module Groups
end
@group.name ||= @group.path.dup
- @group.save
- @group.add_owner(current_user)
- if create_chat_team && Gitlab.config.mattermost.enabled
- options = team_name ? { name: team_name } : {}
- Mattermost::CreateTeamWorker.perform_async(@group.id, current_user.id, options)
+ if create_chat_team?
+ Mattermost::CreateTeamService.new(@group, current_user).execute
+
+ return @group if @group.errors.any?
end
+ @group.save
+ @group.add_owner(current_user)
@group
end
+
+ private
+
+ def create_chat_team?
+ @chat_team && Gitlab.config.mattermost.enabled
+ end
end
end