From f32e1d58b53b48d2131cae1eb26b7235b3352d92 Mon Sep 17 00:00:00 2001 From: tglide <26071571+TGlide@users.noreply.github.com> Date: Mon, 3 Jul 2023 13:19:48 +0100 Subject: [PATCH] refactor: migrations --- package.json | 2 +- src/lib/constants.ts | 10 ++++ .../settings/migrations/(import)/index.ts | 48 +++++++++---------- .../migrations/(import)/wizard.svelte | 34 +++++++++---- .../settings/migrations/+page.svelte | 4 +- .../settings/migrations/+page.ts | 2 +- 6 files changed, 63 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index 2a9ce4161..71ceda1f8 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@analytics/google-analytics": "^1.0.5", - "@appwrite.io/console": "0.1.0", + "@appwrite.io/console": "^0.1.1", "@appwrite.io/pink": "^0.0.6-rc.14", "@popperjs/core": "^2.11.6", "@sentry/svelte": "^7.44.2", diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 8c387aa82..ccdf6c6a0 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -169,6 +169,16 @@ export const scopes: { scope: 'health.read', description: "Access to read your project's health status", category: 'Other' + }, + { + scope: 'migrations.read', + description: "Access to read your project's migration status", + category: 'Other' + }, + { + scope: 'migrations.write', + description: 'Access to create migrations', + category: 'Other' } ]; diff --git a/src/routes/console/project-[project]/settings/migrations/(import)/index.ts b/src/routes/console/project-[project]/settings/migrations/(import)/index.ts index b2b860bd9..acb8feba2 100644 --- a/src/routes/console/project-[project]/settings/migrations/(import)/index.ts +++ b/src/routes/console/project-[project]/settings/migrations/(import)/index.ts @@ -73,48 +73,48 @@ type FormData = typeof initialFormData; export const formData = writable({ ...initialFormData }); type Resource = - | 'user' - | 'team' - | 'teammembership' - | 'file' - | 'bucket' - | 'function' - | 'envvar' - | 'deployment' - | 'database' - | 'collection' - | 'index' - | 'attribute' - | 'document'; + | 'User' + | 'Team' + | 'Membership' + | 'File' + | 'Bucket' + | 'Function' + | 'EnvVar' + | 'Deployment' + | 'Database' + | 'Collection' + | 'Index' + | 'Attribute' + | 'Document'; export const formDataToResources = (formData: FormData): Resource[] => { const resources: Resource[] = []; if (formData.users.root) { - resources.push('user'); + resources.push('User'); } if (formData.users.teams) { - resources.push('team'); - resources.push('teammembership'); + resources.push('Team'); + resources.push('Membership'); } if (formData.databases.root) { - resources.push('database'); + resources.push('Database'); } if (formData.databases.documents) { - resources.push('collection'); - resources.push('document'); + resources.push('Collection'); + resources.push('Document'); } if (formData.functions.root) { - resources.push('function'); + resources.push('Function'); } if (formData.functions.env) { - resources.push('envvar'); + resources.push('EnvVar'); } if (formData.functions.inactive) { - resources.push('deployment'); + resources.push('Deployment'); } if (formData.storage.root) { - resources.push('bucket'); - resources.push('file'); + resources.push('Bucket'); + resources.push('File'); } return resources; diff --git a/src/routes/console/project-[project]/settings/migrations/(import)/wizard.svelte b/src/routes/console/project-[project]/settings/migrations/(import)/wizard.svelte index 54c80ba7a..3be65b14c 100644 --- a/src/routes/console/project-[project]/settings/migrations/(import)/wizard.svelte +++ b/src/routes/console/project-[project]/settings/migrations/(import)/wizard.svelte @@ -16,15 +16,31 @@ const onFinish = async () => { const resources = formDataToResources($formData); - if ($provider.provider === 'appwrite') { - const res = await sdk.forProject.migrations.importAppwrite( - resources, - $provider.endpoint, - $provider.projectID, - $provider.apiKey - ); - console.log(res); - invalidate(Dependencies.MIGRATIONS); + switch ($provider.provider) { + case 'appwrite': { + const res = await sdk.forProject.migrations.migrationAppwrite( + resources, + $provider.endpoint, + $provider.projectID, + $provider.apiKey + ); + console.log(res); + invalidate(Dependencies.MIGRATIONS); + break; + } + case 'supabase': { + const res = await sdk.forProject.migrations.migrationSupabase( + resources, + $provider.endpoint, + $provider.apiKey, + $provider.host, + $provider.username, + $provider.password, + $provider.port + ); + console.log(res); + invalidate(Dependencies.MIGRATIONS); + } } resetImportStores(); wizard.hide(); diff --git a/src/routes/console/project-[project]/settings/migrations/+page.svelte b/src/routes/console/project-[project]/settings/migrations/+page.svelte index ff7b28c8d..9b5f2be08 100644 --- a/src/routes/console/project-[project]/settings/migrations/+page.svelte +++ b/src/routes/console/project-[project]/settings/migrations/+page.svelte @@ -26,11 +26,11 @@ let showDetails = false; let showCloudExport = false; - const mockImport = async () => { + const mockMigrate = async () => { console.log(await sdk.forProject.migrations.list()); }; - mockImport(); + mockMigrate(); const getStatus = (status: string) => { if (status === 'failed') { diff --git a/src/routes/console/project-[project]/settings/migrations/+page.ts b/src/routes/console/project-[project]/settings/migrations/+page.ts index 95cb09514..856641313 100644 --- a/src/routes/console/project-[project]/settings/migrations/+page.ts +++ b/src/routes/console/project-[project]/settings/migrations/+page.ts @@ -4,7 +4,7 @@ import { sdk } from '$lib/stores/sdk'; export async function load({ depends }) { depends(Dependencies.MIGRATIONS); - const { migrations } = await sdk.forProject.migrations.list(); + // const { migrations } = await sdk.forProject.migrations.list(); return { migrations: []