// ignore_for_file: avoid_print import 'dart:convert'; import 'package:didvan/models/home_page_content/swot.dart'; import 'package:didvan/services/network/request.dart'; import 'package:didvan/services/network/request_helper.dart'; import 'package:http/http.dart' as http; class SwotService { static Future> fetchSwotItems({ int page = 0, int size = 10, String title = '', }) async { final uri = Uri.parse('${RequestHelper.baseUrl2}/api/swot').replace( queryParameters: { 'page': page.toString(), 'size': size.toString(), if (title.isNotEmpty) 'title': title, }, ); print("Requesting SWOT URL: $uri"); final response = await http.get( uri, headers: { 'Authorization': 'Bearer ${RequestService.token}', }, ); print("Status Code: ${response.statusCode}"); final decodedBody = utf8.decode(response.bodyBytes); // print("Decoded Response Body: $decodedBody"); if (response.statusCode == 200) { final jsonData = json.decode(decodedBody); if (jsonData['content'] == null || jsonData['content'] is! List) { throw Exception('The data structure is wrong.'); } final List items = jsonData['content']; return items.map((e) => SwotItem.fromJson(e)).toList(); } else { throw Exception( 'Error receiving data - statusCode: ${response.statusCode}'); } } }