fix backtest credit

This commit is contained in:
2025-07-31 20:58:37 +07:00
parent 857ca348ba
commit 5fabfbfadd
2 changed files with 21 additions and 21 deletions

View File

@@ -99,6 +99,7 @@ namespace Managing.Application.Backtesting
try try
{ {
var candles = GetCandles(config.Ticker, config.Timeframe, startDate, endDate); var candles = GetCandles(config.Ticker, config.Timeframe, startDate, endDate);
throw new Exception();
return await RunBacktestWithCandles(config, candles, user, save, withCandles, requestId, metadata); return await RunBacktestWithCandles(config, candles, user, save, withCandles, requestId, metadata);
} }
catch (Exception ex) catch (Exception ex)

View File

@@ -99,25 +99,15 @@ public class KaigenService : IKaigenService
"Debiting {Amount} credits for user {UserName} (wallet: {WalletAddress}) with request ID {RequestId}", "Debiting {Amount} credits for user {UserName} (wallet: {WalletAddress}) with request ID {RequestId}",
debitAmount, user.Name, walletAddress, requestId); debitAmount, user.Name, walletAddress, requestId);
var response = await SendAuthenticatedRequestAsync( var result = await SendAuthenticatedRequestAsync(
$"{_settings.BaseUrl}{_settings.DebitEndpoint}", $"{_settings.BaseUrl}{_settings.DebitEndpoint}",
requestPayload, requestPayload,
user); user);
if (!response.IsSuccessStatusCode) if (!result.Success)
{ {
var errorContent = await response.Content.ReadAsStringAsync(); _logger.LogError("Debit request failed: {Message}", result.Message);
_logger.LogError("Failed to debit credits. Status: {StatusCode}, Error: {Error}", throw new Exception($"Debit request failed: {result.Message}");
response.StatusCode, errorContent);
throw new Exception($"Failed to debit credits: {response.StatusCode} - {errorContent}");
}
var result = await response.Content.ReadFromJsonAsync<KaigenResponse>(_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.LogInformation( _logger.LogInformation(
@@ -157,16 +147,14 @@ public class KaigenService : IKaigenService
"Refunding credits for user {UserName} (wallet: {WalletAddress}) with request ID {RequestId}", "Refunding credits for user {UserName} (wallet: {WalletAddress}) with request ID {RequestId}",
user.Name, walletAddress, requestId); user.Name, walletAddress, requestId);
var response = await SendAuthenticatedRequestAsync( var result = await SendAuthenticatedRequestAsync(
$"{_settings.BaseUrl}{_settings.RefundEndpoint}", $"{_settings.BaseUrl}{_settings.RefundEndpoint}",
requestPayload, requestPayload,
user); user);
if (!response.IsSuccessStatusCode) if (!result.Success)
{ {
var errorContent = await response.Content.ReadAsStringAsync(); _logger.LogError("Failed to refund credits: {Message}", result.Message);
_logger.LogError("Failed to refund credits. Status: {StatusCode}, Error: {Error}",
response.StatusCode, errorContent);
return false; return false;
} }
@@ -181,7 +169,7 @@ public class KaigenService : IKaigenService
} }
} }
private async Task<HttpResponseMessage> SendAuthenticatedRequestAsync(string url, object payload, User user) private async Task<KaigenResponse> SendAuthenticatedRequestAsync(string url, object payload, User user)
{ {
// Create the auth token: "walletaddress-username" // Create the auth token: "walletaddress-username"
var authToken = $"{GetUserWalletAddress(user)}-{user.Name}"; var authToken = $"{GetUserWalletAddress(user)}-{user.Name}";
@@ -200,7 +188,18 @@ public class KaigenService : IKaigenService
}; };
request.Headers.Authorization = new AuthenticationHeaderValue("Basic", base64Auth); 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<KaigenResponse>(_jsonOptions);
return result ?? new KaigenResponse { Success = false, Message = "Failed to parse response" };
} }
private string GetUserWalletAddress(User user) private string GetUserWalletAddress(User user)