From 5d2aace1a12a630ccbb4dfcf760f80ed55eb90a8 Mon Sep 17 00:00:00 2001 From: Bradley Schofield Date: Fri, 28 Jul 2023 15:20:46 +0100 Subject: [PATCH 1/5] Start work on firebase OAuth --- src/lib/stores/sdk.ts | 5 +++-- .../settings/migrations/(import)/step1.svelte | 20 ++++++++++++++++++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/lib/stores/sdk.ts b/src/lib/stores/sdk.ts index f6f84a275..7a47c74aa 100644 --- a/src/lib/stores/sdk.ts +++ b/src/lib/stores/sdk.ts @@ -9,6 +9,7 @@ import { Functions, Health, Locale, + Migrations, Projects, Storage, Teams, @@ -34,8 +35,8 @@ const sdkForProject = { project: new Project(clientProject), storage: new Storage(clientProject), teams: new Teams(clientProject), - users: new Users(clientProject) - // migrations: new Migrations(clientProject) + users: new Users(clientProject), + migrations: new Migrations(clientProject) }; export const getSdkForProject = (projectId: string) => { diff --git a/src/routes/console/project-[project]/settings/migrations/(import)/step1.svelte b/src/routes/console/project-[project]/settings/migrations/(import)/step1.svelte index 41df2cfbb..c2bc88707 100644 --- a/src/routes/console/project-[project]/settings/migrations/(import)/step1.svelte +++ b/src/routes/console/project-[project]/settings/migrations/(import)/step1.svelte @@ -3,6 +3,8 @@ import { Button, FormList, InputNumber, InputPassword, InputText } from '$lib/elements/forms'; import { WizardStep } from '$lib/layout'; import type { Provider } from '$lib/stores/migration'; + import { sdk } from '$lib/stores/sdk'; + import { page } from '$app/stores'; import { provider } from '.'; const providers: Record = { @@ -12,6 +14,22 @@ nhost: 'NHost' }; + function connectGoogle() { + const redirect = new URL($page.url); + const target = new URL( + `${sdk.forProject.client.config.endpoint}/migrations/firebase/connect` + ); + target.searchParams.set('projectId', $page.params.project); + target.searchParams.set('redirect', redirect.toString()); + return target; + } + + // function getFirebaseProjects() { + // sdk.forProject.migrations.listFirebaseProjects().then((res) => { + // console.log(res); + // }); + // } + let showAuth = false; @@ -59,7 +77,7 @@ {:else if $provider.provider === 'firebase'}

Sign in with Google to get started

-
From f922cc17911a9073703c11ede4f92f93849877c9 Mon Sep 17 00:00:00 2001 From: Bradley Schofield Date: Fri, 28 Jul 2023 15:24:04 +0100 Subject: [PATCH 2/5] Update sdk.ts --- src/lib/stores/sdk.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/lib/stores/sdk.ts b/src/lib/stores/sdk.ts index 7a47c74aa..2d1d7304c 100644 --- a/src/lib/stores/sdk.ts +++ b/src/lib/stores/sdk.ts @@ -9,7 +9,6 @@ import { Functions, Health, Locale, - Migrations, Projects, Storage, Teams, @@ -35,8 +34,8 @@ const sdkForProject = { project: new Project(clientProject), storage: new Storage(clientProject), teams: new Teams(clientProject), - users: new Users(clientProject), - migrations: new Migrations(clientProject) + users: new Users(clientProject) + //migrations: new Migrations(clientProject) }; export const getSdkForProject = (projectId: string) => { From 274e1107145299173790194cf2f70b9b374add6b Mon Sep 17 00:00:00 2001 From: Bradley Schofield Date: Fri, 28 Jul 2023 16:40:56 +0100 Subject: [PATCH 3/5] Add stage 2 of Firebase OAuth --- src/lib/stores/sdk.ts | 5 ++- .../settings/migrations/(import)/step1.svelte | 40 +++++++++++++------ 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/lib/stores/sdk.ts b/src/lib/stores/sdk.ts index 2d1d7304c..7a47c74aa 100644 --- a/src/lib/stores/sdk.ts +++ b/src/lib/stores/sdk.ts @@ -9,6 +9,7 @@ import { Functions, Health, Locale, + Migrations, Projects, Storage, Teams, @@ -34,8 +35,8 @@ const sdkForProject = { project: new Project(clientProject), storage: new Storage(clientProject), teams: new Teams(clientProject), - users: new Users(clientProject) - //migrations: new Migrations(clientProject) + users: new Users(clientProject), + migrations: new Migrations(clientProject) }; export const getSdkForProject = (projectId: string) => { diff --git a/src/routes/console/project-[project]/settings/migrations/(import)/step1.svelte b/src/routes/console/project-[project]/settings/migrations/(import)/step1.svelte index c2bc88707..e71a1ec1c 100644 --- a/src/routes/console/project-[project]/settings/migrations/(import)/step1.svelte +++ b/src/routes/console/project-[project]/settings/migrations/(import)/step1.svelte @@ -24,13 +24,19 @@ return target; } - // function getFirebaseProjects() { - // sdk.forProject.migrations.listFirebaseProjects().then((res) => { - // console.log(res); - // }); - // } + function getFirebaseProjects() { + sdk.forProject.migrations.listFirebaseProjects().then((res) => { + firebaseProjects = res.projects; + }); + } + + let firebaseProjects = []; let showAuth = false; + + $: if ($provider.provider === 'firebase') { + getFirebaseProjects(); + } @@ -75,13 +81,23 @@ bind:value={$provider.apiKey} /> {:else if $provider.provider === 'firebase'} -
-

Sign in with Google to get started

- -
- + {#if firebaseProjects.length == 0} +
+

Sign in with Google to get started

+ +
+ {:else} + {#each firebaseProjects as project} +
+
+

{project.displayName}

+
+
+ {/each} + {/if} +

{/if}