Skip to content

Commit 7880656

Browse files
committed
Refractor length of ApiService
1 parent a7e72e6 commit 7880656

File tree

4 files changed

+69
-25
lines changed

4 files changed

+69
-25
lines changed

SSLLWrapper/ApiService.cs

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ public class ApiService
1414
private readonly IApi _api;
1515
private readonly IHttpWebResponseHelper _webResponseHelper;
1616
private readonly IRequestModelHelper _requestModelHelper;
17+
private readonly IResponsePopulationHelper _responsePopulationHelper;
1718
private readonly IUrlHelper _urlHelper;
18-
public string ApiUrl { get; set; }
19-
public JsonSerializerSettings JsonSerializerSettings;
19+
private string ApiUrl { get; set; }
2020

2121
public enum Publish
2222
{
@@ -48,13 +48,9 @@ public ApiService(string apiUrl)
4848
_webResponseHelper = new HttpWebResponseHelper();
4949
_requestModelHelper = new RequestModelHelper();
5050
_urlHelper = new UrlHelper();
51-
JsonSerializerSettings = new JsonSerializerSettings();
5251
_responsePopulationHelper = new ResponsePopulationHelper();
5352

5453
ApiUrl = apiUrl;
55-
56-
// Ignoring null values when serializing json objects
57-
JsonSerializerSettings.NullValueHandling = NullValueHandling.Ignore;
5854
}
5955

