namespace ASC.Web.Api.Controllers.Settings; public class WebhooksController: BaseSettingsController { private readonly DbWorker _webhookDbWorker; public WebhooksController( ApiContext apiContext, WebItemManager webItemManager, IMemoryCache memoryCache, DbWorker dbWorker) : base(apiContext, memoryCache, webItemManager) { _webhookDbWorker = dbWorker; } /// /// Add new config for webhooks /// [Create("webhook")] public void CreateWebhook(WebhooksConfig model) { if (model.Uri == null) { throw new ArgumentNullException("Uri"); } if (model.SecretKey == null) { throw new ArgumentNullException("SecretKey"); } _webhookDbWorker.AddWebhookConfig(model); } /// /// Update config for webhooks /// [Update("webhook")] public void UpdateWebhook(WebhooksConfig model) { if (model.Uri == null) { throw new ArgumentNullException("Uri"); } if (model.SecretKey == null) { throw new ArgumentNullException("SecretKey"); } _webhookDbWorker.UpdateWebhookConfig(model); } /// /// Remove config for webhooks /// [Delete("webhook")] public void RemoveWebhook(WebhooksConfig model) { if (model.Uri == null) { throw new ArgumentNullException("Uri"); } if (model.SecretKey == null) { throw new ArgumentNullException("SecretKey"); } _webhookDbWorker.RemoveWebhookConfig(model); } /// /// Read Webhooks history for actual tenant /// [Read("webhooks")] public List TenantWebhooks() { return _webhookDbWorker.GetTenantWebhooks(); } }