Skip to content

Commit ccdc3f3

Browse files
committed
Refactored HTTP request handling
1 parent a004bc0 commit ccdc3f3

File tree

1 file changed

+16
-30
lines changed

1 file changed

+16
-30
lines changed

src/Umbraco.Cms.Integrations.Crm.Dynamics/Controllers/FormsController.cs

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -93,27 +93,23 @@ public async Task<string> GetAccessToken([FromBody] OAuthRequestDto authRequestD
9393
{ "grant_type", "authorization_code" },
9494
{ "client_id", AuthorizationService.ClientId },
9595
{ "redirect_uri", AuthorizationService.RedirectUri },
96-
{ "code", authRequestDto.Code }
96+
{ "code", authRequestDto.Code }
9797
};
9898

99-
string responseContent = string.Empty;
100-
try
99+
var requestMessage = new HttpRequestMessage
101100
{
102-
var requestMessage = new HttpRequestMessage
103-
{
104-
Method = HttpMethod.Post,
105-
RequestUri = new Uri(string.Format(AuthorizationService.OAuthProxyTokenEndpoint, AuthorizationService.OAuthProxyBaseUrl)),
106-
Content = new FormUrlEncodedContent(data)
107-
};
108-
requestMessage.Headers.Add("service_name", AuthorizationService.Service);
109-
110-
var response = await ClientFactory().SendAsync(requestMessage);
111-
112-
responseContent = await response.Content.ReadAsStringAsync();
101+
Method = HttpMethod.Post,
102+
RequestUri = new Uri(string.Format(AuthorizationService.OAuthProxyTokenEndpoint, AuthorizationService.OAuthProxyBaseUrl)),
103+
Content = new FormUrlEncodedContent(data)
104+
};
105+
requestMessage.Headers.Add("service_name", AuthorizationService.Service);
113106

114-
response.EnsureSuccessStatusCode();
107+
var response = await ClientFactory().SendAsync(requestMessage);
108+
if(response.IsSuccessStatusCode)
109+
{
110+
var result = await response.Content.ReadAsStringAsync();
115111

116-
var tokenDto = JsonConvert.DeserializeObject<TokenDto>(responseContent);
112+
var tokenDto = JsonConvert.DeserializeObject<TokenDto>(result);
117113

118114
var identity = await _dynamicsService.GetIdentity(tokenDto.AccessToken);
119115

@@ -122,25 +118,15 @@ public async Task<string> GetAccessToken([FromBody] OAuthRequestDto authRequestD
122118
else
123119
return "Error: " + identity.Error.Message;
124120

125-
return responseContent;
121+
return result;
126122

127-
}
128-
catch (HttpRequestException ex) when (ex.Message.Contains(HttpStatusCode.BadRequest.ToString()))
123+
} else
129124
{
130-
var errorDto = JsonConvert.DeserializeObject<ErrorDto>(responseContent);
125+
var errorResult = await response.Content.ReadAsStringAsync();
126+
var errorDto = JsonConvert.DeserializeObject<ErrorDto>(errorResult);
131127

132128
return "Error: " + errorDto.ErrorDescription;
133129
}
134-
catch (HttpRequestException ex) when (ex.Message.Contains(HttpStatusCode.Unauthorized.ToString()))
135-
{
136-
var errorDto = JsonConvert.DeserializeObject<ErrorDto>(responseContent);
137-
138-
return "Error: " + errorDto.ErrorDescription;
139-
}
140-
catch
141-
{
142-
return "Error: An unexpected error occurred.";
143-
}
144130
}
145131

146132
[HttpGet]

0 commit comments

Comments
 (0)