finished refactoring request creator for now..still probably does too much for one class but is now readable

This commit is contained in:
TomPallister 2016-10-30 18:48:07 +00:00
parent 5fc04a0514
commit 2474a02b7c

View File

@ -73,7 +73,7 @@ namespace Ocelot.Request.Builder
public async Task<Request> Build() public async Task<Request> Build()
{ {
var uri = new Uri(string.Format("{0}{1}", _downstreamUrl, _queryString.ToUriComponent())); var uri = CreateUri();
var httpRequestMessage = new HttpRequestMessage(_method, uri); var httpRequestMessage = new HttpRequestMessage(_method, uri);
@ -83,7 +83,7 @@ namespace Ocelot.Request.Builder
AddHeadersToRequest(httpRequestMessage); AddHeadersToRequest(httpRequestMessage);
if (RequestIdKeyIsNotNull(_requestId) && !RequestIdInHeaders(_requestId, httpRequestMessage.Headers)) if (ShouldAddRequestId(_requestId, httpRequestMessage.Headers))
{ {
AddRequestIdHeader(_requestId, httpRequestMessage); AddRequestIdHeader(_requestId, httpRequestMessage);
} }
@ -93,6 +93,12 @@ namespace Ocelot.Request.Builder
return new Request(httpRequestMessage, cookieContainer); return new Request(httpRequestMessage, cookieContainer);
} }
private Uri CreateUri()
{
var uri = new Uri(string.Format("{0}{1}", _downstreamUrl, _queryString.ToUriComponent()));
return uri;
}
private async Task AddContentToRequest(HttpRequestMessage httpRequestMessage) private async Task AddContentToRequest(HttpRequestMessage httpRequestMessage)
{ {
if (_content != null) if (_content != null)
@ -155,17 +161,14 @@ namespace Ocelot.Request.Builder
private bool RequestIdInHeaders(RequestId.RequestId requestId, HttpRequestHeaders headers) private bool RequestIdInHeaders(RequestId.RequestId requestId, HttpRequestHeaders headers)
{ {
IEnumerable<string> value; IEnumerable<string> value;
if (headers.TryGetValues(requestId.RequestIdKey, out value)) return headers.TryGetValues(requestId.RequestIdKey, out value);
{
return true;
} }
return false; private bool ShouldAddRequestId(RequestId.RequestId requestId, HttpRequestHeaders headers)
}
private bool RequestIdKeyIsNotNull(RequestId.RequestId requestId)
{ {
return !string.IsNullOrEmpty(requestId?.RequestIdKey) && !string.IsNullOrEmpty(requestId.RequestIdValue); return !string.IsNullOrEmpty(requestId?.RequestIdKey)
&& !string.IsNullOrEmpty(requestId.RequestIdValue)
&& !RequestIdInHeaders(requestId, headers);
} }
private async Task<byte[]> ToByteArray(Stream stream) private async Task<byte[]> ToByteArray(Stream stream)