@@ -16,6 +16,20 @@ namespace Bunq.Sdk.Http
1616{
1717 public class ApiClient
1818 {
19+
20+ /// <summary>
21+ /// Endpoints not requiring active session for the request to succeed.
22+ /// </summary>
23+ private const string DEVICE_SERVER_URL = "device-server" ;
24+ private const string INSTALLATION_URL = "installation" ;
25+ private const string SESSION_SERVER_URL = "session-server" ;
26+ private static readonly string [ ] URIS_NOT_REQUIRING_ACTIVE_SESSION = new string [ ]
27+ {
28+ DEVICE_SERVER_URL ,
29+ INSTALLATION_URL ,
30+ SESSION_SERVER_URL
31+ } ;
32+
1933 /// <summary>
2034 /// Header constants.
2135 /// </summary>
@@ -115,21 +129,25 @@ private BunqResponseRaw SendRequest(HttpMethod method, string uriRelative, byte[
115129 {
116130 var requestMessage = CreateHttpRequestMessage ( method , uriRelative , uriParams , requestBodyBytes ) ;
117131
118- return SendRequest ( requestMessage , customHeaders ) ;
132+ return SendRequest ( requestMessage , customHeaders , uriRelative ) ;
119133 }
120134
121135 private BunqResponseRaw SendRequest ( HttpMethod method , string uriRelative ,
122136 IDictionary < string , string > uriParams , IDictionary < string , string > customHeaders )
123137 {
124138 var requestMessage = CreateHttpRequestMessage ( method , uriRelative , uriParams ) ;
125139
126- return SendRequest ( requestMessage , customHeaders ) ;
140+ return SendRequest ( requestMessage , customHeaders , uriRelative ) ;
127141 }
128142
129143 private BunqResponseRaw SendRequest ( HttpRequestMessage requestMessage ,
130- IDictionary < string , string > customHeaders )
144+ IDictionary < string , string > customHeaders , string uriRelative )
131145 {
132- apiContext . EnsureSessionActive ( ) ;
146+ if ( ! URIS_NOT_REQUIRING_ACTIVE_SESSION . Contains ( uriRelative ) )
147+ {
148+ apiContext . EnsureSessionActive ( ) ;
149+ }
150+
133151 SetDefaultHeaders ( requestMessage ) ;
134152 SetHeaders ( requestMessage , customHeaders ) ;
135153 SetSessionHeaders ( requestMessage ) ;
0 commit comments