From 24f6921ed2ac588a5ebfc7de4ce5f70e95ce0769 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Sun, 11 Feb 2024 20:22:17 +0530 Subject: [PATCH 01/14] feat: initial commit --- src/lib/actions/analytics.ts | 1 + src/lib/sdk/auth.ts | 35 ++++ src/lib/stores/sdk.ts | 2 + .../auth/security/+page.svelte | 2 + .../auth/security/updateMockNumbers.svelte | 166 ++++++++++++++++++ src/routes/console/project-[project]/store.ts | 4 +- 6 files changed, 208 insertions(+), 2 deletions(-) create mode 100644 src/lib/sdk/auth.ts create mode 100644 src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte diff --git a/src/lib/actions/analytics.ts b/src/lib/actions/analytics.ts index 181592ef0..0d9b8bccd 100644 --- a/src/lib/actions/analytics.ts +++ b/src/lib/actions/analytics.ts @@ -183,6 +183,7 @@ export enum Submit { AuthPasswordHistoryUpdate = 'submit_auth_password_history_limit_update', AuthPasswordDictionaryUpdate = 'submit_auth_password_dictionary_update', AuthPersonalDataCheckUpdate = 'submit_auth_personal_data_check_update', + AuthMockNumbersUpdate = 'submit_auth_mock_numbers_update', SessionsLengthUpdate = 'submit_sessions_length_update', SessionsLimitUpdate = 'submit_sessions_limit_update', SessionDelete = 'submit_session_delete', diff --git a/src/lib/sdk/auth.ts b/src/lib/sdk/auth.ts new file mode 100644 index 000000000..4a77a485c --- /dev/null +++ b/src/lib/sdk/auth.ts @@ -0,0 +1,35 @@ +import type { Client, Models } from '@appwrite.io/console'; + +export type MockNumber = { + phone: string; + otp: string; +}; + +export type Project = Models.Project & { + authMockNumbers: MockNumber[]; +}; + +export class Auth { + client: Client; + + constructor(client: Client) { + this.client = client; + } + + async updateMockNumbers(projectId: string, numbers: MockNumber[]): Promise { + const path = `/projects/${projectId}/auth/mock-numbers`; + const params = { + projectId, + numbers: numbers + }; + const uri = new URL(this.client.config.endpoint + path); + return await this.client.call( + 'patch', + uri, + { + 'content-type': 'application/json' + }, + params + ); + } +} diff --git a/src/lib/stores/sdk.ts b/src/lib/stores/sdk.ts index caacafee7..aff27ae5a 100644 --- a/src/lib/stores/sdk.ts +++ b/src/lib/stores/sdk.ts @@ -21,6 +21,7 @@ import { Vcs } from '@appwrite.io/console'; import { Billing } from '../sdk/billing'; +import { Auth } from '$lib/sdk/auth'; const endpoint = VARS.APPWRITE_ENDPOINT ?? `${globalThis?.location?.origin}/v1`; @@ -65,6 +66,7 @@ export const sdk = { health: new Health(clientConsole), locale: new Locale(clientConsole), projects: new Projects(clientConsole), + auth: new Auth(clientConsole), teams: new Teams(clientConsole), users: new Users(clientConsole), migrations: new Migrations(clientConsole), diff --git a/src/routes/console/project-[project]/auth/security/+page.svelte b/src/routes/console/project-[project]/auth/security/+page.svelte index f69b91395..0e3ac4f68 100644 --- a/src/routes/console/project-[project]/auth/security/+page.svelte +++ b/src/routes/console/project-[project]/auth/security/+page.svelte @@ -1,5 +1,6 @@ + + + Mock Phone Numbers +

+ Create upto 10 mock phone numbers and verification codes for testing. These numbers + can be used to simulate the phone number verification without sending an SMS. +

+ + + + Use Mock phone numbers with caution + Please use fictious phone numbers and verification codes to avoid affecting real user accounts. + + + +
    + + + +
+
+ + {#if $numbers.length > 0} + + + Phone Number + Verification Code + + + + {#each $numbers as number, i} + + + + {number.phone} + + + + + + {number.otp} + + + + +
+ +
+
+
+ {/each} +
+
+ {/if} +
+ + + + +
diff --git a/src/routes/console/project-[project]/store.ts b/src/routes/console/project-[project]/store.ts index 6af331f1c..18d6eee6d 100644 --- a/src/routes/console/project-[project]/store.ts +++ b/src/routes/console/project-[project]/store.ts @@ -1,11 +1,11 @@ import { page } from '$app/stores'; -import type { Models } from '@appwrite.io/console'; +import type { Project } from '$lib/sdk/auth'; import type { BarSeriesOption } from 'echarts/charts'; import { derived, writable } from 'svelte/store'; export const project = derived( page, - ($page) => $page.data.project as Models.Project & { region?: string } + ($page) => $page.data.project as Project & { region?: string } ); export const onboarding = derived( project, From cd28d85d489f1b3da1afb1d63dd83e0a047fbe5a Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Sun, 11 Feb 2024 20:30:43 +0530 Subject: [PATCH 02/14] chore: linter --- .../auth/security/updateMockNumbers.svelte | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte b/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte index 327cf030d..fd86cfebe 100644 --- a/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte +++ b/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte @@ -30,7 +30,7 @@ let otp: string = null; onMount(async () => { - console.log($numbers) + console.log($numbers); }); async function updateMockNumbers() { @@ -92,8 +92,8 @@ Mock Phone Numbers

- Create upto 10 mock phone numbers and verification codes for testing. These numbers - can be used to simulate the phone number verification without sending an SMS. + Create upto 10 mock phone numbers and verification codes for testing. These numbers can be + used to simulate the phone number verification without sending an SMS.

From 7019113f57e33d99a2345635a131cf24ed7a2d19 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Sun, 16 Jun 2024 22:41:43 +0000 Subject: [PATCH 03/14] chore: sync and updates --- .../auth/security/updateMockNumbers.svelte | 172 ++++++++---------- 1 file changed, 73 insertions(+), 99 deletions(-) diff --git a/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte b/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte index fd86cfebe..f82c73e92 100644 --- a/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte +++ b/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte @@ -1,17 +1,8 @@ @@ -105,13 +80,17 @@ placeholder="Enter Phone Number" label="Phone Number" showLabel={index === 0 ? true : false} + on:input={onInputChanged} required /> {/if} - - {:else} - { - addPhoneNumber({ - phone: '', - otp: '' - }); - }}>Create a mock phone number - {/if} - + {:else} + { + addPhoneNumber({ + phone: '', + otp: '' + }); + }}>Create a mock phone number + {/if} + - - - -
+ + + + + From 06dcab01659b8e7548302b78093ed596395cc60b Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Thu, 20 Jun 2024 19:58:19 +0530 Subject: [PATCH 08/14] chore: update conditions --- .../auth/security/updateMockNumbers.svelte | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte b/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte index f6a33dc53..9fba534bd 100644 --- a/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte +++ b/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte @@ -11,21 +11,12 @@ import { Dependencies } from '$lib/constants'; import { writable } from 'svelte/store'; import Empty from '$lib/components/empty.svelte'; - import { onMount } from 'svelte'; let numbers = writable($project.authMockNumbers); let initialNumbers = []; let projectId: string = $project.$id; let submitDisabled = true; - // onMount(() => { - // initialNumbers = $project.authMockNumbers.map((num) => ({ ...num })); - // }); - - const onInputChanged = () => { - // submitDisabled = JSON.stringify($numbers) === JSON.stringify(initialNumbers); - }; - $: initialNumbers = $project.authMockNumbers.map((num) => ({ ...num })); $: submitDisabled = JSON.stringify($numbers) === JSON.stringify(initialNumbers); @@ -85,7 +76,6 @@ placeholder="Enter Phone Number" label="Phone Number" showLabel={index === 0 ? true : false} - on:input={onInputChanged} maxlength={16} required /> From c474e6a2842d578d173fb234ffcd0f13f97b3fcc Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Thu, 20 Jun 2024 20:33:55 +0530 Subject: [PATCH 09/14] Apply suggestions from code review Co-authored-by: Torsten Dittmann --- .../project-[project]/auth/security/updateMockNumbers.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte b/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte index 9fba534bd..ea63a5301 100644 --- a/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte +++ b/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte @@ -12,7 +12,7 @@ import { writable } from 'svelte/store'; import Empty from '$lib/components/empty.svelte'; - let numbers = writable($project.authMockNumbers); + const numbers = writable($project.authMockNumbers); let initialNumbers = []; let projectId: string = $project.$id; let submitDisabled = true; @@ -38,7 +38,7 @@ } } - const addPhoneNumber = (number?: MockNumber) => { + function addPhoneNumber(number?: MockNumber) { numbers.update((n) => [ ...n, { From b9e64b7b497e28962259a4a5dda4e66e1d2ca1b4 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Thu, 20 Jun 2024 20:36:24 +0530 Subject: [PATCH 10/14] fix: review comments --- .../project-[project]/auth/security/updateMockNumbers.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte b/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte index ea63a5301..a9c2463d7 100644 --- a/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte +++ b/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte @@ -48,7 +48,7 @@ ]); }; - const deletePhoneNumber = (index: number) => { + function deletePhoneNumber(index: number) { numbers.update((n) => { n.splice(index, 1); return n; From 760b664c49293225c89ec99cd7ace36fe5ad9cfa Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Thu, 20 Jun 2024 20:40:22 +0530 Subject: [PATCH 11/14] fix: review comments --- .../auth/security/updateMockNumbers.svelte | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte b/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte index a9c2463d7..b5e7adfea 100644 --- a/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte +++ b/src/routes/console/project-[project]/auth/security/updateMockNumbers.svelte @@ -38,12 +38,12 @@ } } - function addPhoneNumber(number?: MockNumber) { + function addPhoneNumber(number: MockNumber) { numbers.update((n) => [ ...n, { - phone: number?.phone, - otp: number?.otp + phone: number.phone, + otp: number.otp } ]); }; @@ -104,7 +104,10 @@