import 'dart:developer'; import 'package:http/http.dart' as http; import '../config/api_response.dart'; import '../config/constants/app_constant.dart'; class PasswordServices { Future changePasswordFirstStep({ required Map queryParams, }) async { final uri = Uri.https(url, '/api/v1/auth/reset_password_first_step', queryParams); try { final response = await http.post( uri, headers: { 'Accept': 'application/json', }, ).timeout( const Duration(seconds: 30), onTimeout: () => throw Exception('Request timeout'), ); return response; } catch (e) { print('❌ Network error: $e'); rethrow; } } Future validateResetCodeSecondStep({ required Map queryParams, }) async { final uri = Uri.https(url, '/api/v1/auth/validate_reset_code_second_step', queryParams); try { final response = await http.post( uri, headers: { 'Accept': 'application/json', }, ).timeout( const Duration(seconds: 30), onTimeout: () => throw Exception('Request timeout'), ); return response; } catch (e) { print('❌ Network error: $e'); rethrow; } } Future changePasswordFinalStep({ required Map queryParams, }) async { final uri = Uri.https(url, '/api/v1/auth/change_password_final_step', queryParams); try { final response = await http.post( uri, headers: { 'Accept': 'application/json', }, ).timeout( const Duration(seconds: 30), onTimeout: () => throw Exception('Request timeout'), ); return response; } catch (e) { print('❌ Network error: $e'); rethrow; } } Future phoneForgetPassword(String inPhoneNumber) async { try { final response = await http.post( Uri.https(url, '/api/auth_otp/reset_password_first_step', {"phoneNumber": inPhoneNumber}), headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', }, ); if (response.statusCode == 200 || response.statusCode == 201) { return APIResponse(statusCode: response.statusCode, data: response); } else { return APIResponse( statusCode: response.statusCode, errorMessage: 'Please check your info', ); } } catch (e, stackTrace) { log("Error: $e"); log("StackTrace: $stackTrace"); return APIResponse( statusCode: 500, errorMessage: 'No internet connection'); } } }