From c71ff70ffec328935b9ca4492e313b4a480d7ec7 Mon Sep 17 00:00:00 2001 From: HampusM Date: Fri, 9 Sep 2022 20:34:03 +0200 Subject: fix: handle get auth token errors --- src/client.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/client.rs') diff --git a/src/client.rs b/src/client.rs index 179377f..b814a52 100644 --- a/src/client.rs +++ b/src/client.rs @@ -198,10 +198,19 @@ impl DeezerClient return Err(DeezerClientError::ReceivedErrorResponse(err_body.error)); } - let access_token_response: AccessTokenResponse = serde_json::from_slice(body_buf) - .map_err(DeezerClientError::ParseResponseFailed)?; + let access_token_response_result = + serde_json::from_slice::(body_buf); + + if let Ok(access_token_response) = access_token_response_result { + Ok(access_token_response.into()) + } else { + let body_str = std::str::from_utf8(body_buf) + .map_err(|_| DeezerClientError::AuthErrorResponseNotUTF8)?; - Ok(access_token_response.into()) + Err(DeezerClientError::ReceivedAuthErrorResponse( + body_str.to_string(), + )) + } } fn build_endpoint_uri( -- cgit v1.2.3-18-g5258