29 lines
969 B
Dart
29 lines
969 B
Dart
import 'package:finlytic_app/core/network/api_client.dart';
|
|
import 'package:finlytic_app/features/search/models/search_result_model.dart';
|
|
import 'package:finlytic_app/core/utils/asset_utils.dart';
|
|
|
|
class SearchRepository {
|
|
final ApiClient apiClient;
|
|
|
|
SearchRepository({required this.apiClient});
|
|
|
|
Future<List<SearchResultModel>> searchAssets(String query) async {
|
|
try {
|
|
final res = await apiClient.get('/api/v1/assets/search', queryParameters: {'q': query});
|
|
if (res.statusCode == 200 && res.data != null) {
|
|
final list = res.data as List;
|
|
final results = list.map((json) => SearchResultModel.fromJson(json)).toList();
|
|
for (final item in results) {
|
|
if (item.isinCode.isNotEmpty && item.displayName.isNotEmpty) {
|
|
AssetUtils.registerAsset(item.isinCode, item.displayName, item.image);
|
|
}
|
|
}
|
|
return results;
|
|
}
|
|
return [];
|
|
} catch (_) {
|
|
return [];
|
|
}
|
|
}
|
|
}
|