feat(onboarding): test integration connections
This commit is contained in:
1 parent
276431ef4c
commit
dd707bed7e
3 files changed
+71
-6
No files matched your search
@@ -43,7 +43,7 @@ import {
|
||||
widgetIntegrationLimits,
|
||||
} from "@homarr/definitions";
|
||||
import type { IntegrationKind, OnboardingLayoutPreset, WidgetKind } from "@homarr/definitions";
|
||||
import { onboardingCompleteSetupSchema } from "@homarr/validation/onboarding";
|
||||
import { onboardingCompleteSetupSchema, onboardingIntegrationDraftSchema } from "@homarr/validation/onboarding";
|
||||
|
||||
import { onboardingClaimSettingKey } from "../../onboarding-claim";
|
||||
import { env } from "../../env";
|
||||
@@ -148,6 +148,24 @@ export const onboardRouter = createTRPCRouter({
|
||||
await nextOnboardingStepAsync(ctx.db);
|
||||
}),
|
||||
|
||||
testIntegration: onboardingProcedure
|
||||
.requiresStep("setup")
|
||||
.input(onboardingIntegrationDraftSchema)
|
||||
.mutation(async ({ input }) => {
|
||||
const result = await testConnectionAsync({
|
||||
id: stableOnboardingId("integration", input.sourceId),
|
||||
name: input.name,
|
||||
url: input.url,
|
||||
kind: input.kind,
|
||||
secrets: input.secrets,
|
||||
}).catch((error) => {
|
||||
if (!(error instanceof MissingSecretError)) throw error;
|
||||
throw new TRPCError({ code: "BAD_REQUEST", message: error.message });
|
||||
});
|
||||
|
||||
return { success: result.success };
|
||||
}),
|
||||
|
||||
detectRuntimeCapabilities: onboardingProcedure
|
||||
.requiresStep("setup")
|
||||
.output(runtimeCapabilitiesSchema)
|
||||
|
||||
Reference in new issue
Block a user