Skip to content

Commit d1588ea

Browse files
authored
Merge pull request #12 from AMDevIT/Task-11-RetrievedContent
Added retrieved content object
2 parents 8d07378 + 4bd1955 commit d1588ea

File tree

5 files changed

+25
-18
lines changed

5 files changed

+25
-18
lines changed

Sources/AMDevIT.Restling/AMDevIT.Restling.Core/AMDevIT.Restling.Core.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
<PackageReadmeFile>README.md</PackageReadmeFile>
1616
<RepositoryUrl>https://github.com/AMDevIT/Restling.git</RepositoryUrl>
1717
<PackageTags>rest;httpclient;api;apiclient;client;restclient;restling</PackageTags>
18-
<AssemblyVersion>1.0.15.0</AssemblyVersion>
18+
<AssemblyVersion>1.0.15.10</AssemblyVersion>
1919
<FileVersion>$(AssemblyVersion)</FileVersion>
20-
<PackageReleaseNotes>Fixed an issue with CookieContainer, HttpMessageHandler and UseCookies. Also the client now exposes the Context for more granular manipulation.
20+
<PackageReleaseNotes>Fixed an issue with CookieContainer, HttpMessageHandler and UseCookies. Also the client now exposes the Context for more granular manipulation. Added support for RetrievedContentResult.
2121
</PackageReleaseNotes>
2222
<PackageLicenseFile>LICENSE</PackageLicenseFile>
2323
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>

Sources/AMDevIT.Restling/AMDevIT.Restling.Core/HttpResponseParser.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,19 @@ public async Task<RestRequestResult> DecodeAsync(HttpResponseMessage resultHttpM
4141
if (resultHttpMessage != null)
4242
{
4343
byte[] rawContent;
44-
RetrieveContentResult content;
44+
RetrievedContentResult retrievedContent;
4545
MediaTypeHeaderValue? contentType = resultHttpMessage.Content.Headers.ContentType;
4646
Charset charset = CharsetParser.Parse(contentType?.CharSet);
47-
rawContent = await resultHttpMessage.Content.ReadAsByteArrayAsync(cancellationToken);
48-
content = RetrieveContent(rawContent, contentType);
47+
rawContent = await resultHttpMessage.Content.ReadAsByteArrayAsync(cancellationToken);
48+
retrievedContent = RetrieveContent(rawContent, contentType);
4949

5050
restRequestResult = new(restRequest,
5151
resultHttpMessage.StatusCode,
5252
elapsed,
5353
rawContent,
5454
contentType?.MediaType,
5555
charset,
56-
content);
56+
retrievedContent);
5757
}
5858
else
5959
{
@@ -77,7 +77,7 @@ public async Task<RestRequestResult<T>> DecodeAsync<T>(HttpResponseMessage resul
7777
{
7878
byte[] rawContent;
7979
T? data = default;
80-
RetrieveContentResult content;
80+
RetrievedContentResult content;
8181
MediaTypeHeaderValue? contentType = resultHttpMessage.Content.Headers.ContentType;
8282
Charset charset = CharsetParser.Parse(contentType?.CharSet);
8383
rawContent = await resultHttpMessage.Content.ReadAsByteArrayAsync(cancellationToken);
@@ -186,12 +186,12 @@ public async Task<RestRequestResult<T>> DecodeAsync<T>(HttpResponseMessage resul
186186
return restRequestResult;
187187
}
188188

189-
private static RetrieveContentResult RetrieveContent(byte[] rawContent,
189+
private static RetrievedContentResult RetrieveContent(byte[] rawContent,
190190
MediaTypeHeaderValue? contentType)
191191
{
192192
object? content;
193193
bool isBinaryData = false;
194-
RetrieveContentResult contentResult;
194+
RetrievedContentResult contentResult;
195195

196196
if (contentType == null)
197197
{

Sources/AMDevIT.Restling/AMDevIT.Restling.Core/RestRequestResult.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class RestRequestResult(RestRequest request,
99
byte[] rawContent,
1010
string? contentType,
1111
Charset charset,
12-
object? content = null,
12+
RetrievedContentResult? retrievedContent,
1313
Exception? exception = null)
1414
{
1515
#region Fields
@@ -20,7 +20,7 @@ public class RestRequestResult(RestRequest request,
2020
private readonly string? contentType = contentType;
2121
private readonly Charset charSet = charset;
2222
private readonly byte[]? rawContent = rawContent;
23-
private readonly object? content = content;
23+
private readonly RetrievedContentResult? retrievedContent = retrievedContent;
2424
private readonly Exception? exception = exception;
2525

2626
#endregion
@@ -32,7 +32,8 @@ public class RestRequestResult(RestRequest request,
3232
public HttpStatusCode? StatusCode => this.statusCode;
3333
public bool IsSuccessful => this.ValidateIsSuccessful();
3434
public byte[]? RawContent => this.rawContent;
35-
public object? Content => this.content;
35+
public RetrievedContentResult? RetrievedContent => this.retrievedContent;
36+
public string? Content => this.retrievedContent?.ToStringContent();
3637

3738
public string? ContentType => this.contentType;
3839
public Charset CharSet => this.charSet;

Sources/AMDevIT.Restling/AMDevIT.Restling.Core/RestRequestResultOfT.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ public RestRequestResult(RestRequest request,
2727
byte[] rawContent,
2828
string? contentType,
2929
Charset charset,
30-
object? content = null,
30+
RetrievedContentResult? retrievedContent,
3131
Exception? exception = null)
3232
: base(request,
3333
statusCode,
3434
elapsed,
3535
rawContent,
3636
contentType,
3737
charset,
38-
content,
38+
retrievedContent,
3939
exception)
4040
{
4141
this.data = data;

Sources/AMDevIT.Restling/AMDevIT.Restling.Core/RetrieveContentResult.cs renamed to Sources/AMDevIT.Restling/AMDevIT.Restling.Core/RetrievedContentResult.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace AMDevIT.Restling.Core
44
{
5-
internal class RetrieveContentResult(object? content, bool isBinaryData, MediaTypeHeaderValue? contentType)
5+
public class RetrievedContentResult(object? content, bool isBinaryData, MediaTypeHeaderValue? contentType)
66
{
77
#region Properties
88

@@ -15,6 +15,13 @@ internal class RetrieveContentResult(object? content, bool isBinaryData, MediaTy
1515
#region Methods
1616

1717
public override string ToString()
18+
{
19+
string contentOutput;
20+
contentOutput = this.ToStringContent();
21+
return $"[Content:{contentOutput},ContentType:{this.ContentType}, IsBinaryData: {this.IsBinaryData}]";
22+
}
23+
24+
public string ToStringContent()
1825
{
1926
string contentOutput;
2027

@@ -23,10 +30,9 @@ public override string ToString()
2330
byte[] contentBytes = contentBytesEnumerable.ToArray();
2431
contentOutput = Convert.ToBase64String(contentBytes);
2532
}
26-
else
33+
else
2734
contentOutput = this.Content?.ToString() ?? string.Empty;
28-
29-
return $"[Content:{contentOutput},ContentType:{this.ContentType}, IsBinaryData: {this.IsBinaryData}]";
35+
return contentOutput;
3036
}
3137

3238
#endregion

0 commit comments

Comments
 (0)