Skip to content

Commit bab26fb

Browse files
committed
send registration email
1 parent 81f83d7 commit bab26fb

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

config/default.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,15 @@ module.exports = {
6868
RESOURCE_DELETE_TOPIC: process.env.RESOURCE_DELETE_TOPIC || 'challenge.action.resource.delete',
6969
RESOURCE_ROLE_CREATE_TOPIC: process.env.RESOURCE_ROLE_CREATE_TOPIC || 'challenge.action.resource.role.create',
7070
RESOURCE_ROLE_UPDATE_TOPIC: process.env.RESOURCE_ROLE_UPDATE_TOPIC || 'challenge.action.resource.role.update',
71+
EMAIL_NOTIFICATIN_TOPIC: process.env.EMAIL_NOTIFICATIN_TOPIC || 'external.action.email',
72+
REGISTRATION_EMAIL: {
73+
EMAIL_FROM: process.env.EMAIL_FROM || "no-reply@topcoder.com",
74+
SENDGRID_TEMPLATE_ID: process.env.SENDGRID_TEMPLATE_ID || "d-b0593e8d64a84745905fb795523fde04",
75+
SUBMIT_URL: process.env.SUBMIT_URL || "https://www.topcoder.com/challenges/:id/submit/",
76+
REVIEW_APP_URL: process.env.REVIEW_APP_URL || "https://software.topcoder.com/review",
77+
HELP_URL: process.env.HELP_URL || "https://help.topcoder.com",
78+
SUPPORT_EMAIL: process.env.SUPPORT_EMAIL || "support@topcoder.com",
79+
},
7180

7281
AUTOMATED_TESTING_NAME_PREFIX: process.env.AUTOMATED_TESTING_NAME_PREFIX || 'POSTMANE2E-'
7382
}

src/services/ResourceService.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ async function createResource (currentUser, resource) {
331331

332332
// handle doesn't change in current version
333333
// Seems we don't need handle auto-correction(e.g. "THomaskranitsas"->"thomaskranitsas")
334-
const { resources, memberId } = await init(currentUser, challengeId, resource, true)
334+
const { resources, memberId, handle, email, challenge } = await init(currentUser, challengeId, resource, true)
335335

336336
if (_.reduce(resources,
337337
(result, r) => _.toString(r.memberId) === _.toString(memberId) && r.roleId === resource.roleId ? true : result,
@@ -358,6 +358,25 @@ async function createResource (currentUser, resource) {
358358

359359
logger.debug(`Created resource: ${JSON.stringify(_.pick(ret, payloadFields))}`)
360360
await helper.postEvent(config.RESOURCE_CREATE_TOPIC, _.pick(ret, payloadFields))
361+
if (!_.get(challenge, 'task.isTask', false) && resource.roleId === config.SUBMITTER_RESOURCE_ROLE_ID) {
362+
await helper.postEvent(config.EMAIL_NOTIFICATIN_TOPIC, {
363+
from: config.REGISTRATION_EMAIL.EMAIL_FROM,
364+
replyTo: config.REGISTRATION_EMAIL.EMAIL_FROM,
365+
recipients: [email],
366+
data: {
367+
handle,
368+
challengeName: challenge.name,
369+
forum: _.get(challenge, 'discussions[0].url'),
370+
submissionEndTime: _.get(_.find(challenge.phases, phase => phase.name === "Submission"), 'scheduledEndDate'),
371+
submitUrl: _.replace(config.REGISTRATION_EMAIL.SUBMIT_URL, ':id', challengeId),
372+
reviewAppUrl: config.REGISTRATION_EMAIL.REVIEW_APP_URL,
373+
helpUrl: config.REGISTRATION_EMAIL.HELP_URL,
374+
support: config.REGISTRATION_EMAIL.SUPPORT_EMAIL
375+
},
376+
sendgrid_template_id: config.REGISTRATION_EMAIL.SENDGRID_TEMPLATE_ID,
377+
version: "v3"
378+
})
379+
}
361380

362381
return ret
363382
} catch (err) {

0 commit comments

Comments
 (0)