11using System ;
22using System . Collections . Generic ;
33using RestSharp ;
4+ using csharp_github_api . Core ;
45
56namespace csharp_github_api . Resource
67{
78 public class RestRequestFactory
89 {
9- private RestRequestFactory ( )
10+ private static IHeaderProvider _headerProvider ;
11+
12+ private RestRequestFactory ( IHeaderProvider headerProvider = null )
1013 {
14+ _headerProvider = headerProvider ;
1115 }
1216
1317 public static IRestRequest CreateRequest ( Func < IRestRequest > request )
@@ -20,7 +24,7 @@ public static IRestRequest CreateRequest(string resource, Method method = Method
2024 return CreateRequest (
2125 ( ) =>
2226 {
23- var request = new RestRequest
27+ IRestRequest request = new RestRequest
2428 {
2529 Resource = resource ,
2630 Method = method
@@ -33,6 +37,9 @@ public static IRestRequest CreateRequest(string resource, Method method = Method
3337 request . AddParameter ( parameter ) ;
3438 }
3539
40+ if ( _headerProvider != null )
41+ _headerProvider . PopulateHeaders ( ref request ) ;
42+
3643 return request ;
3744 }
3845 ) ;
@@ -43,7 +50,7 @@ public static IRestRequest CreateRequest(string resource, Method method = Method
4350 return CreateRequest (
4451 ( ) =>
4552 {
46- var request = new RestRequest
53+ IRestRequest request = new RestRequest
4754 {
4855 Resource = resource ,
4956 Method = method
@@ -56,6 +63,9 @@ public static IRestRequest CreateRequest(string resource, Method method = Method
5663 request . AddUrlSegment ( kvp . Key , kvp . Value ) ;
5764 }
5865
66+ if ( _headerProvider != null )
67+ _headerProvider . PopulateHeaders ( ref request ) ;
68+
5969 return request ;
6070 }
6171 ) ;
0 commit comments