summaryrefslogtreecommitdiff
path: root/app/models/chat_team.rb
diff options
context:
space:
mode:
authorZ.J. van de Weg <git@zjvandeweg.nl>2017-05-14 12:57:08 +0200
committerZ.J. van de Weg <git@zjvandeweg.nl>2017-07-28 09:09:55 +0200
commitd7062dd042f7dd773900ecf6ea79e1ca26592eb5 (patch)
tree07656fcfb6911d9136c464f262806357ab518652 /app/models/chat_team.rb
parentb92d5135d8522e1370636799d74b51f9a37d0b2f (diff)
downloadgitlab-ce-d7062dd042f7dd773900ecf6ea79e1ca26592eb5.tar.gz
Remove Mattermost team with GitLab group
When destroying a group, now an API call is made to the Mattermost server to request the deletion of the project. Actual team deletion on the Mattermost side happens async, so the runtime shouldn't increase by more than a second.
Diffstat (limited to 'app/models/chat_team.rb')
-rw-r--r--app/models/chat_team.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models/chat_team.rb b/app/models/chat_team.rb
index c52b6f15913..25ecf2d5937 100644
--- a/app/models/chat_team.rb
+++ b/app/models/chat_team.rb
@@ -3,4 +3,13 @@ class ChatTeam < ActiveRecord::Base
validates :namespace, uniqueness: true
belongs_to :namespace
+
+ def remove_mattermost_team(current_user)
+ Mattermost::Team.new(current_user).destroy(team_id: team_id)
+ rescue Mattermost::ClientError => e
+ # Either the group is not found, or the user doesn't have the proper
+ # access on the mattermost instance. In the first case, we're done either way
+ # in the latter case, we can't recover by retrying, so we just log what happened
+ Rails.logger.error("Mattermost team deletion failed: #{e}")
+ end
end