import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:shared_preferences/shared_preferences.dart'; import '../../../core/constants/api_constants.dart'; class AuthService { Future> login(String email, String password) async { try { final response = await http.post( Uri.parse('${ApiConstants.liveBaseUrl}/auth/login'), headers: {'Content-Type': 'application/json'}, body: jsonEncode({'email': email, 'password': password}), ); final data = jsonDecode(response.body); if (response.statusCode == 200 || response.statusCode == 201) { // Save token final prefs = await SharedPreferences.getInstance(); if (data['token'] != null) { await prefs.setString('token', data['token']); } if (data['user'] != null) { await prefs.setString('user_details', jsonEncode(data['user'])); if (data['user']['email'] != null) { await prefs.setString('user_email', data['user']['email']); } } return {'success': true, 'data': data}; } else { return {'success': false, 'message': data['error'] ?? 'Login failed'}; } } catch (e) { return {'success': false, 'message': e.toString()}; } } Future> signup(Map data) async { try { final response = await http.post( Uri.parse('${ApiConstants.liveBaseUrl}/auth/signup'), headers: {'Content-Type': 'application/json'}, body: jsonEncode(data), ); final responseData = jsonDecode(response.body); if (response.statusCode == 200 || response.statusCode == 201) { return {'success': true, 'data': responseData}; } else { return { 'success': false, 'message': responseData['error'] ?? 'Signup failed' }; } } catch (e) { return {'success': false, 'message': e.toString()}; } } }