Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

WebhooksController.cs 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. namespace Diligent.WebAPI.Host.Controllers.V1
  2. {
  3. [ApiVersion("1.0")]
  4. [ApiController]
  5. [Route("v{version:apiVersion}/webhooks")]
  6. public class WebhooksController : ControllerBase
  7. {
  8. private readonly IWebhookSubscriptionService _webhookSubscriptionService;
  9. private readonly IWebhookDefinitionService _webhookDefinitionService;
  10. public WebhooksController(
  11. IWebhookSubscriptionService subscriptionService,
  12. IWebhookDefinitionService definitionsService)
  13. {
  14. _webhookSubscriptionService = subscriptionService;
  15. _webhookDefinitionService = definitionsService;
  16. }
  17. /// <summary>
  18. /// Create webhook subscription
  19. /// </summary>
  20. [HttpPost]
  21. [ProducesResponseType(StatusCodes.Status201Created)]
  22. [ProducesResponseType(typeof(ErrorResponseDto), StatusCodes.Status400BadRequest)]
  23. public async Task<IActionResult> Post([FromBody] WebhookSubscriptionCreateDto dto)
  24. {
  25. await _webhookSubscriptionService.CreateWebhookSubscription(dto);
  26. return StatusCode(StatusCodes.Status201Created);
  27. }
  28. /// <summary>
  29. /// Get all webhook definitions
  30. /// </summary>
  31. [HttpGet("definitions")]
  32. [ProducesResponseType(typeof(List<WebhookDefinitionViewDto>), StatusCodes.Status200OK)]
  33. [ProducesResponseType(typeof(ErrorResponseDto), StatusCodes.Status400BadRequest)]
  34. public async Task<IActionResult> GetDefinitions()
  35. {
  36. return Ok(await _webhookDefinitionService.GetAll());
  37. }
  38. }
  39. }