fix: refine try/catch

This commit is contained in:
Scott Wilson
2025-02-12 20:56:07 -08:00
parent 2d16f5f258
commit ec12d57862

View File

@@ -3,7 +3,12 @@ import { zodValidator } from "@tanstack/zod-adapter";
import { z } from "zod";
import { workspaceKeys } from "@app/hooks/api";
import { fetchSecretSyncsByProjectId, secretSyncKeys } from "@app/hooks/api/secretSyncs";
import { TIntegration } from "@app/hooks/api/integrations/types";
import {
fetchSecretSyncsByProjectId,
secretSyncKeys,
TSecretSync
} from "@app/hooks/api/secretSyncs";
import { fetchWorkspaceIntegrations } from "@app/hooks/api/workspace/queries";
import { IntegrationsListPageTabs } from "@app/types/integrations";
@@ -20,44 +25,13 @@ export const Route = createFileRoute(
validateSearch: zodValidator(IntegrationsListPageQuerySchema),
beforeLoad: async ({ context, search, params: { projectId } }) => {
if (!search.selectedTab) {
let secretSyncs: TSecretSync[];
try {
const secretSyncs = await context.queryClient.ensureQueryData({
secretSyncs = await context.queryClient.ensureQueryData({
queryKey: secretSyncKeys.list(projectId),
queryFn: () => fetchSecretSyncsByProjectId(projectId)
});
if (secretSyncs.length) {
throw redirect({
to: "/secret-manager/$projectId/integrations",
params: {
projectId
},
search: { selectedTab: IntegrationsListPageTabs.SecretSyncs }
});
}
const integrations = await context.queryClient.ensureQueryData({
queryKey: workspaceKeys.getWorkspaceIntegrations(projectId),
queryFn: () => fetchWorkspaceIntegrations(projectId)
});
if (integrations.length) {
throw redirect({
to: "/secret-manager/$projectId/integrations",
params: {
projectId
},
search: { selectedTab: IntegrationsListPageTabs.NativeIntegrations }
});
}
throw redirect({
to: "/secret-manager/$projectId/integrations",
params: {
projectId
},
search: { selectedTab: IntegrationsListPageTabs.SecretSyncs }
});
} catch {
throw redirect({
to: "/secret-manager/$projectId/integrations",
@@ -67,6 +41,50 @@ export const Route = createFileRoute(
search: { selectedTab: IntegrationsListPageTabs.NativeIntegrations }
});
}
if (secretSyncs.length) {
throw redirect({
to: "/secret-manager/$projectId/integrations",
params: {
projectId
},
search: { selectedTab: IntegrationsListPageTabs.SecretSyncs }
});
}
let integrations: TIntegration[];
try {
integrations = await context.queryClient.ensureQueryData({
queryKey: workspaceKeys.getWorkspaceIntegrations(projectId),
queryFn: () => fetchWorkspaceIntegrations(projectId)
});
} catch {
throw redirect({
to: "/secret-manager/$projectId/integrations",
params: {
projectId
},
search: { selectedTab: IntegrationsListPageTabs.SecretSyncs }
});
}
if (integrations.length) {
throw redirect({
to: "/secret-manager/$projectId/integrations",
params: {
projectId
},
search: { selectedTab: IntegrationsListPageTabs.NativeIntegrations }
});
}
throw redirect({
to: "/secret-manager/$projectId/integrations",
params: {
projectId
},
search: { selectedTab: IntegrationsListPageTabs.SecretSyncs }
});
}
return {