Esempio n. 1
0
 private void ProcessCompletion(TaskCompletionSource <SlackMessage> ts, string channel, PostMessageResponse msg)
 {
     try
     {
         ts.SetResult(SlackMessage.Create(this, channel, msg.message));
     }
     catch (Exception e)
     {
         ts.SetException(e);
         Console.WriteLine(msg.error);
         Console.WriteLine(e);
     }
 }
Esempio n. 2
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");
            // Local execution setting in local.settings.json
            // Azure execution setting configuration -> Application settings
            var slackWebHookUrl = Environment.GetEnvironmentVariable("SLACK_WEBHOOK_URL");

            if (string.IsNullOrWhiteSpace(slackWebHookUrl))
            {
                log.LogError("Application variable SLACK_WEBHOOK_URL not set");
                return(new BadRequestResult());
            }

            dynamic data = JsonConvert.DeserializeObject(await new StreamReader(req.Body).ReadToEndAsync());

            if (data == null)
            {
                log.LogInformation("Invalid input data");
                return(new BadRequestResult());
            }

            var message = SlackMessage
                          .Create(data)
                          .ToString();

            if (await PostSlackMessage(message, slackWebHookUrl, log))
            {
                log.LogInformation("Webhook successfully sent to Slack");
                return(new OkResult());
            }
            else
            {
                log.LogInformation("Error sending Webhook");
                return(new BadRequestResult());
            }
        }