From 9e58ccbc30288c7d58306d95eef569013fe08efb Mon Sep 17 00:00:00 2001 From: Cyberboss Date: Mon, 16 Jul 2018 16:17:27 -0400 Subject: [PATCH] ChatController.Delete --- .../Controllers/ChatController.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Tgstation.Server.Host/Controllers/ChatController.cs b/src/Tgstation.Server.Host/Controllers/ChatController.cs index 22f1d75cb4..6e30d57aee 100644 --- a/src/Tgstation.Server.Host/Controllers/ChatController.cs +++ b/src/Tgstation.Server.Host/Controllers/ChatController.cs @@ -9,6 +9,7 @@ using Tgstation.Server.Api.Rights; using Tgstation.Server.Host.Components; using Tgstation.Server.Host.Models; using Tgstation.Server.Host.Security; +using Z.EntityFramework.Plus; namespace Tgstation.Server.Host.Controllers { @@ -82,7 +83,6 @@ namespace Tgstation.Server.Host.Controllers { //undo the add DatabaseContext.ChatSettings.Remove(dbModel); - DatabaseContext.ChatChannels.RemoveRange(dbModel.Channels); await DatabaseContext.Save(default).ConfigureAwait(false); throw; } @@ -93,5 +93,18 @@ namespace Tgstation.Server.Host.Controllers } return Json(dbModel); } + + /// + [TgsAuthorize(ChatSettingsRights.Delete)] + public override async Task Delete([FromBody] Api.Models.ChatSettings model, CancellationToken cancellationToken) + { + if (model == null) + throw new ArgumentNullException(nameof(model)); + + var instance = instanceManager.GetInstance(Instance); + await Task.WhenAll(instance.Chat.DeleteConnection(model.Id, cancellationToken), DatabaseContext.ChatSettings.Where(x => x.Id == model.Id).DeleteAsync(cancellationToken)).ConfigureAwait(false); + + return Ok(); + } } }