13
13
using System . Linq ;
14
14
using System . Net ;
15
15
using System . Threading . Tasks ;
16
- using Newtonsoft . Json . Serialization ;
17
16
using RestSharp . Serializers . NewtonsoftJson ;
18
17
using static FikaAmazonAPI . AmazonSpApiSDK . Models . Token . CacheTokenData ;
19
18
using static FikaAmazonAPI . Utils . Constants ;
@@ -111,6 +110,7 @@ protected void CreateAuthorizedPagedRequest(AmazonFilter filter, string url, Res
111
110
112
111
Request = await TokenGeneration . SignWithSTSKeysAndSecurityTokenAsync ( Request , RequestClient . Options . BaseUrl . Host , AmazonCredential ) ;
113
112
var response = await RequestClient . ExecuteAsync < T > ( Request ) ;
113
+ LogRequest ( Request , response ) ;
114
114
SaveLastRequestHeader ( response . Headers ) ;
115
115
SleepForRateLimit ( response . Headers , rateLimitType ) ;
116
116
ParseResponse ( response ) ;
@@ -131,7 +131,41 @@ private void SaveLastRequestHeader(IReadOnlyCollection<RestSharp.HeaderParameter
131
131
LastHeaders . Add ( new KeyValuePair < string , string > ( parameter . Name . ToString ( ) , parameter . Value . ToString ( ) ) ) ;
132
132
}
133
133
}
134
+ }
134
135
136
+ private void LogRequest ( RestRequest request , RestResponse response )
137
+ {
138
+ if ( AmazonCredential . IsDebugMode )
139
+ {
140
+ var requestToLog = new
141
+ {
142
+ resource = request . Resource ,
143
+ parameters = request . Parameters . Select ( parameter => new
144
+ {
145
+ name = parameter . Name ,
146
+ value = parameter . Value ,
147
+ type = parameter . Type . ToString ( )
148
+ } ) ,
149
+ // ToString() here to have the method as a nice string otherwise it will just show the enum value
150
+ method = request . Method . ToString ( ) ,
151
+ // This will generate the actual Uri used in the request
152
+ //uri = request. _restClient.BuildUri(request),
153
+ } ;
154
+
155
+ var responseToLog = new
156
+ {
157
+ statusCode = response . StatusCode ,
158
+ content = response . Content ,
159
+ headers = response . Headers ,
160
+ // The Uri that actually responded (could be different from the requestUri if a redirection occurred)
161
+ responseUri = response . ResponseUri ,
162
+ errorMessage = response . ErrorMessage ,
163
+ } ;
164
+
165
+ Console . WriteLine ( string . Format ( "Request completed, Request: {1}, Response: {2}" ,
166
+ JsonConvert . SerializeObject ( requestToLog ) ,
167
+ JsonConvert . SerializeObject ( responseToLog ) ) ) ;
168
+ }
135
169
}
136
170
private void RestHeader ( )
137
171
{
@@ -164,9 +198,9 @@ private void RestHeader()
164
198
{
165
199
if ( tryCount >= AmazonCredential . MaxThrottledRetryCount )
166
200
{
167
- #if DEBUG
168
- Console . WriteLine ( "Throttle max try count reached" ) ;
169
- #endif
201
+ if ( AmazonCredential . IsDebugMode )
202
+ Console . WriteLine ( "Throttle max try count reached" ) ;
203
+
170
204
throw ;
171
205
}
172
206
@@ -214,19 +248,6 @@ private void SleepForRateLimit(IReadOnlyCollection<RestSharp.Parameter> headers,
214
248
}
215
249
}
216
250
217
-
218
- protected async Task < T > ExecuteUnAuthorizedRequest < T > ( ) where T : new ( )
219
- {
220
- var response = await RequestClient . ExecuteAsync < T > ( Request ) ;
221
- ParseResponse ( response ) ;
222
- SaveLastRequestHeader ( response . Headers ) ;
223
- if ( response . StatusCode == HttpStatusCode . OK && ! string . IsNullOrEmpty ( response . Content ) && response . Data == null )
224
- {
225
- response . Data = JsonConvert . DeserializeObject < T > ( response . Content ) ;
226
- }
227
- return response . Data ;
228
- }
229
-
230
251
protected void ParseResponse ( RestResponse response )
231
252
{
232
253
if ( response . StatusCode == HttpStatusCode . OK || response . StatusCode == HttpStatusCode . Accepted || response . StatusCode == HttpStatusCode . Created )
@@ -237,7 +258,8 @@ protected void ParseResponse(RestResponse response)
237
258
}
238
259
else
239
260
{
240
- Console . WriteLine ( "Amazon Api didn't respond with Okay, see exception for more details" + response . Content ) ;
261
+ if ( AmazonCredential . IsDebugMode )
262
+ Console . WriteLine ( "Amazon Api didn't respond with Okay, see exception for more details" + response . Content ) ;
241
263
242
264
var errorResponse = response . Content . ConvertToErrorResponse ( ) ;
243
265
if ( errorResponse != null )
0 commit comments