PMU_PIbd32_Kamcharova_K.A/lib/utils/character_service.dart

40 lines
1.7 KiB
Dart
Raw Normal View History

2024-12-03 16:42:54 +04:00
import 'dart:convert';
import 'package:http/http.dart' as http;
import '../models/character.dart';
2024-12-03 16:42:54 +04:00
const String baseUrl = 'http://192.168.1.83:5000';
2024-12-03 16:42:54 +04:00
class CharacterService {
2024-12-10 13:41:28 +04:00
// Метод теперь возвращает список CharacterDTO
Future<List<CharacterDTO>> getCharacters({String search = ''}) async {
2024-12-03 16:42:54 +04:00
try {
// Формируем URL с параметром поиска
final uri = Uri.parse('$baseUrl/characters?search=$search');
2024-12-03 16:42:54 +04:00
// Выполняем HTTP-запрос
final response = await http.get(uri);
// Логирование данных для отладки
print('Response status: ${response.statusCode}');
print('Response body: ${response.body}'); // Выводим тело ответа для анализа
// Проверяем успешный ответ от сервера
2024-12-03 16:42:54 +04:00
if (response.statusCode == 200) {
final List<dynamic> data = json.decode(response.body);
print('Characters received: $data'); // Печать данных
2024-12-10 13:41:28 +04:00
// Возвращаем список объектов CharacterDTO
return data.map((item) => CharacterDTO.fromJson(item)).toList();
2024-12-03 16:42:54 +04:00
} else {
// Ошибка, если сервер вернул не 200 статус
print('Error: Server responded with status ${response.statusCode}');
throw Exception('Ошибка загрузки данных с сервера');
2024-12-03 16:42:54 +04:00
}
} catch (e) {
// Обработка ошибок при выполнении запроса
print('Error fetching characters: $e');
2024-12-03 16:42:54 +04:00
throw Exception('Не удалось загрузить персонажей');
}
}
}