using System.Text.Json; using HermesSocketLibrary.Requests.Messages; using Serilog; using TwitchChatTTS.Chat.Groups; namespace TwitchChatTTS.Hermes.Socket.Requests { public class UpdateGroupChatterAck : IRequestAck { public string Name => "update_group_chatter"; private readonly IChatterGroupManager _groups; private readonly JsonSerializerOptions _options; private readonly ILogger _logger; public UpdateGroupChatterAck(IChatterGroupManager groups, JsonSerializerOptions options, ILogger logger) { _groups = groups; _options = options; _logger = logger; } public void Acknowledge(string requestId, string? json, IDictionary? requestData) { if (string.IsNullOrWhiteSpace(json)) { _logger.Warning($"Group Chatter JSON data is null."); return; } var groupChatter = JsonSerializer.Deserialize(json, _options); if (groupChatter == null) { _logger.Warning($"Group Chatter data is null."); return; } _groups.Add(groupChatter.ChatterId, groupChatter.GroupId); _logger.Information($"Chatter has been updated [chatter label: {groupChatter.ChatterLabel}]"); } } }