Skip to content

Commit 540f366

Browse files
committed
Release 3.5
1 parent 80a4165 commit 540f366

File tree

8 files changed

+457
-188
lines changed

8 files changed

+457
-188
lines changed

QueueIT.KnownUserV3.SDK.Tests/UrlParameterProviderTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public void TryExtractQueueParams_Test()
1313
var queueParameter = QueueParameterHelper.ExtractQueueParams(queueitToken);
1414
Assert.True(queueParameter.TimeStamp == new DateTime(2016, 12, 1, 12, 1, 1, DateTimeKind.Utc));
1515
Assert.True(queueParameter.EventId == "eventid");
16-
Assert.True(queueParameter.CookieValidityMinute == 10);
16+
Assert.True(queueParameter.CookieValidityMinutes == 10);
1717
Assert.True(queueParameter.ExtendableCookie == false);
1818
Assert.True(queueParameter.HashCode == "218b734e-d5be-4b60-ad66-9b1b326266e2");
1919
Assert.True(queueParameter.QueueITToken == queueitToken);
@@ -28,7 +28,7 @@ public void TryExtractQueueParams_NotValidFormat_Test()
2828
var queueParameter = QueueParameterHelper.ExtractQueueParams(queueitToken);
2929
Assert.True(queueParameter.TimeStamp == new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc));
3030
Assert.True(queueParameter.EventId==null);
31-
Assert.True(queueParameter.CookieValidityMinute ==null);
31+
Assert.True(queueParameter.CookieValidityMinutes ==null);
3232
Assert.True(queueParameter.ExtendableCookie == false);
3333
Assert.True(queueParameter.HashCode == null);
3434
Assert.True(queueParameter.QueueITToken == queueitToken);

QueueIT.KnownUserV3.SDK.Tests/UserInQueueServiceTest.cs

Lines changed: 71 additions & 57 deletions
Large diffs are not rendered by default.

QueueIT.KnownUserV3.SDK.Tests/UserInQueueStateCookieRepositoryTest.cs

Lines changed: 245 additions & 55 deletions
Large diffs are not rendered by default.

QueueIT.KnownUserV3.SDK/Models.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ public class RequestValidationResult
66
{
77
public RequestValidationResult(string actionType)
88
{
9-
this.ActionType = actionType;
9+
ActionType = actionType;
1010
}
11-
public string RedirectUrl { get; set; }
12-
public string QueueId { get; set; }
11+
12+
public string RedirectUrl { get; internal set; }
13+
public string QueueId { get; internal set; }
1314
public bool DoRedirect
1415
{
1516
get
@@ -19,6 +20,7 @@ public bool DoRedirect
1920
}
2021
public string EventId { get; internal set; }
2122
public string ActionType { get; internal set; }
23+
public string RedirectType { get; internal set; }
2224
}
2325

2426
public class QueueEventConfig

QueueIT.KnownUserV3.SDK/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,5 @@
3434
// You can specify all the values or you can default the Build and Revision Numbers
3535
// by using the '*' as shown below:
3636
// [assembly: AssemblyVersion("1.0.*")]
37-
[assembly: AssemblyVersion("3.4.0")]
38-
[assembly: AssemblyFileVersion("3.4.0.0")]
37+
[assembly: AssemblyVersion("3.5.0")]
38+
[assembly: AssemblyFileVersion("3.5.0.0")]

