public async Task <IActionResult> NewWebhook(WebhookData hook) { var header = Request.Headers[HeaderNames.WebHookCheckHeader]; var token = header.FirstOrDefault(); _logger.LogInformation("Received hook with token {Token}. My token is {MyToken}. Token validation is set to {ValidateToken}", token, _settings.Token, _settings.ValidateToken); if (!_settings.ValidateToken || _settings.Token == token) { _logger.LogInformation("Received hook is going to be processed"); var newHook = new WebHookReceived() { Data = hook.Payload, When = hook.When, Token = token }; await _hooksRepository.AddNew(newHook); _logger.LogInformation("Received hook was processed."); return(Ok(newHook)); } _logger.LogInformation("Received hook is NOT processed - Bad Request returned."); return(BadRequest()); }
public virtual bool ReceiveWebHook(string webHookName, string bodyOrNull, Dictionary <string, string> headers) { if (!IsValid(webHookName, bodyOrNull, headers)) { return(false); } try { WebHookReceived?.Invoke(this, new WebHookClientEventArgs { WebHookName = webHookName, BoryOrBlank = bodyOrNull }); return(true); } catch (Exception ex) { Logger.AddEntry("Failed to invoke WebHookReceived event: {0}", ex, ex.Message); return(false); } }