update: smaller payloads :D

This commit is contained in:
Darshan
2025-12-19 21:05:34 +05:30
parent a2667f8d4f
commit 3a2bdcd6e9
11 changed files with 58 additions and 27 deletions
+5 -1
View File
@@ -38,7 +38,11 @@ export const projectsSearcher = (async (query: string) => {
}
const { projects } = await sdk.forConsole.projects.list({
queries: [Query.equal('teamId', get(organization).$id), Query.orderDesc('')]
queries: [
Query.equal('teamId', get(organization).$id),
Query.orderDesc(''),
Query.select(['$id', 'name', 'region'])
]
});
return projects
+2 -1
View File
@@ -140,7 +140,8 @@
queries: [
Query.equal('teamId', organizationId ?? page.data.currentOrgId),
Query.limit(5),
Query.orderDesc('$updatedAt')
Query.orderDesc('$updatedAt'),
Query.select(['$id', 'name', 'region', 'teamId'])
]
})) ?? loadedProjects;
+5 -1
View File
@@ -35,7 +35,11 @@ export const load: LayoutLoad = async ({ depends, parent }) => {
try {
projectsCount = (
await sdk.forConsole.projects.list({
queries: [Query.equal('teamId', currentOrgId), Query.limit(1)]
queries: [
Query.equal('teamId', currentOrgId),
Query.limit(1),
Query.select(['$id'])
]
})
).total;
} catch (e) {
@@ -65,7 +65,7 @@ export const load: PageLoad = async ({ parent }) => {
let projects: Models.ProjectList = null;
try {
projects = await sdk.forConsole.projects.list({
queries: [Query.equal('teamId', org.$id), Query.limit(1)]
queries: [Query.equal('teamId', org.$id), Query.limit(1), Query.select(['$id'])]
});
} catch (e) {
redirect(303, `${base}/organization-${org.$id}`);
@@ -24,7 +24,8 @@ export const load: PageLoad = async ({ params, url, route, depends, parent }) =>
Query.offset(offset),
Query.equal('teamId', params.organization),
Query.limit(limit),
Query.orderDesc('')
Query.orderDesc(''),
Query.select(['$id', 'name', 'region', 'status'])
],
search: search || undefined
});
@@ -106,10 +106,13 @@
}
try {
allProjects = await sdk.forConsole.projects.list([
Query.equal('teamId', data.organization.$id),
Query.limit(1000)
]);
allProjects = await sdk.forConsole.projects.list({
queries: [
Query.equal('teamId', data.organization.$id),
Query.limit(1000),
Query.select(['$id', 'name']) // TODO: @itznotabug, check if we need to add `$createdAt`
]
});
} catch {
allProjects = { projects: [] };
}
@@ -1,7 +1,7 @@
import { sdk } from '$lib/stores/sdk';
import type { PageLoad } from './$types';
import { Query } from '@appwrite.io/console';
import type { UsageProjectInfo } from '../../store';
import { type Models, Query } from '@appwrite.io/console';
import type { Invoice, OrganizationUsage } from '$lib/sdk/billing';
export const load: PageLoad = async ({ params, parent }) => {
@@ -70,14 +70,18 @@ export const load: PageLoad = async ({ params, parent }) => {
// all this to get the project's name and region!
function getUsageProjects(usage: OrganizationUsage) {
return (async () => {
const projects: Record<string, UsageProjectInfo> = {};
const limit = 100;
const requests = [];
const requests: Array<Promise<Models.ProjectList>> = [];
const projects: Record<string, UsageProjectInfo> = {};
for (let index = 0; index < usage.projects.length; index += limit) {
const chunkIds = usage.projects.slice(index, index + limit).map((p) => p.projectId);
requests.push(
sdk.forConsole.projects.list({
queries: [Query.limit(limit), Query.equal('$id', chunkIds)]
queries: [
Query.limit(limit),
Query.equal('$id', chunkIds),
Query.select(['$id', 'name', 'region'])
]
})
);
}
+3 -1
View File
@@ -80,7 +80,9 @@
onMount(async () => {
// Filter projects by organization ID using server-side queries
const projectList = await sdk.forConsole.projects.list({
queries: $organization?.$id ? [Query.equal('teamId', $organization.$id)] : []
queries: $organization?.$id
? [Query.equal('teamId', $organization.$id), Query.select(['$id', 'name'])]
: []
});
projectOptions = projectList.projects.map((project) => ({
value: project.$id,
@@ -43,7 +43,11 @@
loadingProjects = true;
projects = await sdk.forConsole.projects.list({
queries: [Query.equal('teamId', selectedOrg), Query.orderDesc('')]
queries: [
Query.equal('teamId', selectedOrg),
Query.orderDesc(''),
Query.select(['$id', 'name'])
]
});
selectedProject = projects?.total ? projects.projects[0].$id : null;
@@ -215,9 +219,9 @@
: undefined}
disabled={loadingProjects}
options={[
...(projects?.projects?.map((p) => ({
label: p.name,
value: p.$id
...(projects?.projects?.map((project) => ({
label: project.name,
value: project.$id
})) ?? []),
{
label: 'Create project',
@@ -48,7 +48,11 @@
async function fetchProjects() {
loadingProjects = true;
projects = await sdk.forConsole.projects.list({
queries: [Query.equal('teamId', selectedOrg), Query.orderDesc('')]
queries: [
Query.equal('teamId', selectedOrg),
Query.orderDesc(''),
Query.select(['$id', 'name'])
]
});
selectedProject = projects?.total ? projects.projects[0].$id : null;
@@ -87,7 +91,7 @@
loadingProjects = false;
}
} else {
const project = projects.projects.find((p) => p.$id === selectedProject);
const project = projects.projects.find((project) => project.$id === selectedProject);
if (!project) {
addNotification({ type: 'error', message: 'Selected project not found' });
return;
@@ -371,9 +375,9 @@
: undefined}
disabled={loadingProjects}
options={[
...(projects?.projects?.map((p) => ({
label: p.name,
value: p.$id
...(projects?.projects?.map((project) => ({
label: project.name,
value: project.$id
})) ?? []),
{
label: 'Create project',
@@ -55,7 +55,11 @@
async function fetchProjects() {
projects = await sdk.forConsole.projects.list({
queries: [Query.equal('teamId', selectedOrg), Query.orderDesc('')]
queries: [
Query.equal('teamId', selectedOrg),
Query.orderDesc(''),
Query.select(['$id', 'name'])
]
});
selectedProject = projects?.total ? projects.projects[0].$id : null;
}
@@ -180,9 +184,9 @@
label="Project"
required
options={[
...projects.projects.map((p) => ({
label: p.name,
value: p.$id
...projects.projects.map((project) => ({
label: project.name,
value: project.$id
})),
{
label: 'Create project',