Exemple #1
0
        public async Task PostBroadcasterConfigAsync()
        {
            const int    channelId   = 123;
            const string broadcaster = "broadcaster";

            _Log.Setup(s => s.LogInformation($"Checking that broadcaster '{broadcaster}' exists."));
            const string endpoint        = "https://twitch.tv/users";
            const string clientId        = "kdrgvhidhfskljecsemphgdhdfgfls";
            const string accept          = "application/json";
            const string displayName     = "BrOaDcAsTeR";
            var          getUserResponse = new GetUsersResponse {
                Users = new List <User> {
                    new User {
                        DisplayName = displayName
                    }
                }
            };

            _TwitchWrapper.Setup(s => s.GetUsers(endpoint, clientId, accept, broadcaster)).ReturnsAsync(getUserResponse);
            _Log.Setup(s => s.LogInformation($"Found broadcaster '{broadcaster}' with display name '{displayName}'."));
            _Log.Setup(s => s.LogInformation($"Posting broadcaster config for channel '{channelId}' broadcaster '{displayName}'."));
            var inputContainer  = new BroadcasterConfigContainer();
            var outputContainer = new ChannelConfigContainer();

            _Context.Setup(s => s.SetBroadcasterConfigAsync(channelId, displayName, inputContainer)).ReturnsAsync(outputContainer);
            _Log.Setup(s => s.LogInformation($"Posted broadcaster config for channel '{channelId}' broadcaster '{displayName}'."));
            var result = await _Helper.PostBroadcasterConfigAsync(endpoint, clientId, accept, channelId, broadcaster, inputContainer);

            _Log.VerifyAll();
            _TwitchWrapper.VerifyAll();
            _Context.VerifyAll();
            Assert.That(result.ErrorMessage, Is.Null.Or.Empty);
            Assert.That(result.ChannelConfigContainer, Is.EqualTo(outputContainer));
        }
        public static async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = "channels/{channelid:decimal}/broadcasters/{broadcaster}")] HttpRequest req, decimal channelId, string broadcaster, ILogger log)
        {
            var getUsersEndpoint = Environment.GetEnvironmentVariable("TwitchGetUsersEndpoint");
            var clientId         = Environment.GetEnvironmentVariable("TwitchClientId");
            var accept           = Environment.GetEnvironmentVariable("TwitchAcceptHeaderValue");
            var connectionString = Environment.GetEnvironmentVariable("TopTwitchClipBotConnectionString");
            var container        = await req.Body.ReadToEndAsync <BroadcasterConfigContainer>();

            var logWrapper = new LoggerWrapper(log);
            PostBroadcasterConfigResponse result;

            using (var twitchWrapper = new TwitchWrapper())
                using (var context = new TopTwitchClipBotContext(connectionString))
                {
                    var helper = new PostBroadcasterConfigHelper(logWrapper, context, twitchWrapper);
                    result = await helper.PostBroadcasterConfigAsync(getUsersEndpoint, clientId, accept, channelId, broadcaster, container);
                }
            return(new OkObjectResult(result));
        }