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(); } }