public static async Task Run( [QueueTrigger("%TwitchChannelEventLookupQueue%", Connection = "TwitchStreamStorage")] TwitchSubscription Subscription, [Queue("%TwitchChannelEventProcessQueue%", Connection = "TwitchStreamStorage")] IAsyncCollector <TwitchChannelEventItem> EventProccessQueue, ILogger log) { log.LogInformation($"TwitchChannelEventLookup function processed: {Subscription.TwitchName}"); var response = await TwitchClient.GetTwitchSubscriptionEvents(Subscription, log); foreach (var channelEvent in response.Events) { log.LogInformation($"TwitchChannelEventLookup Queing event {channelEvent.Id} for channel {Subscription.TwitchName}"); await EventProccessQueue.AddAsync(new TwitchChannelEventItem() { Event = channelEvent, Subscription = Subscription }); } log.LogInformation("TwitchChannelEventLookup end"); }
public static async Task Run( [QueueTrigger("%TwitchSubscribeQueue%", Connection = "TwitchStreamStorage")] TwitchSubscription Subscription, ILogger log) { log.LogInformation("TwitchSubscriptionAdd Begin"); log.LogInformation($"TwitchSubscriptionAdd Process TwitchName {Subscription.TwitchName} TwitterName {Subscription.TwitterName}"); log.LogInformation($"TwitchSubscriptionAdd Subscribing TwitchName {Subscription.TwitchName} TwitterName {Subscription.TwitterName}"); try { await TwitchClient.SubscribeTwitchStreamWebhook(Subscription, log); log.LogInformation($"TwitchSubscriptionAdd Subscribed TwitchName {Subscription.TwitchName} TwitterName {Subscription.TwitterName}"); } catch (System.Exception e) { log.LogError(e, "TwitchSubscriptionAdd exception subscribing"); } log.LogInformation("TwitchSubscriptionAdd End"); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, [Queue("%TwitchSubscribeQueue%", Connection = "TwitchStreamStorage")] IAsyncCollector <TwitchSubscription> SubscribeQueue, [Queue("%TwitchUnsubscribeQueue%", Connection = "TwitchStreamStorage")] IAsyncCollector <TwitchSubscription> UnsubscribeQueue, ILogger log) { log.LogInformation($"{nameof(TwitchSubscriptionRegistration)} processed a request."); var requestBody = await req.ReadAsStringAsync(); log.LogInformation($"{nameof(TwitchSubscriptionRegistration)} RequestBody: {requestBody}"); var TwitchSubscriptions = JsonConvert.DeserializeObject <IList <TwitchSubscription> >(requestBody); log.LogInformation($"{nameof(TwitchSubscriptionRegistration)} Count: {TwitchSubscriptions.Count}"); var result = await TwitchClient.InvokeSubscriptionRegistration(TwitchSubscriptions, SubscribeQueue, UnsubscribeQueue, log, nameof(TwitchSubscriptionRegistration)); log.LogInformation($"{nameof(TwitchSubscriptionRegistration)} End"); var responseString = JsonConvert.SerializeObject(result); return(new OkObjectResult(responseString)); }