fix: review, add tracking

This commit is contained in:
Arman
2023-08-09 10:31:10 +02:00
parent 2bd9dcc219
commit 9ba4cf1702
13 changed files with 109 additions and 29 deletions
+12 -1
View File
@@ -221,5 +221,16 @@ export enum Submit {
BucketUpdateExtensions = 'submit_bucket_update_extensions',
FileCreate = 'submit_file_create',
FileDelete = 'submit_file_delete',
FileUpdatePermissions = 'submit_file_update_permissions'
FileUpdatePermissions = 'submit_file_update_permissions',
EmailChangeLocale = 'submit_email_change_locale',
EmailResetTemplate = 'submit_email_reset_template',
EmailUpdateInviteTemplate = 'submit_email_update_invite_template',
EmailUpdateMagicUrlTemplate = 'submit_email_update_magic_url_template',
EmailUpdateRecoveryTemplate = 'submit_email_update_recovery_template',
EmailUpdateVerificationTemplate = 'submit_email_update_verification_template',
SmsChangeLocale = 'submit_sms_change_locale',
SmsResetTemplate = 'submit_sms_reset_template',
SmsUpdateInviteTemplate = 'submit_sms_update_invite_template',
SmsUpdateLoginTemplate = 'submit_sms_update_login_template',
SmsUpdateVerificationTemplate = 'submit_sms_update_verification_template'
}
@@ -38,7 +38,7 @@
import EmailInviteTemplate from './emailInviteTemplate.svelte';
import SmsVerificationTemplate from './smsVerificationTemplate.svelte';
import SmsLoginTemplate from './smsLoginTemplate.svelte';
import { baseEmailTemplate, baseSmsTemplate, emailTemplate, smsTemplate } from './strote';
import { baseEmailTemplate, baseSmsTemplate, emailTemplate, smsTemplate } from './store';
import { Button } from '$lib/elements/forms';
export let data: PageData;
@@ -91,7 +91,7 @@
{
name: 'Add SMTP server',
method: () => {
goto(base + '/console/project-' + $project.$id + '/settings/smtp');
goto(`${base}/console/project-${$project.$id}/settings/smtp`);
}
}
]}>
@@ -165,7 +165,7 @@
</Collapsible>
</svelte:fragment>
<svelte:fragment slot="actions">
<Button href={base + '/console/project-' + $project.$id + '/settings/smtp'} secondary>
<Button href={`${base}/console/project-${$project.$id}/settings/smtp`} secondary>
Add SMTP server
</Button>
</svelte:fragment>
@@ -4,9 +4,10 @@
import type { Models } from '@appwrite.io/console';
import { loadEmailTemplate } from './+page.svelte';
import { page } from '$app/stores';
import { baseEmailTemplate, emailTemplate } from './strote';
import { baseEmailTemplate, emailTemplate } from './store';
import { addNotification } from '$lib/stores/notifications';
import { Id } from '$lib/components';
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let localeCodes: Models.LocaleCode[];
@@ -20,16 +21,17 @@
}, 1000);
try {
const template = await loadEmailTemplate(projectId, 'invitation', locale);
clearTimeout(timeout);
emailTemplate.set(template);
$baseEmailTemplate = { ...$emailTemplate };
trackEvent(Submit.EmailChangeLocale, { locale, type: 'invitation' });
} catch (error) {
clearTimeout(timeout);
trackError(error, Submit.EmailChangeLocale);
addNotification({
type: 'error',
message: error.message
});
} finally {
clearTimeout(timeout);
loading = false;
}
}
@@ -3,10 +3,11 @@
import EmailTemplate from './emailTemplate.svelte';
import LocaleOptions from './localeOptions.svelte';
import type { Models } from '@appwrite.io/console';
import { baseEmailTemplate, emailTemplate } from './strote';
import { baseEmailTemplate, emailTemplate } from './store';
import { page } from '$app/stores';
import { addNotification } from '$lib/stores/notifications';
import { Id } from '$lib/components';
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let localeCodes: Models.LocaleCode[];
const projectId = $page.params.project;
@@ -20,16 +21,18 @@
}, 1000);
try {
const template = await loadEmailTemplate(projectId, 'magicSession', locale);
clearTimeout(timeout);
emailTemplate.set(template);
$baseEmailTemplate = { ...$emailTemplate };
trackEvent(Submit.EmailChangeLocale, { locale, type: 'magicSession' });
} catch (error) {
clearTimeout(timeout);
trackError(error, Submit.EmailChangeLocale);
addNotification({
type: 'error',
message: error.message
});
} finally {
clearTimeout(timeout);
loading = false;
}
}
@@ -2,11 +2,12 @@
import EmailTemplate from './emailTemplate.svelte';
import LocaleOptions from './localeOptions.svelte';
import type { Models } from '@appwrite.io/console';
import { baseEmailTemplate, emailTemplate } from './strote';
import { baseEmailTemplate, emailTemplate } from './store';
import { loadEmailTemplate } from './+page.svelte';
import { page } from '$app/stores';
import { addNotification } from '$lib/stores/notifications';
import { Id } from '$lib/components';
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let localeCodes: Models.LocaleCode[];
const projectId = $page.params.project;
@@ -20,16 +21,17 @@
}, 1000);
try {
const template = await loadEmailTemplate(projectId, 'recovery', locale);
clearTimeout(timeout);
emailTemplate.set(template);
$baseEmailTemplate = { ...$emailTemplate };
trackEvent(Submit.EmailChangeLocale, { locale, type: 'recovery' });
} catch (error) {
clearTimeout(timeout);
trackError(error, Submit.EmailChangeLocale);
addNotification({
type: 'error',
message: error.message
});
} finally {
clearTimeout(timeout);
loading = false;
}
}
@@ -11,12 +11,15 @@
import { sdk } from '$lib/stores/sdk';
import { project } from '../../store';
import ResetEmail from './resetEmail.svelte';
import { baseEmailTemplate, emailTemplate } from './strote';
import { baseEmailTemplate, emailTemplate } from './store';
import { deepEqual } from '$lib/helpers/object';
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let loading = false;
let openResetModal = false;
let eventType = Submit.EmailUpdateInviteTemplate;
async function saveEmailTemplate() {
if (!$emailTemplate.locale) {
addNotification({
@@ -26,6 +29,20 @@
return;
}
try {
switch ($emailTemplate.type) {
case 'invitation':
eventType = Submit.EmailUpdateInviteTemplate;
break;
case 'magicSession':
eventType = Submit.EmailUpdateMagicUrlTemplate;
break;
case 'recovery':
eventType = Submit.EmailUpdateRecoveryTemplate;
break;
case 'verification':
eventType = Submit.EmailUpdateVerificationTemplate;
break;
}
await sdk.forConsole.projects.updateEmailTemplate(
$project.$id,
$emailTemplate.type,
@@ -40,11 +57,16 @@
$baseEmailTemplate = {
...$emailTemplate
};
addNotification({
type: 'success',
message: `Email ${$emailTemplate.type} template for ${$emailTemplate.locale} updated`
});
trackEvent(eventType, {
locale: $emailTemplate.locale
});
} catch (e) {
trackError(e, eventType);
addNotification({
type: 'error',
message: e.message
@@ -3,10 +3,11 @@
import LocaleOptions from './localeOptions.svelte';
import type { Models } from '@appwrite.io/console';
import { loadEmailTemplate } from './+page.svelte';
import { baseEmailTemplate, emailTemplate } from './strote';
import { baseEmailTemplate, emailTemplate } from './store';
import { page } from '$app/stores';
import { Id } from '$lib/components';
import { addNotification } from '$lib/stores/notifications';
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let localeCodes: Models.LocaleCode[];
const projectId = $page.params.project;
@@ -20,16 +21,17 @@
}, 1000);
try {
const template = await loadEmailTemplate(projectId, 'verification', locale);
clearTimeout(timeout);
emailTemplate.set(template);
$baseEmailTemplate = { ...$emailTemplate };
trackEvent(Submit.EmailChangeLocale, { locale, type: 'verification' });
} catch (error) {
clearTimeout(timeout);
trackError(error, Submit.EmailChangeLocale);
addNotification({
type: 'error',
message: error.message
});
} finally {
clearTimeout(timeout);
loading = false;
}
}
@@ -1,10 +1,11 @@
<script lang="ts">
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
import { Modal } from '$lib/components';
import { Button } from '$lib/elements/forms';
import { sdk } from '$lib/stores/sdk';
import { project } from '../../store';
import { loadEmailTemplate } from './+page.svelte';
import { baseEmailTemplate, emailTemplate } from './strote';
import { baseEmailTemplate, emailTemplate } from './store';
export let show = false;
@@ -23,8 +24,14 @@
$emailTemplate.locale
);
$baseEmailTemplate = { ...$emailTemplate };
trackEvent(Submit.EmailResetTemplate, {
locale: $emailTemplate.locale,
type: $emailTemplate.type
});
show = false;
} catch (e) {
trackError(e, Submit.EmailResetTemplate);
error = e.message;
}
}
@@ -1,10 +1,11 @@
<script lang="ts">
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
import { Modal } from '$lib/components';
import { Button } from '$lib/elements/forms';
import { sdk } from '$lib/stores/sdk';
import { project } from '../../store';
import { loadSmsTemplate } from './+page.svelte';
import { baseSmsTemplate, smsTemplate } from './strote';
import { baseSmsTemplate, smsTemplate } from './store';
export let show = false;
@@ -24,8 +25,13 @@
$smsTemplate.locale
);
$baseSmsTemplate = { ...$smsTemplate };
trackEvent(Submit.SmsResetTemplate, {
locale: $smsTemplate.locale,
type: $smsTemplate.type
});
show = false;
} catch (e) {
trackError(e, Submit.SmsResetTemplate);
error = e.message;
}
}
@@ -2,11 +2,12 @@
import SmsTemplate from './smsTemplate.svelte';
import LocaleOptions from './localeOptions.svelte';
import type { Models } from '@appwrite.io/console';
import { baseSmsTemplate, smsTemplate } from './strote';
import { baseSmsTemplate, smsTemplate } from './store';
import { page } from '$app/stores';
import { loadSmsTemplate } from './+page.svelte';
import { addNotification } from '$lib/stores/notifications';
import { Id } from '$lib/components';
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let localeCodes: Models.LocaleCode[];
@@ -20,16 +21,17 @@
}, 1000);
try {
const template = await loadSmsTemplate(projectId, 'invitation', locale);
clearTimeout(timeout);
smsTemplate.set(template);
$baseSmsTemplate = { ...$smsTemplate };
trackEvent(Submit.SmsChangeLocale, { locale, type: 'invitation' });
} catch (error) {
clearTimeout(timeout);
trackError(error, Submit.SmsChangeLocale);
addNotification({
type: 'error',
message: error.message
});
} finally {
clearTimeout(timeout);
loading = false;
}
}
@@ -4,9 +4,10 @@
import type { Models } from '@appwrite.io/console';
import { page } from '$app/stores';
import { loadSmsTemplate } from './+page.svelte';
import { baseSmsTemplate, smsTemplate } from './strote';
import { baseSmsTemplate, smsTemplate } from './store';
import { addNotification } from '$lib/stores/notifications';
import { Id } from '$lib/components';
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let localeCodes: Models.LocaleCode[];
@@ -20,16 +21,18 @@
}, 1000);
try {
const template = await loadSmsTemplate(projectId, 'login', locale);
clearTimeout(timeout);
smsTemplate.set(template);
$baseSmsTemplate = { ...$smsTemplate };
trackEvent(Submit.SmsChangeLocale, { locale, type: 'login' });
} catch (error) {
clearTimeout(timeout);
trackError(error, Submit.SmsChangeLocale);
addNotification({
type: 'error',
message: error.message
});
} finally {
clearTimeout(timeout);
loading = false;
}
}
@@ -2,15 +2,18 @@
import { page } from '$app/stores';
import { Button, Form, FormList, InputTextarea } from '$lib/elements/forms';
import ResetSms from './resetSms.svelte';
import { baseSmsTemplate, smsTemplate } from './strote';
import { baseSmsTemplate, smsTemplate } from './store';
import { addNotification } from '$lib/stores/notifications';
import { sdk } from '$lib/stores/sdk';
import { deepEqual } from '$lib/helpers/object';
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let loading = false;
const projectId = $page.params.project;
let openResetModal = false;
let eventType = Submit.SmsUpdateInviteTemplate;
async function saveSmsTemplate() {
if (!$smsTemplate.locale) {
addNotification({
@@ -20,6 +23,17 @@
return;
}
try {
switch ($smsTemplate.type) {
case 'invitation':
eventType = Submit.SmsUpdateInviteTemplate;
break;
case 'login':
eventType = Submit.SmsUpdateLoginTemplate;
break;
case 'verification':
eventType = Submit.SmsUpdateVerificationTemplate;
break;
}
await sdk.forConsole.projects.updateSmsTemplate(
projectId,
$smsTemplate.type,
@@ -34,7 +48,11 @@
type: 'success',
message: `SMS ${$smsTemplate.type} template for ${$smsTemplate.locale} updated`
});
trackEvent(eventType, {
locale: $smsTemplate.locale
});
} catch (e) {
trackError(e, eventType);
addNotification({
type: 'error',
message: e.message
@@ -4,9 +4,10 @@
import type { Models } from '@appwrite.io/console';
import { page } from '$app/stores';
import { loadSmsTemplate } from './+page.svelte';
import { baseSmsTemplate, smsTemplate } from './strote';
import { baseSmsTemplate, smsTemplate } from './store';
import { Id } from '$lib/components';
import { addNotification } from '$lib/stores/notifications';
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let localeCodes: Models.LocaleCode[];
@@ -20,16 +21,17 @@
}, 1000);
try {
const template = await loadSmsTemplate(projectId, 'verification', locale);
clearTimeout(timeout);
smsTemplate.set(template);
$baseSmsTemplate = { ...$smsTemplate };
trackEvent(Submit.SmsChangeLocale, { locale, type: 'verification' });
} catch (error) {
clearTimeout(timeout);
trackError(error, Submit.SmsChangeLocale);
addNotification({
type: 'error',
message: error.message
});
} finally {
clearTimeout(timeout);
loading = false;
}
}