Exemple #1
0
    public async Async.Task <bool> Send(WebhookMessageLog messageLog)
    {
        var webhook = await GetByWebhookId(messageLog.WebhookId);

        if (webhook == null || webhook.Url == null)
        {
            throw new Exception($"Invalid Webhook. Webhook with WebhookId: {messageLog.WebhookId} Not Found");
        }

        var(data, digest) = await BuildMessage(webhookId : webhook.WebhookId, eventId : messageLog.EventId, eventType : messageLog.EventType, webhookEvent : messageLog.Event, secretToken : webhook.SecretToken, messageFormat : webhook.MessageFormat);

        var headers = new Dictionary <string, string> {
            { "User-Agent", $"onefuzz-webhook {_context.ServiceConfiguration.OneFuzzVersion}" }
        };

        if (digest != null)
        {
            headers["X-Onefuzz-Digest"] = digest;
        }

        var client = new Request(_httpFactory.CreateClient());

        _logTracer.Info(data);
        var response = client.Post(url: webhook.Url, json: data, headers: headers);
        var result   = response.Result;

        if (result.StatusCode == HttpStatusCode.Accepted)
        {
            return(true);
        }
        return(false);
    }
    async private Async.Task AddEvent(Webhook webhook, EventMessage eventMessage)
    {
        var message = new WebhookMessageLog(
            EventId: eventMessage.EventId,
            EventType: eventMessage.EventType,
            Event: eventMessage.Event,
            InstanceId: eventMessage.InstanceId,
            InstanceName: eventMessage.InstanceName,
            WebhookId: webhook.WebhookId,
            TryCount: 0
            );

        var r = await _context.WebhookMessageLogOperations.Replace(message);

        if (!r.IsOk)
        {
            var(status, reason) = r.ErrorV;
            _logTracer.Error($"Failed to replace webhook message log due to [{status}] {reason}");
        }
    }
Exemple #3
0
 public bool WebhookMessageLog(WebhookMessageLog log)
 {
     return(Test(log));
 }