summaryrefslogtreecommitdiff
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-05-14 12:57:08 +0200
commitd5432b48979cd623f64517f6d05bf900acc31b7d (patch)
treefd1852bd5a0303007367b9d3924f37da10d4cf4a
parent20987f4fd2d6a5ab27e61a4afc038999937adade (diff)
downloadgitlab-ce-zj-delete-mm-team.tar.gz
Remove Mattermost team with GitLab groupzj-delete-mm-team
When destroying a group, now an API call is made to the Mattermost server to request the deletion of the project.
-rw-r--r--app/services/groups/destroy_service.rb4
-rw-r--r--changelogs/unreleased/zj-delete-mm-team.yml4
-rw-r--r--lib/mattermost/client.rb6
-rw-r--r--lib/mattermost/team.rb4
4 files changed, 18 insertions, 0 deletions
diff --git a/app/services/groups/destroy_service.rb b/app/services/groups/destroy_service.rb
index 497fdb09cdc..22f217a8120 100644
--- a/app/services/groups/destroy_service.rb
+++ b/app/services/groups/destroy_service.rb
@@ -22,6 +22,10 @@ module Groups
DestroyService.new(group, current_user).execute
end
+ if group.chat_team
+ Mattermost::Team.new(current_user).destroy(@group.chat_team.team_id)
+ end
+
group.really_destroy!
end
end
diff --git a/changelogs/unreleased/zj-delete-mm-team.yml b/changelogs/unreleased/zj-delete-mm-team.yml
new file mode 100644
index 00000000000..a3f8f7454a7
--- /dev/null
+++ b/changelogs/unreleased/zj-delete-mm-team.yml
@@ -0,0 +1,4 @@
+---
+title: Remove Mattermost team when deleting a group
+merge_request:
+author:
diff --git a/lib/mattermost/client.rb b/lib/mattermost/client.rb
index 3d60618006c..728406e9acc 100644
--- a/lib/mattermost/client.rb
+++ b/lib/mattermost/client.rb
@@ -36,6 +36,12 @@ module Mattermost
end
end
+ def session_delete(path, options = {})
+ with_session do |session|
+ delete(session, path, options)
+ end
+ end
+
def json_response(response)
json_response = JSON.parse(response.body)
diff --git a/lib/mattermost/team.rb b/lib/mattermost/team.rb
index 2cdbbdece16..e189e3703ae 100644
--- a/lib/mattermost/team.rb
+++ b/lib/mattermost/team.rb
@@ -14,5 +14,9 @@ module Mattermost
type: type
}.to_json)
end
+
+ def destroy(team_id:)
+ session_delete("/api/v4/teams/#{team}")
+ end
end
end