CLASSROOMIO-T-133: Send welcome email after onboarding

Co-authored-by: Rotimi Best <[email protected]>


Merge-request: CLASSROOMIO-MR-55
Merged-by: Best Admin <[email protected]>
This commit is contained in:
Rotimi Best
2023-08-26 11:58:57 +00:00
committed by Space Cloud
co-authored by Rotimi Best
parent b979da3db1
commit 7a5d341865
11 changed files with 352 additions and 45 deletions
+7
View File
@@ -0,0 +1,7 @@
import { json } from '@sveltejs/kit';
export async function GET({ url }) {
// Get org data from request
// Get teacher email
// Generate
}
+50
View File
@@ -0,0 +1,50 @@
import { render } from 'svelte-email';
import { json } from '@sveltejs/kit';
import WelcomeTemplate from './template.svelte';
import { getSendgrid, SENDGRID_FROM } from '$lib/utils/services/sendgrid';
import { getSupabase } from '$lib/utils/functions/supabase';
const sendgrid = getSendgrid();
const supabase = getSupabase();
export async function POST({ request }) {
const { to, name } = await request.json();
const accessToken = request.headers.get('Authorization');
console.log('/POST api/email/welcome', to, name);
if (!to || !name) {
return json({ success: false, message: 'Name and To are required fields' }, { status: 400 });
}
let user;
try {
const { data } = await supabase.auth.getUser(accessToken);
user = data.user;
} catch (error) {
console.error(error);
}
console.log('user', user);
if (!user) {
return json({ success: false, message: 'Unauthenticated user' }, { status: 401 });
}
const options = {
from: SENDGRID_FROM,
to,
subject: 'Thank you so so so much for choosing ClassroomIO!',
html: render({
template: WelcomeTemplate,
props: {
name
}
})
};
sendgrid.send(options);
return json({
success: true,
message: 'Email sent'
});
}
@@ -0,0 +1,13 @@
<script lang="ts">
import EmailTemplate from '$lib/components/Email/EmailTemplate.svelte';
import Welcome from './welcome.svelte';
export let name = '';
</script>
<EmailTemplate
children={Welcome}
props={{
name
}}
/>
@@ -0,0 +1,79 @@
<script lang="ts">
import { Text, Section, Button, Link } from 'svelte-email';
export let name = '';
const fontFamily =
'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif';
const paragraph = {
fontFamily,
fontSize: '16px',
lineHeight: '26px'
};
const footerParagraph = {
...paragraph,
margin: '0px'
};
const btnContainer = {
textAlign: 'center' as const
};
const button = {
fontFamily,
backgroundColor: '#1d4ee2',
borderRadius: '5px',
color: '#fff',
fontSize: '16px',
textDecoration: 'none',
textAlign: 'center' as const,
display: 'block'
};
const linkStyle = {
color: '#1d4ee2'
};
</script>
<Text style={paragraph}>Dear {name},</Text>
<Text style={paragraph}>Welcome to the vibrant community of ClassroomIO!</Text>
<Text style={paragraph}>
We're thrilled to have you join us in shaping the future of education. Your decision to embark on
this journey with us is deeply appreciated, and we're genuinely excited about the possibilities
that lie ahead.
</Text>
<Text style={paragraph}>
At ClassroomIO, we understand the dedication and passion that educators like you bring to the
table. That's why we've built a platform that's not only designed to make your teaching experience
seamless but also to empower you to create transformative learning moments for your students.
</Text>
<Text style={paragraph}>
Your choice to use ClassroomIO is a testament to your commitment to innovation in education. It's
educators like you who drive progress and inspire change, and we're here to support you every step
of the way.
</Text>
<Text style={paragraph}>
Our team is working diligently behind the scenes, shipping new features and updates daily. This
means you can expect a platform that's constantly evolving, adapting to your needs, and staying at
the forefront of educational technology.
</Text>
<Text style={paragraph}>
We encourage you to explore ClassroomIO's range of features, from interactive quizzes and robust
course management tools to collaborative forums and AI-integrated lesson planning. Your feedback
is invaluable to us as we work together to refine and enhance these features to best suit your
teaching style and objectives.
</Text>
<Text style={paragraph}>
Once again, welcome to the ClassroomIO family. We're here to help, to listen, and to celebrate
your successes. Get ready to unlock a world of possibilities in education!
</Text>
<Section style={btnContainer}>
<Button pX={12} pY={12} style={button} href="https://app.classroomio.com">Go to Dashboard</Button>
</Section>
<Text style={footerParagraph}>Best regards</Text>
<Text style={footerParagraph}>Rotimi Best</Text>
<Text style={footerParagraph}
><Link style={linkStyle} href="https://classroomio.com">ClassroomIO</Link></Text
>