import 'dart:convert'; import 'dart:developer' as dev; import 'package:http/http.dart' as http; import 'package:shared_preferences/shared_preferences.dart'; import '../Provider/utils_singleton.dart'; import '../config/api_response.dart'; import '../config/constants/app_constant.dart'; import '../models/AboutUsItem.dart'; class AboutUsService { Future> fetchAboutUs() async { final uri = Uri.https(url, '/api/v1/public/get_about_us'); final response = await http.get( uri, headers: { 'Authorization': 'Bearer ${utils.token}', 'Content-Type': 'application/json', 'Accept': 'application/json', 'Accept-Charset': 'utf-8', }, ); if (response.statusCode == 200) { final String responseBody = utf8.decode(response.bodyBytes); final List data = jsonDecode(responseBody); return data.map((e) => AboutUsItem.fromJson(e)).toList(); } else { throw Exception('Failed to load About Us data'); } } Future>> fetchTermsCondition() async { try { final uri = Uri.https(url, '/api/v1/public/get_privacy_policy'); final response = await http.get( uri, headers: { 'Authorization': 'Bearer ${utils.token}', 'Content-Type': 'application/json', 'Accept': 'application/json', 'Accept-Charset': 'utf-8', }, ); if (response.statusCode == 200) { final String responseBody = utf8.decode(response.bodyBytes); final data = jsonDecode(responseBody); final List list = (data as List) // cast to List .map((e) => AboutUsItem.fromJson( e as Map)) // map each item .toList(); return APIResponse>( statusCode: response.statusCode, data: list); } else { return APIResponse>( statusCode: response.statusCode, errorMessage: 'Failed to load Terms & Condition (HTTP ${response.statusCode})', ); } } catch (e, st) { dev.log('fetchTermsCondition() error', error: e, stackTrace: st); return APIResponse>( errorMessage: e.toString(), ); } } }