using Serilog; using TwitchChatTTS.Twitch.Redemptions; namespace TwitchChatTTS.Hermes.Socket.Requests { public class DeleteRedeemableActionAck : IRequestAck { public string Name => "delete_redeemable_action"; private readonly IRedemptionManager _redemptions; private readonly ILogger _logger; public DeleteRedeemableActionAck(IRedemptionManager redemptions, ILogger logger) { _redemptions = redemptions; _logger = logger; } public void Acknowledge(string requestId, string json, IDictionary? requestData) { if (requestData == null) { _logger.Warning("Request data is null."); return; } var name = requestData["name"].ToString(); if (string.IsNullOrEmpty(name)) { _logger.Warning($"Action name is invalid [action name: {name}]"); return; } if (_redemptions.RemoveAction(name)) _logger.Information($"Deleted a redeemable action [action name: {name}]"); else _logger.Warning($"Failed to delete a redeemable action [action name: {name}]"); } } }