import 'dart:convert'; import '../constants/api_constants.dart'; import 'http_service.dart'; import 'auth_service.dart'; class UserService { static Future> getCurrentUser({bool forceRefresh = false}) async { if (!forceRefresh) { final cachedData = await AuthService.getCachedUserData(); if (cachedData != null) { return {'success': true, 'data': cachedData}; } } try { final response = await HttpService.get(ApiConstants.getUserEndpoint); if (response.statusCode == 200) { final data = jsonDecode(response.body); await AuthService.saveUserData(data); return {'success': true, 'data': data}; } else if (response.statusCode == 401) { return {'success': false, 'message': 'Session expired. Please login again.'}; } else if (response.statusCode == 403) { return {'success': false, 'message': 'Access denied. Invalid credentials.'}; } else { return {'success': false, 'message': 'Server error (${response.statusCode})'}; } } catch (e) { print('Error fetching user: $e'); return {'success': false, 'message': 'Network error. Please check your connection.'}; } } }