refactor: save current workspace state including FinlyticAnalyzer fixes, FinlyticApp trade route alignment, and DTO audit documentation
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import 'package:finlytic_app/core/network/api_client.dart';
|
||||
import 'package:finlytic_app/features/asset_detail/models/asset_model.dart';
|
||||
|
||||
import 'package:finlytic_app/features/asset_detail/models/fundamental_data_model.dart';
|
||||
import 'package:finlytic_app/features/asset_detail/models/technical_analysis_model.dart';
|
||||
import 'package:finlytic_app/features/asset_detail/models/manual_analysis_request_dto.dart';
|
||||
@@ -11,56 +11,9 @@ class AssetRepository {
|
||||
|
||||
AssetRepository({required this.apiClient});
|
||||
|
||||
Future<void> forceRefreshFundamentalData(String symbol) async {
|
||||
try {
|
||||
await apiClient.post('/api/v1/assets/$symbol/refresh');
|
||||
} catch (e) {
|
||||
print('Error forcing refresh: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<FundamentalDataModel?> getFundamentalData(String symbol) async {
|
||||
try {
|
||||
final res = await apiClient.get('/api/v1/assets/fundamentals/$symbol');
|
||||
if (res.statusCode == 200 && res.data != null) {
|
||||
return FundamentalDataModel.fromJson(res.data);
|
||||
}
|
||||
} catch (e) {
|
||||
print('Error fetching fundamentals for $symbol: $e');
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Future<TechnicalAnalysisModel?> getTechnicalAnalysis(String symbol) async {
|
||||
try {
|
||||
final res = await apiClient.get('/api/v1/ta/$symbol');
|
||||
if (res.statusCode == 200 && res.data != null) {
|
||||
return TechnicalAnalysisModel.fromJson(res.data);
|
||||
}
|
||||
} catch (e) {
|
||||
print('Error fetching TA for $symbol: $e');
|
||||
}
|
||||
return null;
|
||||
}
|
||||
Future<AssetModel?> getAssetHeader(String isin, {String? exchange, String? ticker}) async {
|
||||
try {
|
||||
String url = '/api/v1/assets/header/$isin?';
|
||||
if (ticker != null && ticker.isNotEmpty) {
|
||||
url += 'ticker=$ticker';
|
||||
}
|
||||
final res = await apiClient.get(url);
|
||||
if (res.statusCode == 200 && res.data != null) {
|
||||
return AssetModel.fromJson(res.data);
|
||||
}
|
||||
} catch (e) {
|
||||
print('Error fetching asset header for $isin: $e');
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Future<FundamentalDataModel?> getAssetFundamentals(String isin, bool forceRefresh, {String? ticker}) async {
|
||||
try {
|
||||
String url = '/api/v1/assets/fundamentals/$isin?forceRefresh=$forceRefresh';
|
||||
String url = '/api/v1/assets/$isin/fundamentals?forceRefresh=$forceRefresh';
|
||||
if (ticker != null && ticker.isNotEmpty) {
|
||||
url += '&ticker=$ticker';
|
||||
}
|
||||
@@ -76,7 +29,7 @@ class AssetRepository {
|
||||
|
||||
Future<TechnicalAnalysisModel?> getAssetTechnical(String isin, bool forceRefresh, {String? ticker}) async {
|
||||
try {
|
||||
String url = '/api/v1/ta/$isin?forceRefresh=$forceRefresh';
|
||||
String url = '/api/v1/assets/$isin/technicals?forceRefresh=$forceRefresh';
|
||||
if (ticker != null && ticker.isNotEmpty) {
|
||||
url += '&ticker=$ticker';
|
||||
}
|
||||
@@ -92,7 +45,7 @@ class AssetRepository {
|
||||
|
||||
Future<List<TradeModel>> getAssetTrades(String isin, String? status) async {
|
||||
try {
|
||||
String url = '/api/v1/trades?isin=$isin';
|
||||
String url = '/api/v1/user/trades?isin=$isin';
|
||||
if (status != null) url += '&status=$status';
|
||||
final res = await apiClient.get(url);
|
||||
if (res.statusCode == 200 && res.data != null) {
|
||||
|
||||
Reference in New Issue
Block a user