mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-05-28 18:26:54 +00:00
fix:(api): send full stack email for v9 (#64751)
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
This commit is contained in:
@@ -211,7 +211,7 @@ describe('certificate routes', () => {
|
||||
});
|
||||
|
||||
// Note: Email does not actually send (work) in development, but status should still be 200.
|
||||
test('should send the certified email, if all current certifications are met', async () => {
|
||||
test('should send the certified email when full stack developer v9 is claimed', async () => {
|
||||
await fastifyTestInstance.prisma.user.updateMany({
|
||||
where: { email: defaultUserEmail },
|
||||
data: {
|
||||
@@ -222,25 +222,7 @@ describe('certificate routes', () => {
|
||||
{ id: '587d78b0367417b2b2512b05', completedDate: 123456789 },
|
||||
{ id: 'bd7158d8c242eddfaeb5bd13', completedDate: 123456789 }
|
||||
],
|
||||
is2018DataVisCert: true,
|
||||
isA2EnglishCert: true,
|
||||
isB1EnglishCert: true,
|
||||
isApisMicroservicesCert: true,
|
||||
isCollegeAlgebraPyCertV8: true,
|
||||
isDataAnalysisPyCertV7: true,
|
||||
isFoundationalCSharpCertV8: true,
|
||||
isFrontEndLibsCert: true,
|
||||
isInfosecCertV7: true,
|
||||
isJavascriptCertV9: true,
|
||||
isJsAlgoDataStructCertV8: true,
|
||||
isMachineLearningPyCertV7: true,
|
||||
isPythonCertV9: true,
|
||||
isQaCertV7: true,
|
||||
isRelationalDatabaseCertV8: true,
|
||||
isRelationalDatabaseCertV9: true,
|
||||
isRespWebDesignCert: false,
|
||||
isRespWebDesignCertV9: true,
|
||||
isSciCompPyCertV7: true
|
||||
isFullStackDeveloperCertV9: true
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -44,14 +44,12 @@ function renderCertifiedEmail({
|
||||
}) {
|
||||
const certifiedEmailTemplate = `Hi ${name || username},
|
||||
|
||||
Congratulations on completing all of the freeCodeCamp certifications!
|
||||
Congratulations on completing the Certified Full Stack Developer Curriculum!
|
||||
|
||||
All of your certifications are now live at: https://www.freecodecamp.org/${username}
|
||||
|
||||
Please tell me a bit more about you and your near-term goals.
|
||||
|
||||
Are you interested in contributing to our open source projects used by nonprofits?
|
||||
|
||||
Also, check out https://contribute.freecodecamp.org/ for some fun and convenient ways you can contribute to the community.
|
||||
|
||||
Happy coding,
|
||||
@@ -372,18 +370,17 @@ export const protectedCertificateRoutes: FastifyPluginCallbackTypebox = (
|
||||
const updatedIsCertMap = getUserIsCertMap(updatedUserSansNull);
|
||||
|
||||
// TODO(POST-MVP): Consider sending email based on `user.isEmailVerified` as well
|
||||
const hasCompletedAllCerts = currentCertifications
|
||||
.map(x => certSlugTypeMap[x])
|
||||
.every(certType => updatedIsCertMap[certType]);
|
||||
const fullStackV9Claimed = updatedIsCertMap.isFullStackDeveloperCertV9;
|
||||
|
||||
const shouldSendCertifiedEmailToCamper =
|
||||
email && validator.default.isEmail(email) && hasCompletedAllCerts;
|
||||
email && validator.default.isEmail(email) && fullStackV9Claimed;
|
||||
|
||||
if (shouldSendCertifiedEmailToCamper) {
|
||||
const notifyUser = {
|
||||
to: email,
|
||||
from: 'quincy@freecodecamp.org',
|
||||
subject:
|
||||
'Congratulations on completing all of the freeCodeCamp certifications!',
|
||||
'Congratulations on completing the Certified Full Stack Developer Curriculum!',
|
||||
text: renderCertifiedEmail({
|
||||
username: updatedUser.username,
|
||||
// Safety: `user.name` is required to exist earlier. TODO: Assert
|
||||
|
||||
Reference in New Issue
Block a user