From 8cdbe50f4dbfe0294bac84a137eb4f8507a77ea0 Mon Sep 17 00:00:00 2001 From: Darshan Date: Wed, 21 May 2025 18:21:25 +0530 Subject: [PATCH] add: domain in bg if not exists. --- .../settings/domains/add-domain/+page.svelte | 19 ++++++++++++++++++- .../settings/domains/add-domain/+page.ts | 9 ++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte index dbaeb6244..6267fa40b 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte @@ -9,10 +9,12 @@ import { Dependencies } from '$lib/constants'; import { writable } from 'svelte/store'; import { onMount } from 'svelte'; + import { isCloud } from '$lib/system'; + import { project } from '$routes/(console)/project-[region]-[project]/store'; const routeBase = `${base}/project-${page.params.region}-${page.params.project}/settings/domains`; - // let { data } = $props(); + let { data } = $props(); let formComponent: Form; let isSubmitting = $state(writable(false)); @@ -25,6 +27,21 @@ }); async function addDomain() { + let domain = data.domains?.domains.find((d) => d.domain === domainName); + + if (!domain && isCloud) { + try { + domain = await sdk.forConsole.domains.create($project.teamId, domainName); + } catch (error) { + addNotification({ + type: 'error', + message: error.message + }); + + return; + } + } + try { const rule = await sdk .forProject(page.params.region, page.params.project) diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.ts b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.ts index d4e21a917..a5408d22d 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.ts @@ -2,20 +2,23 @@ import { Query } from '@appwrite.io/console'; import { sdk } from '$lib/stores/sdk'; import { RuleTrigger, RuleType } from '$lib/stores/sdk'; import { Dependencies } from '$lib/constants.js'; +import { isCloud } from '$lib/system'; export const load = async ({ depends, params }) => { depends(Dependencies.DOMAINS); - const [rules] = await Promise.all([ + const [rules, domains] = await Promise.all([ sdk .forProject(params.region, params.project) .proxy.listRules([ Query.equal('type', RuleType.API), Query.equal('trigger', RuleTrigger.MANUAL) - ]) + ]), + isCloud ? sdk.forConsole.domains.list() : Promise.resolve(null) ]); return { - rules + rules, + domains }; };