diff --git a/Tools/BiblioTech/Rewards/ChainActivityHandler.cs b/Tools/BiblioTech/Rewards/ChainActivityHandler.cs index 1541bde8..66fe5e63 100644 --- a/Tools/BiblioTech/Rewards/ChainActivityHandler.cs +++ b/Tools/BiblioTech/Rewards/ChainActivityHandler.cs @@ -16,27 +16,12 @@ namespace BiblioTech.Rewards this.repo = repo; } - public async Task Process(ActiveChainAddresses activeChainAddresses) + public async Task ProcessChainActivity(ActiveChainAddresses activeChainAddresses) { - if (!activeChainAddresses.HasAny()) - { - Log("Received empty activeChainAddresses."); - return; - } - + if (!activeChainAddresses.HasAny()) return; var activeUserIds = ConvertToUserIds(activeChainAddresses); - if (!activeUserIds.HasAny()) - { - Log("Empty userIds after lookup of addresses: " + activeChainAddresses); - return; - } - - if (!HasChanged(activeUserIds)) - { - Log("Active userIds has not changed: " + activeUserIds); - return; - } - + if (!activeUserIds.HasAny()) return; + if (!HasChanged(activeUserIds)) return; await GiveAndRemoveRoles(activeUserIds); } diff --git a/Tools/BiblioTech/Rewards/RewardController.cs b/Tools/BiblioTech/Rewards/RewardController.cs index 7a4b8aa3..93e9b008 100644 --- a/Tools/BiblioTech/Rewards/RewardController.cs +++ b/Tools/BiblioTech/Rewards/RewardController.cs @@ -38,16 +38,22 @@ namespace BiblioTech.Rewards [HttpPost] public async Task Give(EventsAndErrors cmd) + { + await Safe(() => Program.ChainActivityHandler.ProcessChainActivity(cmd.ActiveChainAddresses)); + await Safe(() => Program.EventsSender.ProcessChainEvents(cmd.EventsOverview, cmd.Errors)); + return "OK"; + } + + private async Task Safe(Func action) { try { - await Program.EventsSender.ProcessChainEvents(cmd.EventsOverview, cmd.Errors); + await action(); } catch (Exception ex) { Program.Log.Error("Exception: " + ex); } - return "OK"; } } }