From 5fabfbfadd2dff81d921f8377eaafae23cfc39a9 Mon Sep 17 00:00:00 2001 From: cryptooda Date: Thu, 31 Jul 2025 20:58:37 +0700 Subject: [PATCH] fix backtest credit --- .../Backtesting/Backtester.cs | 1 + .../Services/KaigenService.cs | 41 +++++++++---------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/Managing.Application/Backtesting/Backtester.cs b/src/Managing.Application/Backtesting/Backtester.cs index d0574af..f42515b 100644 --- a/src/Managing.Application/Backtesting/Backtester.cs +++ b/src/Managing.Application/Backtesting/Backtester.cs @@ -99,6 +99,7 @@ namespace Managing.Application.Backtesting try { var candles = GetCandles(config.Ticker, config.Timeframe, startDate, endDate); + throw new Exception(); return await RunBacktestWithCandles(config, candles, user, save, withCandles, requestId, metadata); } catch (Exception ex) diff --git a/src/Managing.Infrastructure.Web3/Services/KaigenService.cs b/src/Managing.Infrastructure.Web3/Services/KaigenService.cs index 6e46d08..1c499bb 100644 --- a/src/Managing.Infrastructure.Web3/Services/KaigenService.cs +++ b/src/Managing.Infrastructure.Web3/Services/KaigenService.cs @@ -99,25 +99,15 @@ public class KaigenService : IKaigenService "Debiting {Amount} credits for user {UserName} (wallet: {WalletAddress}) with request ID {RequestId}", debitAmount, user.Name, walletAddress, requestId); - var response = await SendAuthenticatedRequestAsync( + var result = await SendAuthenticatedRequestAsync( $"{_settings.BaseUrl}{_settings.DebitEndpoint}", requestPayload, user); - if (!response.IsSuccessStatusCode) + if (!result.Success) { - var errorContent = await response.Content.ReadAsStringAsync(); - _logger.LogError("Failed to debit credits. Status: {StatusCode}, Error: {Error}", - response.StatusCode, errorContent); - throw new Exception($"Failed to debit credits: {response.StatusCode} - {errorContent}"); - } - - var result = await response.Content.ReadFromJsonAsync(_jsonOptions); - - if (result == null || !result.Success) - { - _logger.LogError("Debit request failed: {Message}", result?.Message ?? "Unknown error"); - throw new Exception($"Debit request failed: {result?.Message}"); + _logger.LogError("Debit request failed: {Message}", result.Message); + throw new Exception($"Debit request failed: {result.Message}"); } _logger.LogInformation( @@ -157,16 +147,14 @@ public class KaigenService : IKaigenService "Refunding credits for user {UserName} (wallet: {WalletAddress}) with request ID {RequestId}", user.Name, walletAddress, requestId); - var response = await SendAuthenticatedRequestAsync( + var result = await SendAuthenticatedRequestAsync( $"{_settings.BaseUrl}{_settings.RefundEndpoint}", requestPayload, user); - if (!response.IsSuccessStatusCode) + if (!result.Success) { - var errorContent = await response.Content.ReadAsStringAsync(); - _logger.LogError("Failed to refund credits. Status: {StatusCode}, Error: {Error}", - response.StatusCode, errorContent); + _logger.LogError("Failed to refund credits: {Message}", result.Message); return false; } @@ -181,7 +169,7 @@ public class KaigenService : IKaigenService } } - private async Task SendAuthenticatedRequestAsync(string url, object payload, User user) + private async Task SendAuthenticatedRequestAsync(string url, object payload, User user) { // Create the auth token: "walletaddress-username" var authToken = $"{GetUserWalletAddress(user)}-{user.Name}"; @@ -200,7 +188,18 @@ public class KaigenService : IKaigenService }; request.Headers.Authorization = new AuthenticationHeaderValue("Basic", base64Auth); - return await _httpClient.SendAsync(request); + var response = await _httpClient.SendAsync(request); + + if (!response.IsSuccessStatusCode) + { + var errorContent = await response.Content.ReadAsStringAsync(); + _logger.LogError("Request failed. Status: {StatusCode}, Error: {Error}", + response.StatusCode, errorContent); + return new KaigenResponse { Success = false, Message = $"HTTP {response.StatusCode}: {errorContent}" }; + } + + var result = await response.Content.ReadFromJsonAsync(_jsonOptions); + return result ?? new KaigenResponse { Success = false, Message = "Failed to parse response" }; } private string GetUserWalletAddress(User user)