- Fixed trading history not showing closed positions with positive P&L - Implemented multi-source trading history fetching (SDK, Data API, DLOB, local DB) - Added proper P&L calculation using unrealized PnL from Drift positions - Enhanced TradingHistory component with error handling and sync functionality - Added manual sync button and better status messages - Created /api/drift/sync-trades endpoint for manual trade synchronization - Fixed database integration to properly store and retrieve trades with P&L - Added comprehensive fallback mechanisms for data fetching - Improved error messages and user feedback - Added TRADING_HISTORY_IMPROVEMENTS.md documentation This addresses the issue where recently closed positions with positive P&L were not appearing in the trading history section.
47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import { NextResponse } from 'next/server'
|
|
import { driftTradingService } from '../../../../lib/drift-trading'
|
|
|
|
export async function GET(request: Request) {
|
|
try {
|
|
const { searchParams } = new URL(request.url)
|
|
const limit = parseInt(searchParams.get('limit') || '50')
|
|
|
|
console.log('📊 API: Getting Drift trading history...')
|
|
|
|
const tradingHistory = await driftTradingService.getTradingHistory(limit)
|
|
|
|
// If no trades found, provide helpful message
|
|
if (tradingHistory.length === 0) {
|
|
console.log('⚠️ No trading history found')
|
|
return NextResponse.json({
|
|
success: true,
|
|
trades: [],
|
|
count: 0,
|
|
message: 'No trading history found. If you recently closed positions, they may take some time to appear in history.'
|
|
})
|
|
}
|
|
|
|
console.log(`✅ Successfully fetched ${tradingHistory.length} trades`)
|
|
|
|
return NextResponse.json({
|
|
success: true,
|
|
trades: tradingHistory,
|
|
count: tradingHistory.length,
|
|
message: `Found ${tradingHistory.length} trade(s)`
|
|
})
|
|
|
|
} catch (error: any) {
|
|
console.error('❌ API: Error getting trading history:', error)
|
|
return NextResponse.json(
|
|
{
|
|
success: false,
|
|
error: error.message,
|
|
trades: [],
|
|
count: 0,
|
|
message: 'Failed to fetch trading history. Please try again.'
|
|
},
|
|
{ status: 500 }
|
|
)
|
|
}
|
|
}
|