import 'dart:convert'; import 'package:afterwork/data/models/user_model.dart'; import 'package:afterwork/core/constants/urls.dart'; import 'package:http/http.dart' as http; import '../../core/errors/exceptions.dart'; class UserRemoteDataSource { final http.Client client; UserRemoteDataSource(this.client); Future authenticateUser(String email, String password) async { if (email.isEmpty || password.isEmpty) { throw Exception('Email ou mot de passe vide'); } final response = await client.post( Uri.parse('${Urls.baseUrl}/users/authenticate'), headers: {'Content-Type': 'application/json'}, body: jsonEncode({ 'email': email, 'motDePasse': password, }), ); if (response.statusCode == 200) { final jsonResponse = json.decode(response.body); return UserModel.fromJson(jsonResponse); } else if (response.statusCode == 401) { throw AuthenticationException('Email ou mot de passe incorrect'); } else { throw ServerException(); } } Future getUser(String id) async { final response = await client.get(Uri.parse('${Urls.baseUrl}/user/$id')); if (response.statusCode == 200) { return UserModel.fromJson(json.decode(response.body)); } else { throw ServerException(); } } }