Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion config/default.js
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,8 @@ module.exports = {
TAAS_ROLE_UPDATE_TOPIC: process.env.TAAS_ROLE_UPDATE_TOPIC || 'taas.role.update',
// the delete role entity Kafka message topic
TAAS_ROLE_DELETE_TOPIC: process.env.TAAS_ROLE_DELETE_TOPIC || 'taas.role.delete',
// the create team entity message topic, only used for eventHandler
TAAS_TEAM_CREATE_TOPIC: process.env.TAAS_TEAM_CREATE_TOPIC || 'taas.team.create',
// special kafka topics
TAAS_ACTION_RETRY_TOPIC: process.env.TAAS_ACTION_RETRY_TOPIC || 'taas.action.retry',

Expand All @@ -161,6 +163,10 @@ module.exports = {
// INTERVIEW_INVITATION_RECIPIENTS_LIST may contain comma-separated list of email which is converted to array
// [email protected] should be in the RECIPIENTS list
INTERVIEW_INVITATION_RECIPIENTS_LIST: (process.env.INTERVIEW_INVITATION_RECIPIENTS_LIST || '[email protected]').split(','),
// the emails address for overlapping interview
NOTIFICATION_OPS_EMAILS: (process.env.NOTIFICATION_OPS_EMAILS || '[email protected]').split(','),
// the slack channel for sending notifications
NOTIFICATION_SLACK_CHANNEL: process.env.NOTIFICATION_SLACK_CHANNEL || '#dev-general',
// SendGrid email template ID for reporting issue
REPORT_ISSUE_SENDGRID_TEMPLATE_ID: process.env.REPORT_ISSUE_SENDGRID_TEMPLATE_ID,
// SendGrid email template ID for requesting extension
Expand Down Expand Up @@ -268,5 +274,7 @@ module.exports = {
RESOURCE_BOOKING_EXPIRY_TIME: process.env.RESOURCE_BOOKING_EXPIRY_TIME || 'P21D',
// The Stripe
STRIPE_SECRET_KEY: process.env.STRIPE_SECRET_KEY,
CURRENCY: process.env.CURRENCY || 'usd'
CURRENCY: process.env.CURRENCY || 'usd',
// The slack webhook url to send slack notifications
SLACK_WEBHOOK_URL: process.env.SLACK_WEBHOOK_URL
}
35 changes: 35 additions & 0 deletions config/email_template.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,41 @@ module.exports = {
recipients: [],
from: config.NOTIFICATION_SENDER_EMAIL,
sendgridTemplateId: config.NOTIFICATION_SENDGRID_TEMPLATE_ID
},
'taas.notification.team-created': {
subject: 'Topcoder - Team Created',
body: '',
recipients: [],
from: config.NOTIFICATION_SENDER_EMAIL,
sendgridTemplateId: config.NOTIFICATION_SENDGRID_TEMPLATE_ID
},
'taas.notification.job-created': {
subject: 'Topcoder - Job Created',
body: '',
recipients: [],
from: config.NOTIFICATION_SENDER_EMAIL,
sendgridTemplateId: config.NOTIFICATION_SENDGRID_TEMPLATE_ID
},
'taas.notification.interviews-overlapping': {
subject: 'Topcoder - Interviews overlapping',
body: '',
recipients: config.NOTIFICATION_OPS_EMAILS,
from: config.NOTIFICATION_SENDER_EMAIL,
sendgridTemplateId: config.NOTIFICATION_SENDGRID_TEMPLATE_ID
},
'taas.notification.job-candidate-selected': {
subject: 'Topcoder - Job Candidate Selected',
body: '',
recipients: config.NOTIFICATION_OPS_EMAILS,
from: config.NOTIFICATION_SENDER_EMAIL,
sendgridTemplateId: config.NOTIFICATION_SENDGRID_TEMPLATE_ID
},
'taas.notification.resource-booking-placed': {
subject: 'Topcoder - Resource Booking Placed',
body: '',
recipients: [],
from: config.NOTIFICATION_SENDER_EMAIL,
sendgridTemplateId: config.NOTIFICATION_SENDGRID_TEMPLATE_ID
}
}
}
90 changes: 90 additions & 0 deletions data/notifications-email-template.html
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,96 @@
{{/each}}
</table>
{{/if}}
{{#if notificationType.newTeamCreated}}
<span style="font-weight:bold;">Team Name:</span>
<a href={{teamURL}} target="_blank" rel="noopener noreferrer">{{teamName}}</a>
<table style="font-size:13px;border:1px solid black;border-collapse:collapse;width:95%;">
<tr style="font-weight:bold;border:1px solid black;border-collapse:collapse">
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Job Title</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Duration</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Start Date</td>
</tr>
{{#each jobList}}
<tr>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;"><a href={{this.jobUrl}} target="_blank" rel="noopener noreferrer">{{this.title}}</a></td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{this.duration}}</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{this.startDate}}</td>
</tr>
{{/each}}
</table>
{{/if}}
{{#if notificationType.newJobCreated}}
<table style="font-size:13px;border:1px solid black;border-collapse:collapse;width:95%;">
<tr style="font-weight:bold;border:1px solid black;border-collapse:collapse">
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Team Name</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Job title</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Duration</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Start Date</td>
</tr>
<tr>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;"><a href={{teamURL}} target="_blank" rel="noopener noreferrer">{{teamName}}</a></td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;"><a href={{jobURL}} target="_blank" rel="noopener noreferrer">{{jobTitle}}</a></td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{jobDuration}}</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{jobStartDate}}</td>
</tr>
</table>
{{/if}}
{{#if notificationType.overlappingInterview}}
<table style="font-size:13px;border:1px solid black;border-collapse:collapse;width:95%;">
<tr style="font-weight:bold;border:1px solid black;border-collapse:collapse">
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Team Name</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Job title</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Job Candidate</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Interview Start Date</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Interview End Date</td>
</tr>
{{#each interviews}}
<tr>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;"><a href={{this.teamURL}} target="_blank" rel="noopener noreferrer">{{this.teamName}}</a></td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;"><a href={{this.jobURL}} target="_blank" rel="noopener noreferrer">{{this.jobTitle}}</a></td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{this.candidateUserHandle}}</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{this.startTime}}</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{this.endTime}}</td>
</tr>
{{/each}}
</table>
{{/if}}
{{#if notificationType.candidateSelected}}
<table style="font-size:13px;border:1px solid black;border-collapse:collapse;width:95%;">
<tr style="font-weight:bold;border:1px solid black;border-collapse:collapse">
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Team Name</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Job title</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Job Start Date</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Job Duration</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Candidate User Handle</td>
</tr>
<tr>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;"><a href={{teamUrl}} target="_blank" rel="noopener noreferrer">{{teamName}}</a></td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;"><a href={{jobUrl}} target="_blank" rel="noopener noreferrer">{{jobTitle}}</a></td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{jobStartDate}}</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{jobDuration}}</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{userHandle}}</td>
</tr>
</table>
{{/if}}
{{#if notificationType.resourceBookingPlaced}}
<table style="font-size:13px;border:1px solid black;border-collapse:collapse;width:95%;">
<tr style="font-weight:bold;border:1px solid black;border-collapse:collapse">
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Team Name</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Job Title</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Resource Bookings Handle</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Resource Bookings Start Date</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">Resource Bookings End Date</td>
</tr>
<tr>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;"><a href={{teamUrl}} target="_blank" rel="noopener noreferrer">{{teamName}}</a></td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;"><a href={{jobUrl}} target="_blank" rel="noopener noreferrer">{{jobTitle}}</a></td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{userHandle}}</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{startDate}}</td>
<td style="border:1px solid black;border-collapse:collapse;text-align:center;line-height:1.5;">{{endDate}}</td>
</tr>
</table>
{{/if}}

<br/>
If you have any questions about this process or if you encounter any issues coordinating your availability, you may reply to this email or send a separate email to <a href="mailto:[email protected]">our Gig Work operations team</a>.
Expand Down
Loading