From 922773026964f3f549ca45db1a9f92a14ff19afa Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Sun, 25 Feb 2024 00:37:06 +1300 Subject: [PATCH 01/13] Update SDK --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc4a0b358..3cb51c8c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "@appwrite/console", "dependencies": { - "@appwrite.io/console": "^0.6.0-rc.12", + "@appwrite.io/console": "^0.6.0-rc.13", "@appwrite.io/pink": "0.4.0", "@appwrite.io/pink-icons": "0.4.0", "@popperjs/core": "^2.11.8", @@ -158,9 +158,9 @@ "integrity": "sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==" }, "node_modules/@appwrite.io/console": { - "version": "0.6.0-rc.12", - "resolved": "https://registry.npmjs.org/@appwrite.io/console/-/console-0.6.0-rc.12.tgz", - "integrity": "sha512-pDov75TCkBmJdUPrWuzRW7uM28HYqiMFtVFrUoavDd/lMPBS7RnPXL4sBHsGY8AUldHE3oBcGVPkNoQfEAgLlw==", + "version": "0.6.0-rc.13", + "resolved": "https://registry.npmjs.org/@appwrite.io/console/-/console-0.6.0-rc.13.tgz", + "integrity": "sha512-/c+HGkqdqWjjlzVgOmC6vb4t2jsHgbmX/aaDLoQHXFmaakEDWzK1cgVYRHoU3o14xIEpBupteh3KzOoqdLvvsQ==", "dependencies": { "cross-fetch": "3.1.5", "isomorphic-form-data": "2.0.0" diff --git a/package.json b/package.json index 0d826dea2..07f589ab2 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "e2e": "playwright test tests/e2e" }, "dependencies": { - "@appwrite.io/console": "^0.6.0-rc.12", + "@appwrite.io/console": "^0.6.0-rc.13", "@appwrite.io/pink": "0.4.0", "@appwrite.io/pink-icons": "0.4.0", "@popperjs/core": "^2.11.8", From 082ce65b5626018c20fd18c0865fdce0aeb14b21 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Sun, 25 Feb 2024 01:22:47 +1300 Subject: [PATCH 02/13] Allow setting sandbox mode for APNS --- .../messaging/providers/create.svelte | 1 + .../provider-[provider]/updateName.svelte | 4 ++-- .../provider-[provider]/updateStatus.svelte | 7 ++++--- .../messaging/providers/store.ts | 16 +++++++++++----- .../messaging/providers/update.svelte | 7 ++++--- .../messaging/providers/wizard/provider.svelte | 7 ++++--- .../messaging/providers/wizard/store.ts | 5 +++-- src/routes/login/+page.svelte | 6 ++++-- src/routes/mfa/+page.svelte | 2 +- src/routes/register/+page.svelte | 6 ++++-- 10 files changed, 38 insertions(+), 23 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/providers/create.svelte b/src/routes/console/project-[project]/messaging/providers/create.svelte index 32d14ecb1..9b814ffb0 100644 --- a/src/routes/console/project-[project]/messaging/providers/create.svelte +++ b/src/routes/console/project-[project]/messaging/providers/create.svelte @@ -130,6 +130,7 @@ $providerParams[$provider].authKeyId, $providerParams[$provider].teamId, $providerParams[$provider].bundleId, + $providerParams[$provider].sandbox, $providerParams[$provider].enabled ); break; diff --git a/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateName.svelte b/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateName.svelte index d52288fff..93991d10e 100644 --- a/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateName.svelte +++ b/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateName.svelte @@ -69,13 +69,13 @@ ); break; case Providers.FCM: - response = await sdk.forProject.messaging.updateFCMProvider( + response = await sdk.forProject.messaging.updateFcmProvider( providerId, providerName ); break; case Providers.APNS: - response = await sdk.forProject.messaging.updateAPNSProvider( + response = await sdk.forProject.messaging.updateApnsProvider( providerId, providerName ); diff --git a/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte b/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte index 14d14f76c..03f9d6cc1 100644 --- a/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte +++ b/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte @@ -153,7 +153,8 @@ authKey: $provider.credentials['authKey'], authKeyId: $provider.credentials['authKeyId'], teamId: $provider.credentials['teamId'], - bundleId: $provider.credentials['bundleId'] + bundleId: $provider.credentials['bundleId'], + sandbox: $provider.options['sandbox'] }; break; } @@ -237,14 +238,14 @@ ); break; case Providers.FCM: - response = await sdk.forProject.messaging.updateFCMProvider( + response = await sdk.forProject.messaging.updateFcmProvider( providerId, undefined, enabled ); break; case Providers.APNS: - response = await sdk.forProject.messaging.updateAPNSProvider( + response = await sdk.forProject.messaging.updateApnsProvider( providerId, undefined, enabled diff --git a/src/routes/console/project-[project]/messaging/providers/store.ts b/src/routes/console/project-[project]/messaging/providers/store.ts index c93e5f445..cff54b4d9 100644 --- a/src/routes/console/project-[project]/messaging/providers/store.ts +++ b/src/routes/console/project-[project]/messaging/providers/store.ts @@ -1,7 +1,7 @@ import type { Column } from '$lib/helpers/types'; import { writable } from 'svelte/store'; import { Providers } from '../provider.svelte'; -import { MessagingProviderType, Encryption } from '@appwrite.io/console'; +import { MessagingProviderType, SmtpEncryption } from '@appwrite.io/console'; export const columns = writable([ { id: '$id', title: 'Provider ID', type: 'string', show: true }, @@ -142,7 +142,13 @@ export const providers: ProvidersMap = { 'Head to Apple Developer Member Center (under Program resources) -> Certificates, Identifiers & Profiles -> Keys.', 'Create a key and give it a name. Enable the Apple Push Notifications service (APNS), and register your key.' ] - } + }, + { + label: "Sandbox", + name: "sandbox", + type: "switch", + description: "Use the development APNS server." + }, ] } // [Providers.MQTT]: { @@ -328,9 +334,9 @@ export const providers: ProvidersMap = { name: 'encryption', type: 'select', options: [ - { label: 'None', value: Encryption.None }, - { label: 'SSL', value: Encryption.Ssl }, - { label: 'TLS', value: Encryption.Tls } + { label: 'None', value: SmtpEncryption.None }, + { label: 'SSL', value: SmtpEncryption.Ssl }, + { label: 'TLS', value: SmtpEncryption.Tls } ] }, { diff --git a/src/routes/console/project-[project]/messaging/providers/update.svelte b/src/routes/console/project-[project]/messaging/providers/update.svelte index 82e0f7d4b..4ec2896b4 100644 --- a/src/routes/console/project-[project]/messaging/providers/update.svelte +++ b/src/routes/console/project-[project]/messaging/providers/update.svelte @@ -114,7 +114,7 @@ ); break; case Providers.FCM: - response = await sdk.forProject.messaging.updateFCMProvider( + response = await sdk.forProject.messaging.updateFcmProvider( providerId, $providerParams[$provider].name, $providerParams[$provider].enabled, @@ -122,14 +122,15 @@ ); break; case Providers.APNS: - response = await sdk.forProject.messaging.updateAPNSProvider( + response = await sdk.forProject.messaging.updateApnsProvider( providerId, $providerParams[$provider].name, $providerParams[$provider].enabled, $providerParams[$provider].authKey, $providerParams[$provider].authKeyId, $providerParams[$provider].teamId, - $providerParams[$provider].bundleId + $providerParams[$provider].bundleId, + $providerParams[$provider].sandbox ); break; } diff --git a/src/routes/console/project-[project]/messaging/providers/wizard/provider.svelte b/src/routes/console/project-[project]/messaging/providers/wizard/provider.svelte index b5b8fb1d2..d5e494991 100644 --- a/src/routes/console/project-[project]/messaging/providers/wizard/provider.svelte +++ b/src/routes/console/project-[project]/messaging/providers/wizard/provider.svelte @@ -6,7 +6,7 @@ import { FormList, InputText } from '$lib/elements/forms'; import { Pill } from '$lib/elements'; import { Providers } from '../../provider.svelte'; - import { Encryption } from '@appwrite.io/console'; + import { SmtpEncryption } from '@appwrite.io/console'; let name = ''; let showCustomId = false; @@ -102,7 +102,7 @@ username: '', password: '', autoTLS: true, - encryption: Encryption.Tls, + encryption: SmtpEncryption.Tls, mailer: '', fromEmail: '', fromName: '', @@ -126,7 +126,8 @@ authKey: '', authKeyId: '', teamId: '', - bundleId: '' + bundleId: '', + sandbox: false }; break; } diff --git a/src/routes/console/project-[project]/messaging/providers/wizard/store.ts b/src/routes/console/project-[project]/messaging/providers/wizard/store.ts index 764669921..4ea4d8c4d 100644 --- a/src/routes/console/project-[project]/messaging/providers/wizard/store.ts +++ b/src/routes/console/project-[project]/messaging/providers/wizard/store.ts @@ -1,6 +1,6 @@ import { writable } from 'svelte/store'; import type { Providers } from '../../provider.svelte'; -import type { MessagingProviderType, Encryption } from '@appwrite.io/console'; +import type { MessagingProviderType, SmtpEncryption } from '@appwrite.io/console'; type ProviderParams = { providerId: string; @@ -73,7 +73,7 @@ export type SMTPProviderParams = ProviderParams & { port: number; username: string; password: string; - encryption: Encryption; + encryption: SmtpEncryption; autoTLS: boolean; mailer: string; }; @@ -91,6 +91,7 @@ export type APNSProviderParams = ProviderParams & { authKeyId: string; teamId: string; bundleId: string; + sandbox: boolean; }; export type MQTTProviderParams = ProviderParams & { diff --git a/src/routes/login/+page.svelte b/src/routes/login/+page.svelte index 4d49845ae..0ea1f7dba 100644 --- a/src/routes/login/+page.svelte +++ b/src/routes/login/+page.svelte @@ -75,8 +75,10 @@ OAuthProvider.Github, window.location.origin + url, window.location.origin, - undefined, - ['read:user', 'user:email'] + [ + 'read:user', + 'user:email' + ] ); } diff --git a/src/routes/mfa/+page.svelte b/src/routes/mfa/+page.svelte index 1e804f5d4..eedc50900 100644 --- a/src/routes/mfa/+page.svelte +++ b/src/routes/mfa/+page.svelte @@ -16,7 +16,7 @@ async function verify() { try { disabled = true; - const challenge = await sdk.forConsole.account.create2FAChallenge( + const challenge = await sdk.forConsole.account.createChallenge( AuthenticationFactor.Totp ); await sdk.forConsole.account.updateChallenge(challenge.$id, code); diff --git a/src/routes/register/+page.svelte b/src/routes/register/+page.svelte index 5344cea31..46587b1e0 100644 --- a/src/routes/register/+page.svelte +++ b/src/routes/register/+page.svelte @@ -64,8 +64,10 @@ OAuthProvider.Github, window.location.origin, window.location.origin, - undefined, - ['read:user', 'user:email'] + [ + 'read:user', + 'user:email' + ] ); } From 73f9fc526b73b4a2be9396d0568a24f4cab7818e Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Sun, 25 Feb 2024 01:41:54 +1300 Subject: [PATCH 03/13] Lint --- .../project-[project]/messaging/providers/store.ts | 10 +++++----- src/routes/login/+page.svelte | 5 +---- src/routes/register/+page.svelte | 5 +---- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/providers/store.ts b/src/routes/console/project-[project]/messaging/providers/store.ts index cff54b4d9..a81a48488 100644 --- a/src/routes/console/project-[project]/messaging/providers/store.ts +++ b/src/routes/console/project-[project]/messaging/providers/store.ts @@ -144,11 +144,11 @@ export const providers: ProvidersMap = { ] }, { - label: "Sandbox", - name: "sandbox", - type: "switch", - description: "Use the development APNS server." - }, + label: 'Sandbox', + name: 'sandbox', + type: 'switch', + description: 'Use the development APNS server.' + } ] } // [Providers.MQTT]: { diff --git a/src/routes/login/+page.svelte b/src/routes/login/+page.svelte index 0ea1f7dba..e60e5811b 100644 --- a/src/routes/login/+page.svelte +++ b/src/routes/login/+page.svelte @@ -75,10 +75,7 @@ OAuthProvider.Github, window.location.origin + url, window.location.origin, - [ - 'read:user', - 'user:email' - ] + ['read:user', 'user:email'] ); } diff --git a/src/routes/register/+page.svelte b/src/routes/register/+page.svelte index 46587b1e0..ccc179174 100644 --- a/src/routes/register/+page.svelte +++ b/src/routes/register/+page.svelte @@ -64,10 +64,7 @@ OAuthProvider.Github, window.location.origin, window.location.origin, - [ - 'read:user', - 'user:email' - ] + ['read:user', 'user:email'] ); } From 0be5033957bccaa233350ea8f5f473b3c4968e65 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Fri, 23 Feb 2024 14:35:46 -0800 Subject: [PATCH 04/13] fix(messaging): hide overview card footer if message didn't fail Since there's only 1 button that may not show, we need to hide the footer or else there will be a big empty space. --- .../message-[message]/overview.svelte | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte index 54d4cec07..b9c95e2d8 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte @@ -32,7 +32,7 @@ } - +
{providerType} @@ -51,15 +51,13 @@ - {#if $message.status === 'failed'} - - {/if} + From 985bb997c8e1b42093e1b7a6a9c7347718c06258 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Fri, 23 Feb 2024 16:00:18 -0800 Subject: [PATCH 05/13] fix: Ensure Invite member modal title is sentence cased --- .../console/organization-[organization]/createMember.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/organization-[organization]/createMember.svelte b/src/routes/console/organization-[organization]/createMember.svelte index 338d08a3b..a0c4ff0dc 100644 --- a/src/routes/console/organization-[organization]/createMember.svelte +++ b/src/routes/console/organization-[organization]/createMember.svelte @@ -57,7 +57,7 @@ } - + {#if isCloud} {#if $organization?.billingPlan === BillingPlan.SCALE} From d851553af5ef9efe2ef0fb2bbe91b2d8b190e017 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Fri, 23 Feb 2024 16:13:30 -0800 Subject: [PATCH 06/13] fix(messaging): update copy in select topics modal Change # subscribers to # targets to clarify the count is of the matching targets rather than all the subscribers/targets. --- .../console/project-[project]/messaging/topicsModal.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/messaging/topicsModal.svelte b/src/routes/console/project-[project]/messaging/topicsModal.svelte index 95a03b79c..377b5d1bd 100644 --- a/src/routes/console/project-[project]/messaging/topicsModal.svelte +++ b/src/routes/console/project-[project]/messaging/topicsModal.svelte @@ -121,7 +121,7 @@ - ({getTotal(topic)} subscribers) + ({getTotal(topic)} targets) From 75f313d473c551621c565506d3435696e23cc7f2 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Fri, 23 Feb 2024 14:25:08 -0800 Subject: [PATCH 07/13] feat(components): update clickable list item - allow external links - allow attaching click handler --- src/lib/components/clickableListItem.svelte | 47 +++++++++++++++------ 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/src/lib/components/clickableListItem.svelte b/src/lib/components/clickableListItem.svelte index 78a4dbe08..03e6c294b 100644 --- a/src/lib/components/clickableListItem.svelte +++ b/src/lib/components/clickableListItem.svelte @@ -1,18 +1,39 @@
  • - - {#if $$slots.default} -
    - -
    - {/if} - {#if $$slots.desc} -
    -

    -
    - {/if} -
    + {#if href} + + {#if $$slots.default} +
    + +
    + {/if} + {#if $$slots.desc} +
    +

    +
    + {/if} +
    + {:else} + + {/if}
  • From 6e675d44d823c92f39790f1b4113b29584e2bc2f Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Fri, 23 Feb 2024 14:26:44 -0800 Subject: [PATCH 08/13] feat(components): bind open on collapsible item This allows binding upstream to detect changes to open. --- src/lib/components/collapsibleItem.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/collapsibleItem.svelte b/src/lib/components/collapsibleItem.svelte index 8397454dc..909453544 100644 --- a/src/lib/components/collapsibleItem.svelte +++ b/src/lib/components/collapsibleItem.svelte @@ -6,7 +6,7 @@
  • -
    +
    Date: Fri, 23 Feb 2024 14:27:42 -0800 Subject: [PATCH 09/13] feat(components): increase collapsible's chevron size per design feedback --- src/lib/components/collapsibleItem.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/collapsibleItem.svelte b/src/lib/components/collapsibleItem.svelte index 909453544..736f2fe21 100644 --- a/src/lib/components/collapsibleItem.svelte +++ b/src/lib/components/collapsibleItem.svelte @@ -22,7 +22,7 @@ {/if}
  • -
    Date: Fri, 23 Feb 2024 14:29:28 -0800 Subject: [PATCH 10/13] fix(messaging): update Need a hand? section based on design feedback --- .../providers/wizard/configure.svelte | 170 +++++++++++------- 1 file changed, 104 insertions(+), 66 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/providers/wizard/configure.svelte b/src/routes/console/project-[project]/messaging/providers/wizard/configure.svelte index 47222cc82..eba51e07f 100644 --- a/src/routes/console/project-[project]/messaging/providers/wizard/configure.svelte +++ b/src/routes/console/project-[project]/messaging/providers/wizard/configure.svelte @@ -14,17 +14,21 @@ import { onMount } from 'svelte'; import { providers } from '../store'; import { providerType, provider, providerParams } from './store'; - import { Table, TableBody, TableCell, TableRowButton, TableRowLink } from '$lib/elements/table'; import { newMemberModal } from '$lib/stores/organization'; import CreateMember from '$routes/console/organization-[organization]/createMember.svelte'; - import Collapsible from '$lib/components/collapsible.svelte'; - import CollapsibleItem from '$lib/components/collapsibleItem.svelte'; import Provider from '../../provider.svelte'; import { MessagingProviderType } from '@appwrite.io/console'; import ProviderTypeComponent from '$routes/console/project-[project]/messaging/providerType.svelte'; + import { + Collapsible, + CollapsibleItem, + ClickableList, + ClickableListItem + } from '$lib/components'; let files: Record = {}; const inputs = providers[$providerType].providers[$provider].configure; + let open = false; onMount(() => { for (const input of inputs) { @@ -164,81 +168,115 @@

    Need a hand?

    - {#if providers[$providerType].providers[$provider].needAHand} - {@const needAHand = providers[$providerType].providers[$provider].needAHand} -
    - - - -
    -
    -
    From 0837b8d49a94bc6d6b8e1c747fb96a6e3046ddb4 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 22 Feb 2024 12:56:02 -0800 Subject: [PATCH 11/13] fix(messaging): prevent duplicate create subscriber calls Update subscribersByTargetId with created subscribers so subsequent addTarget() calls won't add the same targets again. --- .../topics/topic-[topic]/subscribers/+page.svelte | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/+page.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/+page.svelte index 08d6fd58a..c5c308a5e 100644 --- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/+page.svelte +++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/+page.svelte @@ -46,9 +46,14 @@ const targetIds = Object.keys($targetsById).filter( (targetId) => !(targetId in subscribersByTargetId) ); - const promises = targetIds.map((targetId) => - sdk.forProject.messaging.createSubscriber($page.params.topic, ID.unique(), targetId) - ); + const promises = targetIds.map(async (targetId) => { + const subscriber = await sdk.forProject.messaging.createSubscriber( + $page.params.topic, + ID.unique(), + targetId + ); + subscribersByTargetId[targetId] = subscriber; + }); try { await Promise.all(promises); From aaab1118a0649f6e9c1f73b2a9f14630cc351aa0 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Sat, 24 Feb 2024 17:48:46 +0100 Subject: [PATCH 12/13] fix: various issues --- src/hooks.client.ts | 13 +++++++++++++ src/lib/components/filters/content.svelte | 4 ++-- src/lib/helpers/exceptions.ts | 1 + src/routes/+error.svelte | 2 +- src/routes/+layout.ts | 7 ++++--- src/routes/console/+error.svelte | 2 +- .../organization-[organization]/+layout.ts | 5 ++++- .../console/project-[project]/+error.svelte | 2 +- .../console/project-[project]/+layout.ts | 3 ++- .../settings/usage/[[invoice]]/+page.ts | 18 ++++++++---------- 10 files changed, 37 insertions(+), 20 deletions(-) create mode 100644 src/hooks.client.ts create mode 100644 src/lib/helpers/exceptions.ts diff --git a/src/hooks.client.ts b/src/hooks.client.ts new file mode 100644 index 000000000..2345ffb2c --- /dev/null +++ b/src/hooks.client.ts @@ -0,0 +1,13 @@ +import { AppwriteException } from '@appwrite.io/console'; +import type { HandleClientError } from '@sveltejs/kit'; + +export const handleError: HandleClientError = async ({ error, message, status }) => { + if (error instanceof AppwriteException && error.code === 0) { + status = undefined; + message = error.message; + } + return { + message, + status + }; +}; diff --git a/src/lib/components/filters/content.svelte b/src/lib/components/filters/content.svelte index 450aa6375..023ed61ff 100644 --- a/src/lib/components/filters/content.svelte +++ b/src/lib/components/filters/content.svelte @@ -134,7 +134,7 @@ bind:value={operatorKey} /> {#if column && operator && !operator?.hideInput} -
    +
      {#if column.type === 'integer' || column.type === 'double'} {:else if column.type === 'boolean'} @@ -150,7 +150,7 @@ {:else} {/if} -
    + {/if} diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts index 4b3f68520..3919a26c3 100644 --- a/src/routes/+layout.ts +++ b/src/routes/+layout.ts @@ -13,9 +13,10 @@ export const ssr = false; export const load: LayoutLoad = async ({ depends, url }) => { depends(Dependencies.ACCOUNT); - redirectTo.set(url.searchParams.get('forceRedirect') || null); - - url.searchParams.delete('forceRedirect'); + if (url.searchParams.has('forceRedirect')) { + redirectTo.set(url.searchParams.get('forceRedirect') || null); + url.searchParams.delete('forceRedirect'); + } try { const account = await sdk.forConsole.account.get<{ organization?: string }>(); diff --git a/src/routes/console/+error.svelte b/src/routes/console/+error.svelte index 9a50e9be7..33d7695d1 100644 --- a/src/routes/console/+error.svelte +++ b/src/routes/console/+error.svelte @@ -6,7 +6,7 @@ - {$page.status} + {$page.error.status || 'Invalid Argument'} {$page.error.message} diff --git a/src/routes/console/organization-[organization]/+layout.ts b/src/routes/console/organization-[organization]/+layout.ts index cfd212057..79eba27f3 100644 --- a/src/routes/console/organization-[organization]/+layout.ts +++ b/src/routes/console/organization-[organization]/+layout.ts @@ -10,6 +10,7 @@ import { headerAlert } from '$lib/stores/headerAlert'; import ProjectsAtRisk from '$lib/components/billing/alerts/projectsAtRisk.svelte'; import { get } from 'svelte/store'; import { preferences } from '$lib/stores/preferences'; +import type { Organization } from '$lib/stores/organization'; export const load: LayoutLoad = async ({ params, depends }) => { depends(Dependencies.ORGANIZATION); @@ -37,7 +38,9 @@ export const load: LayoutLoad = async ({ params, depends }) => { return { header: Header, breadcrumbs: Breadcrumbs, - organization: await sdk.forConsole.teams.get(params.organization), + organization: await (sdk.forConsole.teams.get( + params.organization + ) as Promise), members: await sdk.forConsole.teams.listMemberships(params.organization) }; } catch (e) { diff --git a/src/routes/console/project-[project]/+error.svelte b/src/routes/console/project-[project]/+error.svelte index 243be6e42..be0053176 100644 --- a/src/routes/console/project-[project]/+error.svelte +++ b/src/routes/console/project-[project]/+error.svelte @@ -5,6 +5,6 @@ - {$page.status} + {$page.error.status || 'Invalid Argument'}

    {$page.error.message}

    diff --git a/src/routes/console/project-[project]/+layout.ts b/src/routes/console/project-[project]/+layout.ts index c25d0cd4c..156a24f34 100644 --- a/src/routes/console/project-[project]/+layout.ts +++ b/src/routes/console/project-[project]/+layout.ts @@ -5,6 +5,7 @@ import type { LayoutLoad } from './$types'; import { preferences } from '$lib/stores/preferences'; import { failedInvoice } from '$lib/stores/billing'; import { isCloud } from '$lib/system'; +import type { Organization } from '$lib/stores/organization'; export const load: LayoutLoad = async ({ params, depends }) => { depends(Dependencies.PROJECT); @@ -22,7 +23,7 @@ export const load: LayoutLoad = async ({ params, depends }) => { return { project, - organization: await sdk.forConsole.teams.get(project.teamId) + organization: await (sdk.forConsole.teams.get(project.teamId) as Promise) }; } catch (e) { error(e.code, e.message); diff --git a/src/routes/console/project-[project]/settings/usage/[[invoice]]/+page.ts b/src/routes/console/project-[project]/settings/usage/[[invoice]]/+page.ts index d29b1e799..2cb455ae0 100644 --- a/src/routes/console/project-[project]/settings/usage/[[invoice]]/+page.ts +++ b/src/routes/console/project-[project]/settings/usage/[[invoice]]/+page.ts @@ -1,24 +1,22 @@ +import type { Aggregation, Invoice } from '$lib/sdk/billing'; +import { accumulateUsage } from '$lib/sdk/usage'; import { getSdkForProject, sdk } from '$lib/stores/sdk'; import { Query } from '@appwrite.io/console'; import type { PageLoad } from './$types'; -import type { Organization } from '$lib/stores/organization'; -import type { Aggregation, Invoice } from '$lib/sdk/billing'; -import { accumulateUsage } from '$lib/sdk/usage'; export const load: PageLoad = async ({ params, parent }) => { const { invoice, project } = params; - const parentData = await parent(); - const org = parentData.organization as Organization; + const { organization } = await parent(); - let startDate: string = org.billingCurrentInvoiceDate; - let endDate: string = org.billingNextInvoiceDate; + let startDate: string = organization.billingCurrentInvoiceDate; + let endDate: string = organization.billingNextInvoiceDate; let currentInvoice: Invoice = undefined; let currentAggregation: Aggregation = undefined; if (invoice) { - currentInvoice = await sdk.forConsole.billing.getInvoice(org.$id, invoice); + currentInvoice = await sdk.forConsole.billing.getInvoice(organization.$id, invoice); currentAggregation = await sdk.forConsole.billing.getAggregation( - org.$id, + organization.$id, currentInvoice.aggregationId ); @@ -27,7 +25,7 @@ export const load: PageLoad = async ({ params, parent }) => { } const [invoices, usage] = await Promise.all([ - sdk.forConsole.billing.listInvoices(org.$id, [Query.orderDesc('from')]), + sdk.forConsole.billing.listInvoices(organization.$id, [Query.orderDesc('from')]), /** * Workaround because project id might not be populated yet. */ From e47c5f0a48407324a0cbbe6c19debea9df4204cf Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Sat, 24 Feb 2024 17:49:11 +0100 Subject: [PATCH 13/13] revert: remove exception helper --- src/lib/helpers/exceptions.ts | 1 - 1 file changed, 1 deletion(-) delete mode 100644 src/lib/helpers/exceptions.ts diff --git a/src/lib/helpers/exceptions.ts b/src/lib/helpers/exceptions.ts deleted file mode 100644 index d5196b555..000000000 --- a/src/lib/helpers/exceptions.ts +++ /dev/null @@ -1 +0,0 @@ -export class AppwriteInvalidArgumentException extends Error {}