Added timing information to CloudflareResponse
This commit is contained in:
@@ -110,6 +110,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.IsNotNull(response.Errors);
|
||||
Assert.IsNotNull(response.Messages);
|
||||
Assert.IsNull(response.ResultInfo);
|
||||
Assert.IsNull(response.Timing);
|
||||
|
||||
Assert.AreEqual(0, response.Errors.Count);
|
||||
Assert.AreEqual(0, response.Messages.Count);
|
||||
@@ -189,16 +190,12 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.IsTrue(response.Success);
|
||||
Assert.IsNotNull(response.Errors);
|
||||
Assert.IsNotNull(response.Messages);
|
||||
Assert.IsNotNull(response.ResultInfo);
|
||||
Assert.IsNull(response.ResultInfo);
|
||||
Assert.IsNull(response.Timing);
|
||||
|
||||
Assert.AreEqual(0, response.Errors.Count);
|
||||
Assert.AreEqual(0, response.Messages.Count);
|
||||
|
||||
Assert.AreEqual(0, response.ResultInfo.Count);
|
||||
Assert.AreEqual(0, response.ResultInfo.Page);
|
||||
Assert.AreEqual(0, response.ResultInfo.PerPage);
|
||||
Assert.AreEqual(0, response.ResultInfo.TotalCount);
|
||||
|
||||
Assert.AreEqual("This is an awesome text ;-)", response.Result);
|
||||
|
||||
Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count);
|
||||
|
||||
@@ -110,6 +110,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.IsNotNull(response.Errors);
|
||||
Assert.IsNotNull(response.Messages);
|
||||
Assert.IsNull(response.ResultInfo);
|
||||
Assert.IsNull(response.Timing);
|
||||
|
||||
Assert.AreEqual(0, response.Errors.Count);
|
||||
Assert.AreEqual(0, response.Messages.Count);
|
||||
@@ -210,16 +211,12 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.IsTrue(response.Success);
|
||||
Assert.IsNotNull(response.Errors);
|
||||
Assert.IsNotNull(response.Messages);
|
||||
Assert.IsNotNull(response.ResultInfo);
|
||||
Assert.IsNull(response.ResultInfo);
|
||||
Assert.IsNull(response.Timing);
|
||||
|
||||
Assert.AreEqual(0, response.Errors.Count);
|
||||
Assert.AreEqual(0, response.Messages.Count);
|
||||
|
||||
Assert.AreEqual(0, response.ResultInfo.Count);
|
||||
Assert.AreEqual(0, response.ResultInfo.Page);
|
||||
Assert.AreEqual(0, response.ResultInfo.PerPage);
|
||||
Assert.AreEqual(0, response.ResultInfo.TotalCount);
|
||||
|
||||
Assert.AreEqual("This is an awesome text ;-)", response.Result);
|
||||
|
||||
Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count);
|
||||
|
||||
@@ -118,6 +118,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.IsNotNull(response.Errors);
|
||||
Assert.IsNotNull(response.Messages);
|
||||
Assert.IsNull(response.ResultInfo);
|
||||
Assert.IsNull(response.Timing);
|
||||
|
||||
Assert.AreEqual(0, response.Errors.Count);
|
||||
Assert.AreEqual(0, response.Messages.Count);
|
||||
@@ -170,6 +171,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.IsNotNull(response.Errors);
|
||||
Assert.IsNotNull(response.Messages);
|
||||
Assert.IsNull(response.ResultInfo);
|
||||
Assert.IsNull(response.Timing);
|
||||
|
||||
Assert.AreEqual(0, response.Errors.Count);
|
||||
Assert.AreEqual(0, response.Messages.Count);
|
||||
@@ -249,16 +251,12 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.IsTrue(response.Success);
|
||||
Assert.IsNotNull(response.Errors);
|
||||
Assert.IsNotNull(response.Messages);
|
||||
Assert.IsNotNull(response.ResultInfo);
|
||||
Assert.IsNull(response.ResultInfo);
|
||||
Assert.IsNull(response.Timing);
|
||||
|
||||
Assert.AreEqual(0, response.Errors.Count);
|
||||
Assert.AreEqual(0, response.Messages.Count);
|
||||
|
||||
Assert.AreEqual(0, response.ResultInfo.Count);
|
||||
Assert.AreEqual(0, response.ResultInfo.Page);
|
||||
Assert.AreEqual(0, response.ResultInfo.PerPage);
|
||||
Assert.AreEqual(0, response.ResultInfo.TotalCount);
|
||||
|
||||
Assert.AreEqual("This is an awesome text ;-)", response.Result);
|
||||
|
||||
Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count);
|
||||
|
||||
@@ -104,7 +104,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
_httpHandlerMock.Responses.Enqueue(new HttpResponseMessage
|
||||
{
|
||||
StatusCode = HttpStatusCode.OK,
|
||||
Content = new StringContent(@"{""success"": true, ""errors"": [], ""messages"": [], ""result"": { ""string"": ""some-string"", ""integer"": 123 }}", Encoding.UTF8, MediaTypeNames.Application.Json),
|
||||
Content = new StringContent(@"{""success"": true, ""errors"": [], ""messages"": [], ""result"": { ""string"": ""some-string"", ""integer"": 123 }, ""timing"": {""end_time"": ""2014-03-01T12:20:01Z"", ""process_time"": 1, ""start_time"": ""2014-03-01T12:20:00Z""}}", Encoding.UTF8, MediaTypeNames.Application.Json),
|
||||
});
|
||||
|
||||
var client = GetClient();
|
||||
@@ -126,6 +126,11 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.AreEqual("some-string", response.Result.Str);
|
||||
Assert.AreEqual(123, response.Result.Int);
|
||||
|
||||
Assert.IsNotNull(response.Timing);
|
||||
Assert.AreEqual("01.03.2014 12:20:00", response.Timing.StartTime?.ToString("dd.MM.yyyy HH:mm:ss"));
|
||||
Assert.AreEqual("01.03.2014 12:20:01", response.Timing.EndTime?.ToString("dd.MM.yyyy HH:mm:ss"));
|
||||
Assert.AreEqual(1, response.Timing.ProcessTime);
|
||||
|
||||
Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count);
|
||||
|
||||
var callback = _httpHandlerMock.Callbacks.First();
|
||||
@@ -170,6 +175,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.IsNotNull(response.Errors);
|
||||
Assert.IsNotNull(response.Messages);
|
||||
Assert.IsNull(response.ResultInfo);
|
||||
Assert.IsNull(response.Timing);
|
||||
|
||||
Assert.AreEqual(0, response.Errors.Count);
|
||||
Assert.AreEqual(0, response.Messages.Count);
|
||||
@@ -221,6 +227,7 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.IsNotNull(response.Errors);
|
||||
Assert.IsNotNull(response.Messages);
|
||||
Assert.IsNull(response.ResultInfo);
|
||||
Assert.IsNull(response.Timing);
|
||||
|
||||
Assert.AreEqual(0, response.Errors.Count);
|
||||
Assert.AreEqual(0, response.Messages.Count);
|
||||
@@ -297,16 +304,12 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.IsTrue(response.Success);
|
||||
Assert.IsNotNull(response.Errors);
|
||||
Assert.IsNotNull(response.Messages);
|
||||
Assert.IsNotNull(response.ResultInfo);
|
||||
Assert.IsNull(response.ResultInfo);
|
||||
Assert.IsNull(response.Timing);
|
||||
|
||||
Assert.AreEqual(0, response.Errors.Count);
|
||||
Assert.AreEqual(0, response.Messages.Count);
|
||||
|
||||
Assert.AreEqual(0, response.ResultInfo.Count);
|
||||
Assert.AreEqual(0, response.ResultInfo.Page);
|
||||
Assert.AreEqual(0, response.ResultInfo.PerPage);
|
||||
Assert.AreEqual(0, response.ResultInfo.TotalCount);
|
||||
|
||||
Assert.AreEqual("This is an awesome text ;-)", response.Result);
|
||||
|
||||
Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count);
|
||||
@@ -379,16 +382,12 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.IsTrue(response.Success);
|
||||
Assert.IsNotNull(response.Errors);
|
||||
Assert.IsNotNull(response.Messages);
|
||||
Assert.IsNotNull(response.ResultInfo);
|
||||
Assert.IsNull(response.ResultInfo);
|
||||
Assert.IsNull(response.Timing);
|
||||
|
||||
Assert.AreEqual(0, response.Errors.Count);
|
||||
Assert.AreEqual(0, response.Messages.Count);
|
||||
|
||||
Assert.AreEqual(0, response.ResultInfo.Count);
|
||||
Assert.AreEqual(0, response.ResultInfo.Page);
|
||||
Assert.AreEqual(0, response.ResultInfo.PerPage);
|
||||
Assert.AreEqual(0, response.ResultInfo.TotalCount);
|
||||
|
||||
Assert.AreEqual("This is an awesome text ;-)", response.Result);
|
||||
|
||||
Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count);
|
||||
|
||||
@@ -297,16 +297,11 @@ namespace Cloudflare.Core.Tests.CloudflareClientTests
|
||||
Assert.IsTrue(response.Success);
|
||||
Assert.IsNotNull(response.Errors);
|
||||
Assert.IsNotNull(response.Messages);
|
||||
Assert.IsNotNull(response.ResultInfo);
|
||||
Assert.IsNull(response.ResultInfo);
|
||||
|
||||
Assert.AreEqual(0, response.Errors.Count);
|
||||
Assert.AreEqual(0, response.Messages.Count);
|
||||
|
||||
Assert.AreEqual(0, response.ResultInfo.Count);
|
||||
Assert.AreEqual(0, response.ResultInfo.Page);
|
||||
Assert.AreEqual(0, response.ResultInfo.PerPage);
|
||||
Assert.AreEqual(0, response.ResultInfo.TotalCount);
|
||||
|
||||
Assert.AreEqual("This is an awesome text ;-)", response.Result);
|
||||
|
||||
Assert.AreEqual(1, _httpHandlerMock.Callbacks.Count);
|
||||
|
||||
@@ -248,7 +248,6 @@ namespace AMWD.Net.Api.Cloudflare
|
||||
return new CloudflareResponse<TRes>
|
||||
{
|
||||
Success = true,
|
||||
ResultInfo = new PaginationInfo(),
|
||||
Result = (TRes)cObj,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,20 +5,9 @@ namespace AMWD.Net.Api.Cloudflare
|
||||
/// <summary>
|
||||
/// The base Cloudflare response.
|
||||
/// </summary>
|
||||
public class CloudflareResponse
|
||||
/// <typeparam name="T">The result type.</typeparam>
|
||||
public class CloudflareResponse<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// Information about the result of the request.
|
||||
/// </summary>
|
||||
[JsonProperty("result_info")]
|
||||
public PaginationInfo? ResultInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether the API call was successful.
|
||||
/// </summary>
|
||||
[JsonProperty("success")]
|
||||
public bool Success { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Errors returned by the API call.
|
||||
/// </summary>
|
||||
@@ -30,18 +19,29 @@ namespace AMWD.Net.Api.Cloudflare
|
||||
/// </summary>
|
||||
[JsonProperty("messages")]
|
||||
public IReadOnlyList<ResponseInfo> Messages { get; set; } = [];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The base Cloudflare response with a result.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">The result type.</typeparam>
|
||||
public class CloudflareResponse<T> : CloudflareResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// Whether the API call was successful.
|
||||
/// </summary>
|
||||
[JsonProperty("success")]
|
||||
public bool Success { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The result of the API call.
|
||||
/// </summary>
|
||||
[JsonProperty("result")]
|
||||
public T? Result { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Information about the result of the request.
|
||||
/// </summary>
|
||||
[JsonProperty("result_info")]
|
||||
public PaginationInfo? ResultInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Information about the processing time of a request.
|
||||
/// </summary>
|
||||
[JsonProperty("timing")]
|
||||
public RecordProcessTiming? Timing { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,5 +28,11 @@
|
||||
/// </summary>
|
||||
[JsonProperty("total_count")]
|
||||
public int TotalCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Total number of pages of results.
|
||||
/// </summary>
|
||||
[JsonProperty("total_pages")]
|
||||
public int TotalPages { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
28
Cloudflare/Responses/RecordProcessTiming.cs
Normal file
28
Cloudflare/Responses/RecordProcessTiming.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
|
||||
namespace AMWD.Net.Api.Cloudflare
|
||||
{
|
||||
/// <summary>
|
||||
/// Information about the processing time of a file.
|
||||
/// </summary>
|
||||
public class RecordProcessTiming
|
||||
{
|
||||
/// <summary>
|
||||
/// When the file parsing ended.
|
||||
/// </summary>
|
||||
[JsonProperty("end_time")]
|
||||
public DateTime? EndTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Processing time of the file in seconds.
|
||||
/// </summary>
|
||||
[JsonProperty("process_time")]
|
||||
public int? ProcessTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When the file parsing started.
|
||||
/// </summary>
|
||||
[JsonProperty("start_time")]
|
||||
public DateTime? StartTime { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user