QueueIT.KnownUserV3.SDK/QueueITHelpers.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ internal class QueueParameterHelper
1111
{
1212
public const string TimeStampKey = "ts";
1313
public const string ExtendableCookieKey = "ce";
14-
public const string CookieValidityMinuteKey = "cv";
14+
public const string CookieValidityMinutesKey = "cv";
1515
public const string HashKey = "h";
1616
public const string EventIdKey = "e";
1717
public const string QueueIdKey = "q";
@@ -38,18 +38,18 @@ public static QueueUrlParams ExtractQueueParams(string queueitToken)
3838
switch (keyValueArr[0])
3939
{
4040
case TimeStampKey:
41-
result.TimeStamp = DateTimeHelper.GetUnixTimeStampAsDate(keyValueArr[1]);
41+
result.TimeStamp = DateTimeHelper.GetDateTimeFromUnixTimeStamp(keyValueArr[1]);
4242
break;
43-
case CookieValidityMinuteKey:
43+
case CookieValidityMinutesKey:
4444
{
4545
int cookieValidity = 0;
4646
if (int.TryParse(keyValueArr[1], out cookieValidity))
4747
{
48-
result.CookieValidityMinute = cookieValidity;
48+
result.CookieValidityMinutes = cookieValidity;
4949
}
5050
else
5151
{
52-
result.CookieValidityMinute = null;
52+
result.CookieValidityMinutes = null;
5353
}
5454
break;
5555
}
@@ -91,7 +91,7 @@ public static QueueUrlParams ExtractQueueParams(string queueitToken)
9191

9292
internal static class DateTimeHelper
9393
{
94-
public static DateTime GetUnixTimeStampAsDate(string timeStampString)
94+
public static DateTime GetDateTimeFromUnixTimeStamp(string timeStampString)
9595
{
9696
long timestampSeconds;
9797
if (!long.TryParse(timeStampString, out timestampSeconds))
@@ -136,7 +136,7 @@ internal class QueueUrlParams
136136
public string EventId { get; set; }
137137
public string HashCode { get; set; }
138138
public bool ExtendableCookie { get; set; }
139-
public int? CookieValidityMinute { get; set; }
139+
public int? CookieValidityMinutes { get; set; }
140140
public string QueueITToken { get; set; }
141141
public string QueueITTokenWithoutHash { get; set; }
142142
public string QueueId { get; set; }

QueueIT.KnownUserV3.SDK/UserInQueueService.cs

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ RequestValidationResult ValidateCancelRequest(
2424

2525
void ExtendQueueCookie(
2626
string eventId,
27-
int cookieValidityMinute,
27+
int cookieValidityMinutes,
2828
string secretKey);
2929
}
3030

3131
internal class UserInQueueService : IUserInQueueService
3232
{
33-
internal const string SDK_VERSION = "3.4.0";
33+
internal const string SDK_VERSION = "3.5.0";
3434
private readonly IUserInQueueStateRepository _userInQueueStateRepository;
3535

3636
public UserInQueueService(IUserInQueueStateRepository queueStateRepository)
@@ -45,19 +45,24 @@ public RequestValidationResult ValidateQueueRequest(
4545
string customerId,
4646
string secretKey)
4747
{
48-
var state = _userInQueueStateRepository.GetState(config.EventId, secretKey);
48+
var state = _userInQueueStateRepository.GetState(config.EventId, config.CookieValidityMinute, secretKey);
4949
if (state.IsValid)
5050
{
5151
if (state.IsStateExtendable && config.ExtendCookieValidity)
5252
{
5353
this._userInQueueStateRepository.Store(config.EventId,
5454
state.QueueId,
55-
true,
55+
null,
5656
config.CookieDomain,
57-
config.CookieValidityMinute,
57+
state.RedirectType,
5858
secretKey);
5959
}
60-
return new RequestValidationResult(ActionType.QueueAction) { EventId = config.EventId, QueueId = state.QueueId };
60+
return new RequestValidationResult(ActionType.QueueAction)
61+
{
62+
EventId = config.EventId,
63+
QueueId = state.QueueId,
64+
RedirectType = state.RedirectType
65+
};
6166
}
6267

6368
QueueUrlParams queueParmas = QueueParameterHelper.ExtractQueueParams(queueitToken);
@@ -93,12 +98,17 @@ private RequestValidationResult GetQueueITTokenValidationResult(
9398
this._userInQueueStateRepository.Store(
9499
config.EventId,
95100
queueParams.QueueId,
96-
queueParams.ExtendableCookie,
101+
queueParams.CookieValidityMinutes,
97102
config.CookieDomain,
98-
queueParams.CookieValidityMinute ?? config.CookieValidityMinute,
103+
queueParams.RedirectType,
99104
secretKey);
100105

101-
return new RequestValidationResult(ActionType.QueueAction) { EventId = config.EventId };
106+
return new RequestValidationResult(ActionType.QueueAction)
107+
{
108+
EventId = config.EventId,
109+
QueueId = queueParams.QueueId,
110+
RedirectType = queueParams.RedirectType
111+
};
102112
}
103113

104114
private RequestValidationResult GetVaidationErrorResult(
@@ -166,10 +176,10 @@ private string GetQueryString(
166176

167177
public void ExtendQueueCookie(
168178
string eventId,
169-
int cookieValidityMinute,
179+
int cookieValidityMinutes,
170180
string secretKey)
171181
{
172-
this._userInQueueStateRepository.ExtendQueueCookie(eventId, cookieValidityMinute, secretKey);
182+
this._userInQueueStateRepository.ReissueQueueCookie(eventId, cookieValidityMinutes, secretKey);
173183
}
174184

175185
public RequestValidationResult ValidateCancelRequest(
@@ -178,7 +188,8 @@ public RequestValidationResult ValidateCancelRequest(
178188
string customerId,
179189
string secretKey)
180190
{
181-
var state = _userInQueueStateRepository.GetState(config.EventId, secretKey);
191+
//we do not care how long cookie is valid while canceling cookie
192+
var state = _userInQueueStateRepository.GetState(config.EventId, -1, secretKey, false);
182193

183194
if (state.IsValid)
184195
{
@@ -197,7 +208,8 @@ public RequestValidationResult ValidateCancelRequest(
197208
{
198209
RedirectUrl = redirectUrl,
199210
EventId = config.EventId,
200-
QueueId = state.QueueId
211+
QueueId = state.QueueId,
212+
RedirectType = state.RedirectType
201213
};
202214
}
203215
else
@@ -206,7 +218,8 @@ public RequestValidationResult ValidateCancelRequest(
206218
{
207219
RedirectUrl = null,
208220
EventId = config.EventId,
209-
QueueId = null
221+
QueueId = null,
222+
RedirectType = null
210223
};
211224
}
212225
}

0 commit comments

Comments
 (0)