From f3918889872d42a0eba19e396fd0929ebcc3deda Mon Sep 17 00:00:00 2001 From: Darshan Date: Sun, 16 Mar 2025 18:32:27 +0530 Subject: [PATCH] remove: hardcoded project region. --- .../usage/[[invoice]]/+page.ts | 10 +++++----- .../usage/[[invoice]]/ProjectBreakdown.svelte | 20 ++++++++++++------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.ts b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.ts index 3e0063459..29e9ac275 100644 --- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.ts +++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.ts @@ -56,7 +56,7 @@ export const load: PageLoad = async ({ params, parent }) => { sdk.forConsole.billing.getOrganizationPlan(org.$id) ]); - const projectNames: { [key: string]: Models.Project } = {}; + const projects: { [key: string]: Models.Project } = {}; if (usage?.projects?.length > 0) { // in batches of 100 (the max number of values in a query) const requests = []; @@ -75,17 +75,17 @@ export const load: PageLoad = async ({ params, parent }) => { const responses = await Promise.all(requests); for (const response of responses) { for (const project of response.projects) { - projectNames[project.$id] = project; + projects[project.$id] = project; } } } return { - organizationUsage: usage, - projectNames, + plan, invoices, + projects, currentInvoice, organizationMembers, - plan + organizationUsage: usage }; }; diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte index f57bb5c7a..4ca930a15 100644 --- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte +++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte @@ -46,10 +46,15 @@ } } - function getProjectUsageLink(region: string, projectId: string): string { + function getProjectUsageLink(projectId: string): string { + const region = data.projects[projectId]?.region ?? 'fra'; return `${base}/project-${region}-${projectId}/settings/usage`; } + function getProjectName(projectId: string): string { + return data.projects[projectId]?.name ?? 'Unknown'; + } + function groupByProject( metric: Metric | undefined, estimate?: Estimate, @@ -63,12 +68,14 @@ }> { const data = []; for (const project of projects) { + const projectId = project.projectId; + if (metric) { const usage = project[metric]; if (!usage) continue; data.push({ - projectId: project.projectId, + projectId, usage: usage ?? 0, estimate: estimate ? project[estimate] : undefined }); @@ -78,7 +85,7 @@ if (reads || writes) { data.push({ - projectId: project.projectId, + projectId, databasesReads: reads, databasesWrites: writes }); @@ -143,7 +150,7 @@ {#if !$canSeeProjects} - {data.projectNames[project.projectId]?.name ?? 'Unknown'} + {getProjectName(project.projectId)} {#if databaseOperationMetric} @@ -165,10 +172,9 @@ {/if} {:else} - - + - {data.projectNames[project.projectId]?.name ?? 'Unknown'} + {getProjectName(project.projectId)} {#if databaseOperationMetric}