Skip to content

Commit a027799

Browse files
authored
Merge pull request #59 from kuzzleio/1.0.3-proposal
# [1.0.3](https://github.com/kuzzleio/sdk-csharp/releases/tag/1.0.3) (2020-09-18) #### Bug fixes - [ [#58](#58) ] Fix expiresIn option handling ([scottinet](https://github.com/scottinet)) ---
2 parents f4374fa + 24da1e7 commit a027799

File tree

3 files changed

+37
-15
lines changed

3 files changed

+37
-15
lines changed

Kuzzle.Tests/API/Controllers/AuthControllerTest.cs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -192,13 +192,18 @@ public async void LoginAsyncTestSuccess(TimeSpan? expiresIn) {
192192
credentials,
193193
expiresIn);
194194

195-
_api.Verify(new JObject {
195+
var expectedQuery = new JObject {
196196
{ "controller", "auth" },
197197
{ "action", "login" },
198198
{ "strategy", "foostrategy" },
199-
{ "expiresIn", expiresIn?.TotalMilliseconds },
200-
{ "body", credentials }
201-
});
199+
{ "body", credentials },
200+
};
201+
202+
if (expiresIn != null) {
203+
expectedQuery["expiresIn"] = $"{Math.Floor((double)expiresIn?.TotalSeconds)}s";
204+
}
205+
206+
_api.Verify(expectedQuery);
202207

203208
Assert.Equal<JObject>(
204209
expected,
@@ -250,11 +255,16 @@ public async void RefreshTokenTestSuccess(TimeSpan? expiresIn) {
250255

251256
JObject result = await _authController.RefreshTokenAsync(expiresIn);
252257

253-
_api.Verify(new JObject {
258+
var expectedQuery = new JObject {
254259
{ "controller", "auth" },
255260
{ "action", "refreshToken" },
256-
{ "expiresIn", expiresIn?.TotalMilliseconds }
257-
});
261+
};
262+
263+
if (expiresIn != null) {
264+
expectedQuery["expiresIn"] = $"{Math.Floor((double)expiresIn?.TotalSeconds)}s";
265+
}
266+
267+
_api.Verify(expectedQuery);
258268

259269
Assert.Equal<JObject>(
260270
expected,
@@ -338,4 +348,4 @@ public async void ValidateMyCredentialsAsyncTest(bool value) {
338348
Assert.Equal(value, result);
339349
}
340350
}
341-
}
351+
}

Kuzzle/API/Controllers/AuthController.cs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,19 @@ public async Task<JObject> LoginAsync(
144144
JObject credentials,
145145
TimeSpan? expiresIn = null
146146
) {
147-
Response response = await api.QueryAsync(new JObject {
147+
var query = new JObject {
148148
{ "controller", "auth" },
149149
{ "action", "login" },
150150
{ "strategy", strategy },
151151
{ "body", credentials },
152-
{ "expiresIn", expiresIn?.TotalMilliseconds }
153-
});
152+
};
153+
154+
if (expiresIn != null) {
155+
// workaround to https://github.com/kuzzleio/kuzzle/issues/1784
156+
query["expiresIn"] = $"{Math.Floor((double)expiresIn?.TotalSeconds)}s";
157+
}
158+
159+
Response response = await api.QueryAsync(query);
154160

155161
api.AuthenticationToken = (string)response.Result["jwt"];
156162

@@ -176,11 +182,17 @@ await api.QueryAsync(new JObject {
176182
/// Refreshes an authentication token.
177183
/// </summary>
178184
public async Task<JObject> RefreshTokenAsync(TimeSpan? expiresIn = null) {
179-
Response response = await api.QueryAsync(new JObject {
185+
var query = new JObject {
180186
{ "controller", "auth" },
181187
{ "action", "refreshToken" },
182-
{ "expiresIn", expiresIn?.TotalMilliseconds }
183-
});
188+
};
189+
190+
if (expiresIn != null) {
191+
// workaround to https://github.com/kuzzleio/kuzzle/issues/1784
192+
query["expiresIn"] = $"{Math.Floor((double)expiresIn?.TotalSeconds)}s";
193+
}
194+
195+
Response response = await api.QueryAsync(query);
184196

185197
api.AuthenticationToken = (string)response.Result["jwt"];
186198

Kuzzle/Kuzzle.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<metadata>
44
<id>kuzzlesdk</id>
55
<title>Kuzzle SDK</title>
6-
<version>1.0.2</version>
6+
<version>1.0.3</version>
77
<authors>Kuzzle Team</authors>
88
<owners>Kuzzle Team</owners>
99
<license type="expression">Apache-2.0</license>

0 commit comments

Comments
 (0)