Exemplo n.º 1
0
        public async Task <IActionResult> UpdateTwitchPlugin([FromRoute] string guildId,
                                                             [FromBody] TwitchPluginDto twitchPluginDto)
        {
            var result =
                await _pluginService.UpdateTwitchPluginAsync(guildId, twitchPluginDto,
                                                             await _userManager.GetUserAsync(User));

            if (!result)
            {
                return(BadRequest());
            }

            return(Ok());
        }
Exemplo n.º 2
0
        public async Task <bool> UpdateTwitchPluginAsync(string guildId, TwitchPluginDto twitchPluginDto, User user)
        {
            try
            {
                var guild = await _guildService.GetByGuildIdAsync(guildId);

                var discordGuild = await _botService.GetGuildAsync(guildId);

                var member = await discordGuild.GetMemberAsync(ulong.Parse(user.UserId));

                var hasPermission = await CheckIfHasPermissionAsync(member, discordGuild, guild);

                guild.TwitchPlugin.TwitchChannelSubscriptions = twitchPluginDto.TwitchChannelSubscriptions;

                if (!hasPermission)
                {
                    return(false);
                }

                if (twitchPluginDto.IsEnabled != guild.TwitchPlugin.IsEnabled)
                {
                    guild.TwitchPlugin.IsEnabled = twitchPluginDto.IsEnabled;
                }

                var initiator =
                    await _userService.GetByUsernameAndDiscriminatorAsync(user.UserName, user.Discriminator);

                // TODO: log

                await _pluginRepository.SaveAllAsync();

                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(false);
            }
        }