6056
#endregion
@@ -63,19 +59,16 @@ public InfoModel Info()
6359
{
6460
var infoModel = new InfoModel();
6561

66-
// Building request model
62+
// Building new request model
6763
var requestModel = _requestModelHelper.InfoProperties(ApiUrl, "info");
6864

6965
try
7066
{
7167
// Making Api request and gathering response
7268
var webResponse = _api.MakeGetRequest(requestModel);
73-
var webResult = _webResponseHelper.GetResponsePayload(webResponse);
7469

75-
// Trying to bind result to model
76-
infoModel = JsonConvert.DeserializeObject<InfoModel>(webResult, JsonSerializerSettings);
77-
infoModel.Headers.statusCode = _webResponseHelper.GetStatusCode(webResponse);
78-
infoModel.Headers.statusDescription = _webResponseHelper.GetStatusDescription(webResponse);
70+
// Binding result to model
71+
_responsePopulationHelper.InfoModel(webResponse, infoModel);
7972

8073
if (infoModel.engineVersion != null)
8174
{
@@ -120,12 +113,9 @@ public AnalyzeModel Analyze(string host, Publish publish, ClearCache clearCache,
120113
{
121114
// Making Api request and gathering response
122115
var webResponse = _api.MakeGetRequest(requestModel);
123-
var webResult = _webResponseHelper.GetResponsePayload(webResponse);
124116

125-
// Trying to bind result to model
126-
analyzeModel = JsonConvert.DeserializeObject<AnalyzeModel>(webResult, JsonSerializerSettings);
127-
analyzeModel.Headers.statusCode = _webResponseHelper.GetStatusCode(webResponse);
128-
analyzeModel.Headers.statusDescription = _webResponseHelper.GetStatusDescription(webResponse);
117+
// Binding result to model
118+
_responsePopulationHelper.AnalyzeModel(webResponse, analyzeModel);
129119
}
130120
catch (Exception ex)
131121
{
@@ -164,12 +154,9 @@ public EndpointDataModel GetEndpointData(string host, string s, FromCache fromCa
164154
{
165155
// Making Api request and gathering response
166156
var webResponse = _api.MakeGetRequest(requestModel);
167-
var webResult = _webResponseHelper.GetResponsePayload(webResponse);
168157

169-
// Trying to bind result to model
170-
endpointDataModel = JsonConvert.DeserializeObject<EndpointDataModel>(webResult, JsonSerializerSettings);
171-
endpointDataModel.Headers.statusCode = _webResponseHelper.GetStatusCode(webResponse);
172-
endpointDataModel.Headers.statusDescription = _webResponseHelper.GetStatusDescription(webResponse);
158+
// Binding result to model
159+
_responsePopulationHelper.EndpointDataModel(webResponse, endpointDataModel);
173160
}
174161
catch (Exception ex)
175162
{
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
using System.Net;
2+
using Newtonsoft.Json;
3+
using SSLLWrapper.Interfaces;
4+
using SSLLWrapper.Models.Response;
5+
6+
namespace SSLLWrapper.Helpers
7+
{
8+
public class ResponsePopulationHelper : IResponsePopulationHelper
9+
{
10+
public JsonSerializerSettings JsonSerializerSettings;
11+
private readonly IHttpWebResponseHelper _webResponseHelper;
12+
13+
public ResponsePopulationHelper()
14+
{
15+
// Ignoring null values when serializing json objects
16+
JsonSerializerSettings = new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore};
17+
18+
_webResponseHelper = new HttpWebResponseHelper();
19+
}
20+
21+
public InfoModel InfoModel(HttpWebResponse webResponse, InfoModel infoModel)
22+
{
23+
var webResult = _webResponseHelper.GetResponsePayload(webResponse);
24+
25+
infoModel = JsonConvert.DeserializeObject<InfoModel>(webResult, JsonSerializerSettings);
26+
infoModel.Headers.statusCode = _webResponseHelper.GetStatusCode(webResponse);
27+
infoModel.Headers.statusDescription = _webResponseHelper.GetStatusDescription(webResponse);
28+
29+
return infoModel;
30+
}
31+
32+
public AnalyzeModel AnalyzeModel(HttpWebResponse webResponse, AnalyzeModel analyzeModel)
33+
{
34+
var webResult = _webResponseHelper.GetResponsePayload(webResponse);
35+
36+
analyzeModel = JsonConvert.DeserializeObject<AnalyzeModel>(webResult, JsonSerializerSettings);
37+
analyzeModel.Headers.statusCode = _webResponseHelper.GetStatusCode(webResponse);
38+
analyzeModel.Headers.statusDescription = _webResponseHelper.GetStatusDescription(webResponse);
39+
40+
return analyzeModel;
41+
}
42+
43+
public EndpointDataModel EndpointDataModel(HttpWebResponse webResponse, EndpointDataModel endpointDataModel)
44+
{
45+
var webResult = _webResponseHelper.GetResponsePayload(webResponse);
46+
47+
endpointDataModel = JsonConvert.DeserializeObject<EndpointDataModel>(webResult, JsonSerializerSettings);
48+
endpointDataModel.Headers.statusCode = _webResponseHelper.GetStatusCode(webResponse);
49+
endpointDataModel.Headers.statusDescription = _webResponseHelper.GetStatusDescription(webResponse);
50+
51+
return endpointDataModel;
52+
}
53+
}
54+
}
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
using SSLLWrapper.Models.Response;
1+
using System.Net;
2+
using SSLLWrapper.Models.Response;
23

34
namespace SSLLWrapper.Interfaces
45
{
56
interface IResponsePopulationHelper
67
{
7-
InfoModel InfoModel(InfoModel infoModel);
8-
AnalyzeModel AnalyzeModel(AnalyzeModel analyzeModel);
8+
InfoModel InfoModel(HttpWebResponse webResponse, InfoModel infoModel);
9+
AnalyzeModel AnalyzeModel(HttpWebResponse webResponse, AnalyzeModel analyzeModel);
10+
EndpointDataModel EndpointDataModel(HttpWebResponse webResponse, EndpointDataModel endpointDataModel);
911
}
1012
}

SSLLWrapper/SSLLWrapper.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
<Compile Include="Helpers\RequestModelHelper.cs" />
5555
<Compile Include="Interfaces\IResponsePopulationHelper.cs" />
5656
<Compile Include="Helpers\UrlHelper.cs" />
57+
<Compile Include="Helpers\ResponsePopulationHelper.cs" />
5758
<Compile Include="Models\Response\AnalyzeModel.cs" />
5859
<Compile Include="Models\Response\Endpoint.cs" />
5960
<Compile Include="Models\Response\BaseModel.cs" />

0 commit comments

Comments
 (0)