From e58a45c5ad6bfc31911ba51157e0bcf16de9c558 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 30 Nov 2023 16:44:43 -0800 Subject: [PATCH 1/2] Update create message wizard to support push --- .../project-[project]/messaging/create.svelte | 14 +- .../messaging/pushPhone.svelte | 16 ++ .../messaging/wizard/pushFormList.svelte | 243 ++++++++++++++++++ .../messaging/wizard/step1.svelte | 12 +- .../messaging/wizard/store.ts | 2 +- 5 files changed, 279 insertions(+), 8 deletions(-) create mode 100644 src/routes/console/project-[project]/messaging/pushPhone.svelte create mode 100644 src/routes/console/project-[project]/messaging/wizard/pushFormList.svelte diff --git a/src/routes/console/project-[project]/messaging/create.svelte b/src/routes/console/project-[project]/messaging/create.svelte index 3c9924a976..feeb993e42 100644 --- a/src/routes/console/project-[project]/messaging/create.svelte +++ b/src/routes/console/project-[project]/messaging/create.svelte @@ -54,11 +54,18 @@ ); break; case ProviderTypes.Push: + const customData: Record = {}; + const { data } = $messageParams[ProviderTypes.Push]; + if (data && data.length > 0) { + data.forEach((item) => { + if (item[0] === '') return; + customData[item[0]] = item[1]; + }); + } + response = await sdk.forProject.client.call( 'POST', - new URL( - sdk.forProject.client.config.endpoint + '/messaging/providers/telesign' - ), + new URL(sdk.forProject.client.config.endpoint + '/messaging/messages/push'), { 'X-Appwrite-Project': sdk.forProject.client.config.project, 'content-type': 'application/json', @@ -66,6 +73,7 @@ }, { ...$messageParams[$providerType], + data: customData, messageId } ); diff --git a/src/routes/console/project-[project]/messaging/pushPhone.svelte b/src/routes/console/project-[project]/messaging/pushPhone.svelte new file mode 100644 index 0000000000..2acfc19f85 --- /dev/null +++ b/src/routes/console/project-[project]/messaging/pushPhone.svelte @@ -0,0 +1,16 @@ + + + +
+

{title}

+

{body}

+
+ + diff --git a/src/routes/console/project-[project]/messaging/wizard/pushFormList.svelte b/src/routes/console/project-[project]/messaging/wizard/pushFormList.svelte new file mode 100644 index 0000000000..49ec8bfcad --- /dev/null +++ b/src/routes/console/project-[project]/messaging/wizard/pushFormList.svelte @@ -0,0 +1,243 @@ + + + + +
+ + + +
+ + + + + + + + + + Enter the phone number to which the test message will be +
(selected = 'other')} + on:keyup|self={clickOnEnter} + role="button" + tabindex="0"> + +
+
+
+ + + + + +
+
+
+ +
+
    + {#each customData || [] as _, rowIndex} + + + + + + + + + {/each} +
+ {#if dataError} + {dataError} + {/if} + +
+
+ + + {#if !showCustomId} +
+ (showCustomId = !showCustomId)} + > +
+ {:else} + + {/if} +
+ +
diff --git a/src/routes/console/project-[project]/messaging/wizard/step1.svelte b/src/routes/console/project-[project]/messaging/wizard/step1.svelte index dcdc4ed00b..4fffcc771d 100644 --- a/src/routes/console/project-[project]/messaging/wizard/step1.svelte +++ b/src/routes/console/project-[project]/messaging/wizard/step1.svelte @@ -5,13 +5,15 @@ import { ProviderTypes } from '../providerType.svelte'; import EmailFormList from './emailFormList.svelte'; import SmsFormList from './smsFormList.svelte'; + import PushFormList, { validateData } from './pushFormList.svelte'; - async function beforeSubmit() { - console.log($messageParams[$providerType]); - } + async function beforeSubmit() {} - + Message @@ -22,5 +24,7 @@ {:else if $providerType === ProviderTypes.Sms} + {:else if $providerType === ProviderTypes.Push} + {/if} diff --git a/src/routes/console/project-[project]/messaging/wizard/store.ts b/src/routes/console/project-[project]/messaging/wizard/store.ts index 6ec774cc82..df3fecdcec 100644 --- a/src/routes/console/project-[project]/messaging/wizard/store.ts +++ b/src/routes/console/project-[project]/messaging/wizard/store.ts @@ -30,7 +30,7 @@ export type SMSMessageParams = MessageParams & { export type PushMessageParams = MessageParams & { title: string; body: string; - data: Record; + data: [string, string][]; action?: string; icon?: string; sound?: string; From f92dfce933ad0c685ac163603b284f57551bfc05 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 30 Nov 2023 16:56:52 -0800 Subject: [PATCH 2/2] Update message detail to show push preview --- .../messaging/message-[message]/+page.svelte | 3 ++ .../message-[message]/pushPreview.svelte | 31 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/routes/console/project-[project]/messaging/message-[message]/pushPreview.svelte 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 8c5734c02a..c949eba855 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte @@ -6,6 +6,7 @@ import { message } from './store'; import { ProviderTypes } from '../providerType.svelte'; import SMSPreview from './smsPreview.svelte'; + import PushPreview from './pushPreview.svelte'; @@ -14,6 +15,8 @@ {:else if $message.providerType === ProviderTypes.Sms} + {:else if $message.providerType === ProviderTypes.Push} + {/if} diff --git a/src/routes/console/project-[project]/messaging/message-[message]/pushPreview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/pushPreview.svelte new file mode 100644 index 0000000000..e632394d5c --- /dev/null +++ b/src/routes/console/project-[project]/messaging/message-[message]/pushPreview.svelte @@ -0,0 +1,31 @@ + + + +
+ Preview + +
+ + + + + + + + + + + + + +