feat(trades): add live execution cockpit, closing cockpit, calculation cards and precision trade settings
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:finlytic_app/core/network/api_client.dart';
|
||||
import 'package:finlytic_app/features/trades/models/trade_model.dart';
|
||||
import 'package:finlytic_app/features/trades/models/trade_acceptance_dto.dart';
|
||||
import 'package:finlytic_app/features/trades/models/close_trade_request_dto.dart';
|
||||
import 'package:finlytic_app/features/trades/models/derivative_item_model.dart';
|
||||
|
||||
class TradeRepository {
|
||||
final ApiClient apiClient;
|
||||
@@ -29,6 +30,42 @@ class TradeRepository {
|
||||
}
|
||||
}
|
||||
|
||||
Future<List<DerivativeItemModel>> fetchDerivatives(
|
||||
String isin, {
|
||||
String optionType = 'long',
|
||||
double? targetLeverage,
|
||||
double? minLeverage,
|
||||
double? maxLeverage,
|
||||
String? search,
|
||||
String? after,
|
||||
int? page,
|
||||
bool forceRefresh = false,
|
||||
}) async {
|
||||
try {
|
||||
final queryParams = <String, dynamic>{
|
||||
'optionType': optionType,
|
||||
if (targetLeverage != null && targetLeverage > 0) 'targetLeverage': targetLeverage,
|
||||
if (minLeverage != null) 'minLeverage': minLeverage,
|
||||
if (maxLeverage != null) 'maxLeverage': maxLeverage,
|
||||
if (search != null && search.isNotEmpty) 'search': search,
|
||||
if (after != null && after.isNotEmpty) 'after': after,
|
||||
if (page != null) 'page': page,
|
||||
if (forceRefresh) 'forceRefresh': 'true',
|
||||
'_t': DateTime.now().millisecondsSinceEpoch,
|
||||
};
|
||||
|
||||
final response = await apiClient.get('/api/v1/assets/$isin/derivatives', queryParameters: queryParams);
|
||||
|
||||
if (response.statusCode == 200 && response.data != null) {
|
||||
final List<dynamic> data = response.data;
|
||||
return data.map((json) => DerivativeItemModel.fromJson(json)).toList();
|
||||
}
|
||||
return [];
|
||||
} catch (e) {
|
||||
throw Exception('Derivate konnten nicht geladen werden: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> acceptTrade(TradeAcceptanceDto dto) async {
|
||||
final response = await apiClient.post('/api/v1/user/trades/accept', data: dto.toJson());
|
||||
if (response.statusCode != 200) {
|
||||
@@ -50,3 +87,4 @@ class TradeRepository {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user