Skip to content

Commit 779ef19

Browse files
committed
fix: handle string dates
Signed-off-by: Rakib Ansary <[email protected]>
1 parent 7fef16f commit 779ef19

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

src/common/challenge-helper.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,10 +301,10 @@ class ChallengeHelper {
301301
}
302302
}
303303

304-
if (challenge.created) challenge.created = new Date(challenge.created).toISOString();
305-
if (challenge.updated) challenge.updated = new Date(challenge.updated).toISOString();
306-
if (challenge.startDate) challenge.startDate = new Date(challenge.startDate).toISOString();
307-
if (challenge.endDate) challenge.endDate = new Date(challenge.endDate).toISOString();
304+
if (challenge.created) challenge.created = convertDateToISOString(challenge.created);
305+
if (challenge.updated) challenge.updated = convertDateToISOString(challenge.updated);
306+
if (challenge.startDate) challenge.startDate = convertDateToISOString(challenge.startDate);
307+
if (challenge.endDate) challenge.endDate = convertDateToISOString(challenge.endDate);
308308

309309
if (track) {
310310
challenge.track = track.name;
@@ -324,6 +324,18 @@ class ChallengeHelper {
324324
});
325325
}
326326

327+
convertDateToISOString(startDate) {
328+
if (typeof startDate === "string" && !isNaN(startDate)) {
329+
startDate = parseInt(startDate);
330+
}
331+
if (typeof startDate === "number") {
332+
const date = new Date(startDate);
333+
return date.toISOString();
334+
} else {
335+
return startDate;
336+
}
337+
}
338+
327339
convertPrizeSetValuesToCents(prizeSets) {
328340
prizeSets.forEach((prizeSet) => {
329341
prizeSet.prizes.forEach((prize) => {

src/services/ChallengeService.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ const {
4242
sanitizeRepeatedFieldsInUpdateRequest,
4343
convertPrizeSetValuesToCents,
4444
convertPrizeSetValuesToDollars,
45+
convertDateToISOString,
4546
} = require("../common/challenge-helper");
4647
const deepEqual = require("deep-equal");
4748

@@ -1035,7 +1036,7 @@ async function createChallenge(currentUser, challenge, userToken) {
10351036
if (!challenge.startDate) {
10361037
challenge.startDate = new Date().toISOString();
10371038
} else {
1038-
challenge.startDate = new Date(challenge.startDate).toISOString();
1039+
challenge.startDate = convertDateToISOString(challenge.startDate);
10391040
}
10401041

10411042
const { track, type } = await challengeHelper.validateAndGetChallengeTypeAndTrack(challenge);
@@ -1750,7 +1751,7 @@ async function updateChallenge(currentUser, challengeId, data) {
17501751
}
17511752

17521753
data.phases = newPhases;
1753-
data.startDate = new Date(newStartDate).toISOString();
1754+
data.startDate = convertDateToISOString(newStartDate);
17541755
data.endDate = helper.calculateChallengeEndDate(challenge, data);
17551756
}
17561757

0 commit comments

Comments
 (0)