diff --git a/api/src/libs/backendInit.ts b/api/src/libs/backendInit.ts index 71f6f3d..36c8e0b 100644 --- a/api/src/libs/backendInit.ts +++ b/api/src/libs/backendInit.ts @@ -2,8 +2,8 @@ import { format } from "node:util"; import type { PrismaClient } from "@prisma/client"; -import type { BackendBaseClass } from "../backendimpl/base.js"; import { backendProviders } from "../backendimpl/index.js"; +import { BackendBaseClass } from "../backendimpl/base.js"; type Backend = { id: number; @@ -30,6 +30,16 @@ export async function backendInit( if (!ourProvider) { error(" - Error: Invalid backend recieved!"); + + // Prevent crashes when we don't recieve a backend + backends[backend.id] = new BackendBaseClass(""); + + backends[backend.id].logs.push("** Failed To Create Backend **"); + + backends[backend.id].logs.push( + "Reason: Invalid backend recieved (couldn't find the backend to use!)", + ); + return false; } diff --git a/api/src/routes/backends/create.ts b/api/src/routes/backends/create.ts index 679e939..0801572 100644 --- a/api/src/routes/backends/create.ts +++ b/api/src/routes/backends/create.ts @@ -33,6 +33,7 @@ export function route(routeOptions: RouteOptions) { name: { type: "string" }, description: { type: "string" }, backend: { type: "string" }, + connectionDetails: { type: "string" }, }, }, }, @@ -43,7 +44,7 @@ export function route(routeOptions: RouteOptions) { token: string; name: string; description?: string; - connectionDetails: unknown; + connectionDetails: string; backend: string; } = req.body; @@ -55,15 +56,13 @@ export function route(routeOptions: RouteOptions) { if (!backendProviders[body.backend]) { return res.status(400).send({ - error: "Unknown/unsupported/deprecated backend!", + error: "Unsupported backend!", }); } - const connectionDetails = JSON.stringify(body.connectionDetails); - const connectionDetailsValidityCheck = - backendProviders[body.backend].checkParametersBackendInstance( - connectionDetails, - ); + const connectionDetailsValidityCheck = backendProviders[ + body.backend + ].checkParametersBackendInstance(body.connectionDetails); if (!connectionDetailsValidityCheck.success) { return res.status(400).send({ @@ -79,7 +78,7 @@ export function route(routeOptions: RouteOptions) { description: body.description, backend: body.backend, - connectionDetails: JSON.stringify(body.connectionDetails), + connectionDetails: body.connectionDetails, }, });