From ea4fee20d5ee03280d1ee89a6f9b05e159b2eb8b Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Mon, 17 Apr 2023 14:02:11 +0545 Subject: [PATCH] basic working version of email templates --- .../auth/templates/+page.svelte | 64 +++++++++++++++---- .../project-[project]/auth/templates/+page.ts | 17 +++++ .../auth/templates/emailInviteTemplate.svelte | 38 +++++++++++ .../templates/emailMagicUrlTemplate.svelte | 37 +++++++++++ .../templates/emailRecoveryTemplate.svelte | 38 +++++++++++ .../auth/templates/emailTemplate.svelte | 57 ++++++----------- .../emailVerificationTemplate.svelte | 38 +++++++++++ .../auth/templates/localeOptions.svelte | 13 ++-- 8 files changed, 245 insertions(+), 57 deletions(-) create mode 100644 src/routes/console/project-[project]/auth/templates/+page.ts create mode 100644 src/routes/console/project-[project]/auth/templates/emailInviteTemplate.svelte create mode 100644 src/routes/console/project-[project]/auth/templates/emailMagicUrlTemplate.svelte create mode 100644 src/routes/console/project-[project]/auth/templates/emailRecoveryTemplate.svelte create mode 100644 src/routes/console/project-[project]/auth/templates/emailVerificationTemplate.svelte diff --git a/src/routes/console/project-[project]/auth/templates/+page.svelte b/src/routes/console/project-[project]/auth/templates/+page.svelte index cc16b21e4..1beae6bcf 100644 --- a/src/routes/console/project-[project]/auth/templates/+page.svelte +++ b/src/routes/console/project-[project]/auth/templates/+page.svelte @@ -6,22 +6,43 @@ import { Container } from '$lib/layout'; import { sdk } from '$lib/stores/sdk'; import { project } from '../../store'; - import EmailTemplate from './emailTemplate.svelte'; - import SmsTemplate from './smsTemplate.svelte'; import { addNotification } from '$lib/stores/notifications'; import { onMount } from 'svelte'; + import type { PageData } from './$types'; + import EmailVerificationTemplate from './emailVerificationTemplate.svelte'; + import EmailMagicUrlTemplate from './emailMagicUrlTemplate.svelte'; + import EmailRecoveryTemplate from './emailRecoveryTemplate.svelte'; + import EmailInviteTemplate from './emailInviteTemplate.svelte'; + export let data: PageData; const projectId = $page.params.project; + interface EmailTemplate { + senderName: string; + senderEmail: string; + locale: string; + subject: string; + message: string; + } + let emailTemplates: + | { + verification: EmailTemplate; + magicSession: EmailTemplate; + recovery: EmailTemplate; + invitation: EmailTemplate; + } + | any = {}; - let template: any; onMount(() => { - loadEmailTemplate('verification', 'en_us'); + loadEmailTemplate('verification', 'en-us'); + loadEmailTemplate('magicSession', 'en-us'); + loadEmailTemplate('recovery', 'en-us'); + loadEmailTemplate('invitation', 'en-us'); }); async function loadEmailTemplate(type: string, locale: string) { const path = '/projects/' + projectId + '/templates/email/' + type + '/' + locale; try { - template = await sdk.forConsole.client.call( + emailTemplates[type] = await sdk.forConsole.client.call( 'GET', new URL(sdk.forConsole.client.config.endpoint + path) ); @@ -34,10 +55,11 @@ } async function saveEmailTemplate(type: string, data: any) { + console.log(data); const path = '/projects/' + projectId + '/templates/email/' + type + '/' + data.locale; try { - template = await sdk.forConsole.client.call( + emailTemplates[type] = await sdk.forConsole.client.call( 'PATCH', new URL(sdk.forConsole.client.config.endpoint + path), { 'content-type': 'application/json' }, @@ -100,21 +122,35 @@ Send a verification email to users that sign in with their email and password.

- saveEmailTemplate('verification', data)} /> + Magic URL - saveEmailTemplate('verification', data)} /> + Reset Password - + Invite User - + @@ -137,11 +173,11 @@

Send a verification SMS to users that sign in with their phone

- + Login - + diff --git a/src/routes/console/project-[project]/auth/templates/+page.ts b/src/routes/console/project-[project]/auth/templates/+page.ts new file mode 100644 index 000000000..ba12ccdb9 --- /dev/null +++ b/src/routes/console/project-[project]/auth/templates/+page.ts @@ -0,0 +1,17 @@ +import { sdk } from '$lib/stores/sdk'; +import type { PageLoad } from './$types'; + +export const load: PageLoad = async () => { + let codes = { localeCodes: [] }; + try { + codes = await sdk.forProject.client.call( + 'GET', + new URL(sdk.forProject.client.config.endpoint + '/locale/codes') + ); + } catch (e) { + console.log(e); + } + return { + localeCodes: codes.localeCodes + }; +}; diff --git a/src/routes/console/project-[project]/auth/templates/emailInviteTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailInviteTemplate.svelte new file mode 100644 index 000000000..29f6e45bd --- /dev/null +++ b/src/routes/console/project-[project]/auth/templates/emailInviteTemplate.svelte @@ -0,0 +1,38 @@ + + + + + saveEmailTemplate('invitation', { ...data, locale })} /> + diff --git a/src/routes/console/project-[project]/auth/templates/emailMagicUrlTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailMagicUrlTemplate.svelte new file mode 100644 index 000000000..62fc23745 --- /dev/null +++ b/src/routes/console/project-[project]/auth/templates/emailMagicUrlTemplate.svelte @@ -0,0 +1,37 @@ + + + + + saveEmailTemplate('magicSession', { ...data, locale })} /> + diff --git a/src/routes/console/project-[project]/auth/templates/emailRecoveryTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailRecoveryTemplate.svelte new file mode 100644 index 000000000..993a1a51c --- /dev/null +++ b/src/routes/console/project-[project]/auth/templates/emailRecoveryTemplate.svelte @@ -0,0 +1,38 @@ + + + + + saveEmailTemplate('recovery', { ...data, locale })} /> + diff --git a/src/routes/console/project-[project]/auth/templates/emailTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailTemplate.svelte index f2e143e77..9fd9b2f4f 100644 --- a/src/routes/console/project-[project]/auth/templates/emailTemplate.svelte +++ b/src/routes/console/project-[project]/auth/templates/emailTemplate.svelte @@ -1,5 +1,4 @@ - -
- - - - - - - - - -
-
+
+ + + + + + + + +
diff --git a/src/routes/console/project-[project]/auth/templates/emailVerificationTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailVerificationTemplate.svelte new file mode 100644 index 000000000..b9384afc9 --- /dev/null +++ b/src/routes/console/project-[project]/auth/templates/emailVerificationTemplate.svelte @@ -0,0 +1,38 @@ + + + + + saveEmailTemplate('verification', { ...data, locale })} /> + diff --git a/src/routes/console/project-[project]/auth/templates/localeOptions.svelte b/src/routes/console/project-[project]/auth/templates/localeOptions.svelte index 66f1b7c90..0a5395aa9 100644 --- a/src/routes/console/project-[project]/auth/templates/localeOptions.svelte +++ b/src/routes/console/project-[project]/auth/templates/localeOptions.svelte @@ -1,14 +1,17 @@ ({ + label: code.name, + value: code.code + })) ]} />