From 444d71e043eb19979ec1b08504b2760910cb2a47 Mon Sep 17 00:00:00 2001 From: "Z.J. van de Weg" Date: Mon, 20 Feb 2017 13:41:50 +0100 Subject: 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. --- app/services/groups/create_service.rb | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'app/services/groups/create_service.rb') 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 -- cgit v1.2.3