mirror of
https://github.com/appwrite/console.git
synced 2026-06-06 19:27:48 +00:00
fix: urls and payment post routes.
This commit is contained in:
@@ -11,7 +11,7 @@ import { get, writable } from 'svelte/store';
|
||||
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
|
||||
import { addNotification } from './notifications';
|
||||
import { organization } from './organization';
|
||||
import { base } from '$app/paths';
|
||||
import { resolve } from '$app/paths';
|
||||
import { ThemeDarkCloud, ThemeLightCloud } from '$themes';
|
||||
import Color from 'color';
|
||||
import type { Models } from '@appwrite.io/console';
|
||||
@@ -186,15 +186,20 @@ export async function setPaymentMethod(providerMethodId: string, name: string, s
|
||||
}
|
||||
}
|
||||
|
||||
export async function confirmPayment(
|
||||
orgId: string,
|
||||
clientSecret: string,
|
||||
paymentMethodId: string,
|
||||
route?: string
|
||||
) {
|
||||
export async function confirmPayment(config: {
|
||||
clientSecret: string;
|
||||
paymentMethodId: string;
|
||||
orgId?: string;
|
||||
route?: string;
|
||||
}) {
|
||||
const { clientSecret, paymentMethodId, orgId, route } = config;
|
||||
|
||||
try {
|
||||
const url =
|
||||
window.location.origin + (route ? route : `${base}/organization-${orgId}/billing`);
|
||||
const resolvedUrl = resolve('/(console)/organization-[organization]/billing', {
|
||||
organization: orgId
|
||||
});
|
||||
|
||||
const url = window.location.origin + (route ? route : resolvedUrl);
|
||||
|
||||
const paymentMethod = await sdk.forConsole.account.getPaymentMethod({ paymentMethodId });
|
||||
|
||||
@@ -205,6 +210,7 @@ export async function confirmPayment(
|
||||
payment_method: paymentMethod.providerMethodId
|
||||
}
|
||||
});
|
||||
|
||||
if (error) {
|
||||
throw error.message;
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
if (page.url.searchParams.has('clientSecret')) {
|
||||
const clientSecret = page.url.searchParams.get('clientSecret');
|
||||
const paymentMethodId = page.url.searchParams.get('paymentMethodId');
|
||||
await confirmPayment('', clientSecret, paymentMethodId);
|
||||
await confirmPayment({ clientSecret, paymentMethodId });
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { afterNavigate, goto, invalidate } from '$app/navigation';
|
||||
import { base } from '$app/paths';
|
||||
import { base, resolve } from '$app/paths';
|
||||
import { page } from '$app/state';
|
||||
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
|
||||
import { CreditsApplied, SelectPaymentMethod } from '$lib/components/billing';
|
||||
@@ -175,12 +175,13 @@
|
||||
}
|
||||
}
|
||||
params.append('invites', collaborators.join(','));
|
||||
await confirmPayment(
|
||||
'',
|
||||
const resolvedUrl = resolve('/(console)/apply-credit');
|
||||
|
||||
await confirmPayment({
|
||||
clientSecret,
|
||||
paymentMethodId,
|
||||
`${base}/apply-credit?${params}`
|
||||
);
|
||||
route: `${resolvedUrl}?${params}`
|
||||
});
|
||||
|
||||
org = await sdk.forConsole.organizations.validatePayment({
|
||||
organizationId: org.organizationId,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { afterNavigate, goto, invalidate, preloadData } from '$app/navigation';
|
||||
import { base, resolve } from '$app/paths';
|
||||
import { resolve } from '$app/paths';
|
||||
import { page } from '$app/state';
|
||||
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
|
||||
import { PlanComparisonBox, PlanSelection, SelectPaymentMethod } from '$lib/components/billing';
|
||||
@@ -85,6 +85,15 @@
|
||||
}
|
||||
});
|
||||
|
||||
async function preloadAndNavigate(organizationId: string) {
|
||||
const resolvedUrl = resolve('/(console)/organization-[organization]', {
|
||||
organization: organizationId
|
||||
});
|
||||
|
||||
await preloadData(resolvedUrl);
|
||||
await goto(resolvedUrl);
|
||||
}
|
||||
|
||||
async function validate(organizationId: string, invites: string[]) {
|
||||
try {
|
||||
const org = await sdk.forConsole.organizations.validatePayment({
|
||||
@@ -93,8 +102,7 @@
|
||||
});
|
||||
|
||||
if (!isPaymentAuthenticationRequired(org)) {
|
||||
await preloadData(`${base}/console/organization-${org.$id}`);
|
||||
await goto(`${base}/console/organization-${org.$id}`);
|
||||
await preloadAndNavigate(org.$id);
|
||||
addNotification({
|
||||
type: 'success',
|
||||
message: `${org.name ?? 'Organization'} has been created`
|
||||
@@ -142,12 +150,14 @@
|
||||
}
|
||||
}
|
||||
params.append('invites', collaborators.join(','));
|
||||
await confirmPayment(
|
||||
'',
|
||||
const resolvedUrl = resolve('/(console)/create-organization');
|
||||
|
||||
await confirmPayment({
|
||||
clientSecret,
|
||||
paymentMethodId,
|
||||
`${base}/create-organization?${params}`
|
||||
);
|
||||
route: `${resolvedUrl}?${params}`
|
||||
});
|
||||
|
||||
await validate(org.organizationId, collaborators);
|
||||
}
|
||||
}
|
||||
@@ -160,8 +170,7 @@
|
||||
|
||||
if (!isPaymentAuthenticationRequired(org)) {
|
||||
await invalidate(Dependencies.ACCOUNT);
|
||||
await preloadData(`${base}/organization-${org.$id}`);
|
||||
await goto(`${base}/organization-${org.$id}`);
|
||||
await preloadAndNavigate(org.$id);
|
||||
addNotification({
|
||||
type: 'success',
|
||||
message: `${org.name ?? 'Organization'} has been created`
|
||||
|
||||
@@ -51,12 +51,12 @@
|
||||
invoiceId
|
||||
});
|
||||
|
||||
await confirmPayment(
|
||||
organization.$id,
|
||||
invoice.clientSecret,
|
||||
organization.paymentMethodId,
|
||||
`${baseUrl}?type=validate-invoice&invoice=${invoice.$id}`
|
||||
);
|
||||
await confirmPayment({
|
||||
clientSecret: invoice.clientSecret,
|
||||
paymentMethodId: organization.paymentMethodId,
|
||||
orgId: organization.$id,
|
||||
route: `${baseUrl}?type=validate-invoice&invoice=${invoice.$id}`
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
@@ -87,7 +87,11 @@
|
||||
}
|
||||
if (page.url.searchParams.has('clientSecret')) {
|
||||
const clientSecret = page.url.searchParams.get('clientSecret');
|
||||
await confirmPayment(organization.$id, clientSecret, organization.paymentMethodId);
|
||||
await confirmPayment({
|
||||
clientSecret,
|
||||
paymentMethodId: organization.paymentMethodId,
|
||||
orgId: organization.$id
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
import { onMount } from 'svelte';
|
||||
import { getApiEndpoint, sdk } from '$lib/stores/sdk';
|
||||
import { formatCurrency } from '$lib/helpers/numbers';
|
||||
import { base } from '$app/paths';
|
||||
import { resolve } from '$app/paths';
|
||||
import type { PaymentMethod as StripePaymentMethod } from '@stripe/stripe-js';
|
||||
import type { Models } from '@appwrite.io/console';
|
||||
|
||||
@@ -117,12 +117,16 @@
|
||||
|
||||
if (status !== 'succeeded' && status !== 'cancelled') {
|
||||
// probably still pending, confirm via stripe!
|
||||
await confirmPayment(
|
||||
$organization.$id,
|
||||
const resolvedUrl = resolve('/(console)/organization-[organization]/billing', {
|
||||
organization: $organization.$id
|
||||
});
|
||||
|
||||
await confirmPayment({
|
||||
clientSecret,
|
||||
paymentMethodId ? paymentMethodId : $organization.paymentMethodId,
|
||||
`${base}/organization-${$organization.$id}/billing?type=validate-invoice&invoice=${invoice.$id}`
|
||||
);
|
||||
paymentMethodId: paymentMethodId ?? $organization.paymentMethodId,
|
||||
orgId: $organization.$id,
|
||||
route: `${resolvedUrl}?type=validate-invoice&invoice=${invoice.$id}`
|
||||
});
|
||||
|
||||
await sdk.forConsole.organizations.validateInvoice({
|
||||
organizationId: $organization.$id,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { afterNavigate, goto, invalidate } from '$app/navigation';
|
||||
import { base, resolve } from '$app/paths';
|
||||
import { resolve } from '$app/paths';
|
||||
import { page } from '$app/state';
|
||||
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
|
||||
import { PlanComparisonBox, PlanSelection, SelectPaymentMethod } from '$lib/components/billing';
|
||||
@@ -268,12 +268,16 @@
|
||||
params.append('id', org.organizationId);
|
||||
params.append('invites', collaborators.join(','));
|
||||
params.append('plan', selectedPlan);
|
||||
await confirmPayment(
|
||||
'',
|
||||
|
||||
const resolvedUrl = resolve('/(console)/organization-[organization]/change-plan', {
|
||||
organization: org.organizationId
|
||||
});
|
||||
|
||||
await confirmPayment({
|
||||
clientSecret,
|
||||
paymentMethodId,
|
||||
base + '/change-plan?' + params.toString()
|
||||
);
|
||||
route: `${resolvedUrl}?${params.toString()}`
|
||||
});
|
||||
await validate(org.organizationId, collaborators);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user