add refresh token
This commit is contained in:
@@ -18,8 +18,8 @@ abstract class AuthRemoteDataSource {
|
||||
/// Get current user profile
|
||||
Future<UserModel> getProfile();
|
||||
|
||||
/// Refresh access token
|
||||
Future<AuthResponseModel> refreshToken();
|
||||
/// Refresh access token using refresh token
|
||||
Future<AuthResponseModel> refreshToken(String refreshToken);
|
||||
}
|
||||
|
||||
/// Implementation of AuthRemoteDataSource
|
||||
@@ -119,21 +119,28 @@ class AuthRemoteDataSourceImpl implements AuthRemoteDataSource {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<AuthResponseModel> refreshToken() async {
|
||||
Future<AuthResponseModel> refreshToken(String refreshToken) async {
|
||||
try {
|
||||
final response = await dioClient.post(ApiConstants.refreshToken);
|
||||
print('📡 DataSource: Calling refresh token API...');
|
||||
final response = await dioClient.post(
|
||||
ApiConstants.refreshToken,
|
||||
data: {'refreshToken': refreshToken},
|
||||
);
|
||||
|
||||
if (response.statusCode == ApiConstants.statusOk) {
|
||||
// API returns nested structure: {success, data: {access_token, user}, message}
|
||||
// API returns nested structure: {success, data: {access_token, refresh_token, user}, message}
|
||||
// Extract the 'data' object
|
||||
final responseData = response.data['data'] as Map<String, dynamic>;
|
||||
print('📡 DataSource: Token refreshed successfully');
|
||||
return AuthResponseModel.fromJson(responseData);
|
||||
} else {
|
||||
throw ServerException('Token refresh failed with status: ${response.statusCode}');
|
||||
}
|
||||
} on DioException catch (e) {
|
||||
print('❌ DataSource: Refresh token failed - ${e.message}');
|
||||
throw _handleDioError(e);
|
||||
} catch (e) {
|
||||
print('❌ DataSource: Unexpected error refreshing token: $e');
|
||||
throw ServerException('Unexpected error refreshing token: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user