using System.Text.Json; using HermesSocketLibrary.Requests.Messages; using Serilog; using TwitchChatTTS.Twitch.Redemptions; namespace TwitchChatTTS.Hermes.Socket.Requests { public class CreateRedeemableActionAck : IRequestAck { public string Name => "create_redeemable_action"; private readonly IRedemptionManager _redemptions; private readonly JsonSerializerOptions _options; private readonly ILogger _logger; public CreateRedeemableActionAck(IRedemptionManager redemptions, JsonSerializerOptions options, ILogger logger) { _redemptions = redemptions; _options = options; _logger = logger; } public void Acknowledge(string requestId, string json, IDictionary? requestData) { var action = JsonSerializer.Deserialize(json, _options); if (action == null) { _logger.Warning($"Redeemable action data received is null."); return; } _redemptions.Add(action); _logger.Information($"A new redeemable action has been created [action name: {action.Name}]"); } } }