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()); }
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); } }