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}"); } }
public bool WebhookMessageLog(WebhookMessageLog log) { return(Test(log)); }