Example #1
0
    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());
    }
Example #2
0
        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);
            }
        }