Skip to content

Commit 6769595

Browse files
author
Kevin Hellemun
committed
Added isSessionActive method and fixed client #33.
1 parent 4814e7e commit 6769595

File tree

2 files changed

+33
-9
lines changed

2 files changed

+33
-9
lines changed

BunqSdk/Context/ApiContext.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,19 +176,27 @@ private void DeleteSession()
176176
/// </summary>
177177
public void EnsureSessionActive()
178178
{
179-
if (SessionContext == null) return;
179+
if (!IsSessionActive())
180+
{
181+
ResetSession();
182+
}
183+
}
180184

185+
public bool IsSessionActive()
186+
{
187+
if (SessionContext == null)
188+
{
189+
return false;
190+
}
191+
181192
var timeToExpiry = SessionContext.ExpiryTime.Subtract(DateTime.Now);
182193
var timeToExpiryMinimum = new TimeSpan(
183194
TIME_UNIT_COUNT_NONE,
184195
TIME_UNIT_COUNT_NONE,
185196
TIME_TO_SESSION_EXPIRY_MINIMUM_SECONDS
186197
);
187198

188-
if (timeToExpiry < timeToExpiryMinimum)
189-
{
190-
ResetSession();
191-
}
199+
return timeToExpiry > timeToExpiryMinimum;
192200
}
193201

194202
/// <summary>

BunqSdk/Http/ApiClient.cs

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,18 @@ namespace Bunq.Sdk.Http
1616
{
1717
public class ApiClient
1818
{
19+
20+
private const string DEVICE_SERVER_URL = "device-server";
21+
private const string INSTALLATION_URL = "installation";
22+
private const string SESSION_SERVER_URL = "session-server";
23+
24+
private static readonly string[] URIS_NOT_REQUIRING_ACTIVE_SESSION = new string[]
25+
{
26+
DEVICE_SERVER_URL,
27+
INSTALLATION_URL,
28+
SESSION_SERVER_URL
29+
};
30+
1931
/// <summary>
2032
/// Header constants.
2133
/// </summary>
@@ -115,21 +127,25 @@ private BunqResponseRaw SendRequest(HttpMethod method, string uriRelative, byte[
115127
{
116128
var requestMessage = CreateHttpRequestMessage(method, uriRelative, uriParams, requestBodyBytes);
117129

118-
return SendRequest(requestMessage, customHeaders);
130+
return SendRequest(requestMessage, customHeaders, uriRelative);
119131
}
120132

121133
private BunqResponseRaw SendRequest(HttpMethod method, string uriRelative,
122134
IDictionary<string, string> uriParams, IDictionary<string, string> customHeaders)
123135
{
124136
var requestMessage = CreateHttpRequestMessage(method, uriRelative, uriParams);
125137

126-
return SendRequest(requestMessage, customHeaders);
138+
return SendRequest(requestMessage, customHeaders, uriRelative);
127139
}
128140

129141
private BunqResponseRaw SendRequest(HttpRequestMessage requestMessage,
130-
IDictionary<string, string> customHeaders)
142+
IDictionary<string, string> customHeaders, string uriRelative)
131143
{
132-
apiContext.EnsureSessionActive();
144+
if (!URIS_NOT_REQUIRING_ACTIVE_SESSION.Contains(uriRelative))
145+
{
146+
apiContext.EnsureSessionActive();
147+
}
148+
133149
SetDefaultHeaders(requestMessage);
134150
SetHeaders(requestMessage, customHeaders);
135151
SetSessionHeaders(requestMessage);

0 commit comments

Comments
 (0)