import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:shared_preferences/shared_preferences.dart'; class KasbonApi { static const String baseUrl = 'https://ta.myhost.id/E31230906/api'; static const Duration timeoutDuration = Duration(seconds: 30); Future _getToken() async { final prefs = await SharedPreferences.getInstance(); return prefs.getString('access_token'); } Future _getIdTeknisi() async { final prefs = await SharedPreferences.getInstance(); return prefs.getInt('id_teknisi'); } Future> getRiwayat() async { try { final token = await _getToken(); final idTeknisi = await _getIdTeknisi(); final response = await http.get( Uri.parse('$baseUrl/kasbon/riwayat?id_teknisi=$idTeknisi'), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer $token', }, ).timeout(timeoutDuration); return jsonDecode(response.body); } catch (e) { return {'success': false, 'message': e.toString()}; } } Future> getStatistik() async { try { final token = await _getToken(); final idTeknisi = await _getIdTeknisi(); // Dashboard API also contains this info final response = await http.get( Uri.parse('$baseUrl/kasbon/statistik?id_teknisi=$idTeknisi'), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer $token', }, ).timeout(timeoutDuration); return jsonDecode(response.body); } catch (e) { return {'success': false, 'message': e.toString()}; } } }