Skip to content

Commit 2194000

Browse files
authored
Merge pull request #591 from topcoder-platform/dev
fix: date
2 parents ca70dfb + 7fef16f commit 2194000

File tree

2 files changed

+82
-82
lines changed

2 files changed

+82
-82
lines changed

src/common/challenge-helper.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,9 @@ class ChallengeHelper {
119119

120120
// Ensure descriptionFormat is either 'markdown' or 'html'
121121
if (data.descriptionFormat && !_.includes(["markdown", "html"], data.descriptionFormat)) {
122-
throw new errors.BadRequestError("The property 'descriptionFormat' must be either 'markdown' or 'html'");
122+
throw new errors.BadRequestError(
123+
"The property 'descriptionFormat' must be either 'markdown' or 'html'"
124+
);
123125
}
124126

125127
// Ensure unchangeable fields are not changed
@@ -299,10 +301,10 @@ class ChallengeHelper {
299301
}
300302
}
301303

302-
challenge.created = new Date(challenge.created).toISOString();
303-
challenge.updated = new Date(challenge.updated).toISOString();
304-
challenge.startDate = new Date(challenge.startDate).toISOString();
305-
challenge.endDate = new Date(challenge.endDate).toISOString();
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();
306308

307309
if (track) {
308310
challenge.track = track.name;

src/services/ChallengeService.js

Lines changed: 75 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,28 +1127,25 @@ async function createChallenge(currentUser, challenge, userToken) {
11271127

11281128
enrichChallengeForResponse(ret, track, type);
11291129

1130-
const isLocal = process.env.LOCAL == "true";
1131-
if (!isLocal) {
1132-
// Create in ES
1133-
await esClient.create({
1134-
index: config.get("ES.ES_INDEX"),
1135-
type: config.get("ES.OPENSEARCH") == "false" ? config.get("ES.ES_TYPE") : undefined,
1136-
refresh: config.get("ES.ES_REFRESH"),
1137-
id: ret.id,
1138-
body: ret,
1139-
});
1130+
// Create in ES
1131+
await esClient.create({
1132+
index: config.get("ES.ES_INDEX"),
1133+
type: config.get("ES.OPENSEARCH") == "false" ? config.get("ES.ES_TYPE") : undefined,
1134+
refresh: config.get("ES.ES_REFRESH"),
1135+
id: ret.id,
1136+
body: ret,
1137+
});
11401138

1141-
// If the challenge is self-service, add the creating user as the "client manager", *not* the manager
1142-
// This is necessary for proper handling of the vanilla embed on the self-service work item dashboard
1139+
// If the challenge is self-service, add the creating user as the "client manager", *not* the manager
1140+
// This is necessary for proper handling of the vanilla embed on the self-service work item dashboard
11431141

1144-
if (challenge.legacy.selfService) {
1145-
if (currentUser.handle) {
1146-
await helper.createResource(ret.id, ret.createdBy, config.CLIENT_MANAGER_ROLE_ID);
1147-
}
1148-
} else {
1149-
if (currentUser.handle) {
1150-
await helper.createResource(ret.id, ret.createdBy, config.MANAGER_ROLE_ID);
1151-
}
1142+
if (challenge.legacy.selfService) {
1143+
if (currentUser.handle) {
1144+
await helper.createResource(ret.id, ret.createdBy, config.CLIENT_MANAGER_ROLE_ID);
1145+
}
1146+
} else {
1147+
if (currentUser.handle) {
1148+
await helper.createResource(ret.id, ret.createdBy, config.MANAGER_ROLE_ID);
11521149
}
11531150
}
11541151

@@ -1501,6 +1498,10 @@ async function updateChallenge(currentUser, challengeId, data) {
15011498
data = sanitizeData(sanitizeChallenge(data), challenge);
15021499
console.debug("Sanitized Data:", data);
15031500

1501+
if (data.phases != null && data.startDate == null) {
1502+
data.startDate = challenge.startDate;
1503+
}
1504+
15041505
validateChallengeUpdateRequest(currentUser, challenge, data);
15051506

15061507
const projectId = _.get(challenge, "projectId");
@@ -1887,64 +1888,61 @@ async function updateChallenge(currentUser, challengeId, data) {
18871888
: undefined,
18881889
});
18891890

1890-
const isLocal = process.env.LOCAL == "true";
1891-
if (!isLocal) {
1892-
// Update ES
1893-
await esClient.update({
1894-
index: config.get("ES.ES_INDEX"),
1895-
type: config.get("ES.OPENSEARCH") == "false" ? config.get("ES.ES_TYPE") : undefined,
1896-
refresh: config.get("ES.ES_REFRESH"),
1897-
id: challengeId,
1898-
body: {
1899-
doc: updatedChallenge,
1900-
},
1901-
});
1891+
// Update ES
1892+
await esClient.update({
1893+
index: config.get("ES.ES_INDEX"),
1894+
type: config.get("ES.OPENSEARCH") == "false" ? config.get("ES.ES_TYPE") : undefined,
1895+
refresh: config.get("ES.ES_REFRESH"),
1896+
id: challengeId,
1897+
body: {
1898+
doc: updatedChallenge,
1899+
},
1900+
});
19021901

1903-
if (updatedChallenge.legacy.selfService) {
1904-
const creator = await helper.getMemberByHandle(updatedChallenge.createdBy);
1905-
if (sendSubmittedEmail) {
1906-
await helper.sendSelfServiceNotification(
1907-
constants.SelfServiceNotificationTypes.WORK_REQUEST_SUBMITTED,
1908-
[{ email: creator.email }],
1909-
{
1910-
handle: creator.handle,
1911-
workItemName: updatedChallenge.name,
1912-
}
1913-
);
1914-
}
1915-
if (sendActivationEmail) {
1916-
await helper.sendSelfServiceNotification(
1917-
constants.SelfServiceNotificationTypes.WORK_REQUEST_STARTED,
1918-
[{ email: creator.email }],
1919-
{
1920-
handle: creator.handle,
1921-
workItemName: updatedChallenge.name,
1922-
workItemUrl: `${config.SELF_SERVICE_APP_URL}/work-items/${updatedChallenge.id}`,
1923-
}
1924-
);
1925-
}
1926-
if (sendCompletedEmail) {
1927-
await helper.sendSelfServiceNotification(
1928-
constants.SelfServiceNotificationTypes.WORK_COMPLETED,
1929-
[{ email: creator.email }],
1930-
{
1931-
handle: creator.handle,
1932-
workItemName: updatedChallenge.name,
1933-
workItemUrl: `${config.SELF_SERVICE_APP_URL}/work-items/${updatedChallenge.id}?tab=solutions`,
1934-
}
1935-
);
1936-
}
1937-
if (sendRejectedEmail || cancelReason) {
1938-
logger.debug("Should send redirected email");
1939-
await helper.sendSelfServiceNotification(
1940-
constants.SelfServiceNotificationTypes.WORK_REQUEST_REDIRECTED,
1941-
[{ email: creator.email }],
1942-
{
1943-
handle: creator.handle,
1944-
workItemName: updatedChallenge.name,
1945-
}
1946-
);
1947-
}
1902+
if (updatedChallenge.legacy.selfService) {
1903+
const creator = await helper.getMemberByHandle(updatedChallenge.createdBy);
1904+
if (sendSubmittedEmail) {
1905+
await helper.sendSelfServiceNotification(
1906+
constants.SelfServiceNotificationTypes.WORK_REQUEST_SUBMITTED,
1907+
[{ email: creator.email }],
1908+
{
1909+
handle: creator.handle,
1910+
workItemName: updatedChallenge.name,
1911+
}
1912+
);
1913+
}
1914+
if (sendActivationEmail) {
1915+
await helper.sendSelfServiceNotification(
1916+
constants.SelfServiceNotificationTypes.WORK_REQUEST_STARTED,
1917+
[{ email: creator.email }],
1918+
{
1919+
handle: creator.handle,
1920+
workItemName: updatedChallenge.name,
1921+
workItemUrl: `${config.SELF_SERVICE_APP_URL}/work-items/${updatedChallenge.id}`,
1922+
}
1923+
);
1924+
}
1925+
if (sendCompletedEmail) {
1926+
await helper.sendSelfServiceNotification(
1927+
constants.SelfServiceNotificationTypes.WORK_COMPLETED,
1928+
[{ email: creator.email }],
1929+
{
1930+
handle: creator.handle,
1931+
workItemName: updatedChallenge.name,
1932+
workItemUrl: `${config.SELF_SERVICE_APP_URL}/work-items/${updatedChallenge.id}?tab=solutions`,
1933+
}
1934+
);
1935+
}
1936+
if (sendRejectedEmail || cancelReason) {
1937+
logger.debug("Should send redirected email");
1938+
await helper.sendSelfServiceNotification(
1939+
constants.SelfServiceNotificationTypes.WORK_REQUEST_REDIRECTED,
1940+
[{ email: creator.email }],
1941+
{
1942+
handle: creator.handle,
1943+
workItemName: updatedChallenge.name,
1944+
}
1945+
);
19481946
}
19491947
}
19501948

0 commit comments

Comments
 (0)