public async Task <HttpStatusCode> UpdateSubscription(TwitchWebhookRequest request) { // TODO: Replace Json.NET with System.Text.Json var json = JsonConvert.SerializeObject(request, new JsonSerializerSettings { StringEscapeHandling = StringEscapeHandling.Default }); var formData = new StringContent(json, Encoding.UTF8, "application/json"); var response = await _httpClient.PostAsync(_twitchMonitor.CurrentValue.Urls.EventSubscriptionUrl, formData); return(response.StatusCode); }
private async Task <HttpResponseMessage> MakeHttpPostRequest(Uri url, TwitchWebhookRequest request, string accessToken) { _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); var json = JsonConvert.SerializeObject(request, new JsonSerializerSettings { StringEscapeHandling = StringEscapeHandling.Default }); var formData = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); var response = await _httpClient.PostAsync(url, formData); response.EnsureSuccessStatusCode(); return(response); }
private async Task UpdateStreamChangeSubscription(List <string> channels, bool isSubscribed) { foreach (var channel in channels) { var selected = TwitchUsers.FirstOrDefault(user => string.Equals(channel, user.LoginName, StringComparison.InvariantCultureIgnoreCase)); // TODO: Inject callback url into UpdateSubscription methods var request = new TwitchWebhookRequest { Callback = $"https://twitchchatbotfx20200511150805.azurewebsites.net/api/subscription/streams/{channel}", Mode = isSubscribed ? "subscribe" : "unsubscribe", Topic = $"https://api.twitch.tv/helix/streams?user_id={selected.Id}", Lease = 864000 }; var url = new Uri(Constants.TWITCH_WEBHOOKS_SUBSCRIPTION_URL); var response = await MakeHttpPostRequest(url, request, AccessToken); } }
public Task <HttpStatusCode> UpdateSubscription(TwitchWebhookRequest request) { throw new System.NotImplementedException(); }