Beispiel #1
0
        public static async Task <HttpResponseMessage> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequestMessage req,
            ILogger log,
            ExecutionContext context)
        {
            log.LogInformation($"C# HTTP trigger function processed this request: {req}");

            var result = new WebhookListResponse();
            var config = new ConfigurationBuilder()
                         .SetBasePath(context.FunctionAppDirectory)
                         .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
                         .AddEnvironmentVariables()
                         .Build();

            StorageTableHelper stgHelper = new StorageTableHelper(config["UlsDataStorage"]);

            try
            {
                result.UrlList = await stgHelper.GetAllWebhooks();
            }
            catch (Exception ex)
            {
                log.LogError(ex, "An unexpected error was encountered.");
                return(req.CreateResponse(HttpStatusCode.BadRequest, ex));
            }

            return(req.CreateResponse(HttpStatusCode.OK, result));
        }
        private static async Task RunWebhooks(StorageTableHelper stgHelper, ClickStatsResponse response)
        {
            var hooks = await stgHelper.GetAllWebhooks();

            using (var client = new HttpClient())
                using (var httpContent = CreateHttpContent(response))
                {
                    foreach (var hook in hooks)
                    {
                        using (var request = new HttpRequestMessage(HttpMethod.Post, hook.Url))
                        {
                            request.Content = httpContent;
                            await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
                        }
                    }
                }
        }