2025-12-30 15:02:51 +05:30

61 lines
2.0 KiB
Dart

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<Map<String, dynamic>> 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<Map<String, dynamic>> signup(Map<String, String> 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()};
}
}
}