From 94e605de42b0c81f14ef8eab091d91f9e68a6d44 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Fri, 2 Feb 2024 02:49:38 +0000 Subject: [PATCH 1/6] Fix provider and provider type checking --- src/lib/helpers/types.ts | 7 +++++ .../messaging/message-[message]/+page.svelte | 4 +++ .../providers/createProviderDropdown.svelte | 6 +---- .../provider-[provider]/updateStatus.svelte | 26 ++++++++++++------- .../messaging/providers/wizard/store.ts | 7 +++-- 5 files changed, 32 insertions(+), 18 deletions(-) diff --git a/src/lib/helpers/types.ts b/src/lib/helpers/types.ts index 35e8214c9b..d3107faa14 100644 --- a/src/lib/helpers/types.ts +++ b/src/lib/helpers/types.ts @@ -29,3 +29,10 @@ export type Column = { */ filter?: boolean; }; + +export function isValueOfStringEnum>( + enumType: T, + value: string +): value is T[keyof T] { + return Object.values(enumType).includes(value); +} diff --git a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte index 3db50213c1..c259ee99c2 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte @@ -18,10 +18,14 @@ import { wizard } from '$lib/stores/wizard'; import Wizard from '../wizard.svelte'; import type { PageData } from './$types'; + import { isValueOfStringEnum } from '$lib/helpers/types'; export let data: PageData; async function onEdit() { + if (!isValueOfStringEnum(ProviderTypes, $message.providerType)) { + throw new Error(`Invalid provider type: ${$message.providerType}`); + } $operation = 'update'; $providerType = $message.providerType; $topicsById = {}; diff --git a/src/routes/console/project-[project]/messaging/providers/createProviderDropdown.svelte b/src/routes/console/project-[project]/messaging/providers/createProviderDropdown.svelte index d027d35941..e7918d017d 100644 --- a/src/routes/console/project-[project]/messaging/providers/createProviderDropdown.svelte +++ b/src/routes/console/project-[project]/messaging/providers/createProviderDropdown.svelte @@ -7,13 +7,9 @@ import { providerType, provider } from './wizard/store'; import { ProviderTypes } from '../providerType.svelte'; import { Providers } from '../provider.svelte'; + import { isValueOfStringEnum } from '$lib/helpers/types'; export let showCreateDropdown = false; - - const isValueOfStringEnum = >( - enumType: T, - value: string - ): value is T[keyof T] => Object.values(enumType).includes(value); diff --git a/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte b/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte index e6ef74f4e1..d4134dc73b 100644 --- a/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte +++ b/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte @@ -1,19 +1,20 @@ diff --git a/src/routes/console/project-[project]/messaging/message-[message]/pushPreview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/pushPreview.svelte index 067ea20039..956bdc8de2 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/pushPreview.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/pushPreview.svelte @@ -4,7 +4,7 @@ import type { Models } from '@appwrite.io/console'; import PushPhone from '../pushPhone.svelte'; - export let message: Models.Message & { data: Record; }; + export let message: Models.Message & { data: Record }; export let onEdit: () => void = null; diff --git a/src/routes/console/project-[project]/messaging/message-[message]/smsPreview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/smsPreview.svelte index b6458a55c4..8e6e772bb4 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/smsPreview.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/smsPreview.svelte @@ -4,7 +4,7 @@ import type { Models } from '@appwrite.io/console'; import SMSPhone from '../smsPhone.svelte'; - export let message: Models.Message & { data: Record; }; + export let message: Models.Message & { data: Record }; export let onEdit: () => void = null; diff --git a/src/routes/console/project-[project]/messaging/providerType.svelte b/src/routes/console/project-[project]/messaging/providerType.svelte index 8d70392d93..6d5ed9ebc6 100644 --- a/src/routes/console/project-[project]/messaging/providerType.svelte +++ b/src/routes/console/project-[project]/messaging/providerType.svelte @@ -7,7 +7,7 @@
- diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/updateDescription.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/updateDescription.svelte deleted file mode 100644 index 137e7944c1..0000000000 --- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/updateDescription.svelte +++ /dev/null @@ -1,65 +0,0 @@ - - -
- - Description - - -
    - -
-
- - - - -
-
diff --git a/src/routes/console/project-[project]/messaging/wizard/emailFormList.svelte b/src/routes/console/project-[project]/messaging/wizard/emailFormList.svelte index 50a3d47344..4b17e43e19 100644 --- a/src/routes/console/project-[project]/messaging/wizard/emailFormList.svelte +++ b/src/routes/console/project-[project]/messaging/wizard/emailFormList.svelte @@ -52,7 +52,6 @@ createEmailMessage({ topics: $messageParams[ProviderTypes.Email]?.topics || [], targets: $messageParams[ProviderTypes.Email]?.targets || [], - description: $messageParams[ProviderTypes.Email]?.description || 'Test message', status: MessageStatuses.PROCESSING, messageId: ID.unique(), // TODO: properly handle the test email address @@ -126,13 +125,6 @@ Enable the HTML mode if your message contains HTML tags. - - {#if $operation === 'create'} {#if !showCustomId}
diff --git a/src/routes/console/project-[project]/messaging/wizard/pushFormList.svelte b/src/routes/console/project-[project]/messaging/wizard/pushFormList.svelte index 452d204140..8102bd3338 100644 --- a/src/routes/console/project-[project]/messaging/wizard/pushFormList.svelte +++ b/src/routes/console/project-[project]/messaging/wizard/pushFormList.svelte @@ -86,7 +86,6 @@ createPushMessage({ topics: $messageParams[ProviderTypes.Push]?.topics || [], targets: $messageParams[ProviderTypes.Push]?.targets || [], - description: $messageParams[ProviderTypes.Push]?.description || 'Test push', status: MessageStatuses.PROCESSING, messageId: ID.unique(), // TODO: properly handle the test email address @@ -224,13 +223,6 @@
- - {#if $operation === 'create'} {#if !showCustomId}
diff --git a/src/routes/console/project-[project]/messaging/wizard/smsFormList.svelte b/src/routes/console/project-[project]/messaging/wizard/smsFormList.svelte index 946558e536..fdd60d4690 100644 --- a/src/routes/console/project-[project]/messaging/wizard/smsFormList.svelte +++ b/src/routes/console/project-[project]/messaging/wizard/smsFormList.svelte @@ -23,14 +23,7 @@ MessageStatuses, operation } from './store'; - import { - Button, - FormList, - InputEmail, - InputRadio, - InputText, - InputTextarea - } from '$lib/elements/forms'; + import { Button, FormList, InputEmail, InputRadio, InputTextarea } from '$lib/elements/forms'; import { Pill } from '$lib/elements'; import { CustomId, Modal } from '$lib/components'; import { user } from '$lib/stores/user'; @@ -51,7 +44,6 @@ createSMSMessage({ topics: $messageParams[ProviderTypes.Email]?.topics || [], targets: $messageParams[ProviderTypes.Email]?.targets || [], - description: $messageParams[ProviderTypes.Email]?.description || 'Test message', status: MessageStatuses.PROCESSING, messageId: ID.unique(), // TODO: properly handle the test email address @@ -115,13 +107,6 @@
- - {#if $operation === 'create'} {#if !showCustomId}
diff --git a/src/routes/console/project-[project]/messaging/wizard/store.ts b/src/routes/console/project-[project]/messaging/wizard/store.ts index 0af938e70b..f651df27d8 100644 --- a/src/routes/console/project-[project]/messaging/wizard/store.ts +++ b/src/routes/console/project-[project]/messaging/wizard/store.ts @@ -1,6 +1,6 @@ import type { Models } from '@appwrite.io/console'; -import { ProviderTypes } from '../providerType.svelte'; import { writable } from 'svelte/store'; +import { ProviderTypes } from '../providerType.svelte'; export enum MessageStatuses { DRAFT = 'draft', @@ -15,7 +15,6 @@ export type MessageParams = { topics: string[]; users: string[]; targets: string[]; - description: string; status: MessageStatuses; scheduledAt?: string; }; From 2962cadf241d6c7a3d0d20401dc6551082657d11 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 2 Feb 2024 11:24:01 +0100 Subject: [PATCH 5/6] chore: use node 20 in ci --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 16da364f43..890c78c8e6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,7 +18,7 @@ jobs: - name: Use Node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 - name: Audit dependencies run: npm audit --audit-level low - name: Install dependencies From d3414aa352553177681045540f5ceb436038aaad Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 2 Feb 2024 12:00:35 +0100 Subject: [PATCH 6/6] chore: fix lint issues --- src/lib/constants.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 2bcc603663..e58e30f826 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -237,7 +237,8 @@ export const scopes: { }, { scope: 'subscribers.write', - description: "Access to create, update, and delete your project's messaging topic subscribers", + description: + "Access to create, update, and delete your project's messaging topic subscribers", category: 'Messaging' }, {