feat: add opening directly from comfy deploy -> machines
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
import { workflowVersionSchema } from "@/db/schema";
|
||||
import type { App } from "@/routes/app";
|
||||
import { authError } from "@/routes/authError";
|
||||
import { getWorkflowVersion } from "@/server/crudWorkflow";
|
||||
import { z, createRoute } from "@hono/zod-openapi";
|
||||
|
||||
const route = createRoute({
|
||||
method: "get",
|
||||
path: "/workflow-version/:version_id",
|
||||
tags: ["comfyui"],
|
||||
summary: "Get comfyui workflow",
|
||||
description: "Use this to retrieve comfyui workflow by id",
|
||||
request: {
|
||||
params: z.object({
|
||||
version_id: z.string(),
|
||||
}),
|
||||
},
|
||||
responses: {
|
||||
200: {
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: workflowVersionSchema,
|
||||
},
|
||||
},
|
||||
description: "Retrieve the output",
|
||||
},
|
||||
500: {
|
||||
content: {
|
||||
"application/json": {
|
||||
schema: z.object({
|
||||
error: z.string(),
|
||||
}),
|
||||
},
|
||||
},
|
||||
description: "Error when uploading the workflow",
|
||||
},
|
||||
...authError,
|
||||
},
|
||||
});
|
||||
|
||||
export const registerGetWorkflowRoute = (app: App) => {
|
||||
return app.openapi(route, async (c) => {
|
||||
const { version_id } = c.req.valid("param");
|
||||
const apiUser = c.get("apiKeyTokenData")!;
|
||||
|
||||
if (!apiUser.user_id)
|
||||
return c.json(
|
||||
{
|
||||
error: "Invalid user_id",
|
||||
},
|
||||
{
|
||||
status: 500,
|
||||
},
|
||||
);
|
||||
|
||||
try {
|
||||
const workflow_version = await getWorkflowVersion(apiUser, version_id);
|
||||
if (workflow_version) {
|
||||
return c.json(workflow_version, {
|
||||
status: 200,
|
||||
});
|
||||
} else {
|
||||
return c.json(
|
||||
{
|
||||
error: "No version found",
|
||||
},
|
||||
{
|
||||
status: 500,
|
||||
},
|
||||
);
|
||||
}
|
||||
} catch (error: unknown) {
|
||||
const errorMessage =
|
||||
error instanceof Error ? error.message : "Unknown error";
|
||||
return c.json(
|
||||
{
|
||||
error: errorMessage,
|
||||
},
|
||||
{
|
||||
statusText: "Invalid request",
|
||||
status: 500,
|
||||
},
|
||||
);
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -1,4 +1,10 @@
|
||||
import { snapshotType, workflowAPIType, workflowType } from "@/db/schema";
|
||||
import { db } from "@/db/db";
|
||||
import {
|
||||
snapshotType,
|
||||
workflowAPIType,
|
||||
workflowTable,
|
||||
workflowType,
|
||||
} from "@/db/schema";
|
||||
import type { App } from "@/routes/app";
|
||||
import { authError } from "@/routes/authError";
|
||||
import {
|
||||
@@ -6,10 +12,11 @@ import {
|
||||
createNewWorkflowVersion,
|
||||
} from "@/server/createNewWorkflow";
|
||||
import { z, createRoute } from "@hono/zod-openapi";
|
||||
import { and, eq } from "drizzle-orm";
|
||||
|
||||
const route = createRoute({
|
||||
method: "post",
|
||||
path: "/upload-workflow",
|
||||
path: "/workflow",
|
||||
tags: ["comfyui"],
|
||||
summary: "Upload workflow from ComfyUI",
|
||||
description:
|
||||
@@ -106,6 +113,30 @@ export const registerWorkflowUploadRoute = (app: App) => {
|
||||
workflow_id = _workflow_id;
|
||||
version = _version;
|
||||
} else if (workflow_id) {
|
||||
const workflow = await db
|
||||
.select()
|
||||
.from(workflowTable)
|
||||
.where(
|
||||
and(
|
||||
eq(workflowTable.id, workflow_id),
|
||||
eq(workflowTable.user_id, user_id),
|
||||
eq(workflowTable.org_id, org_id),
|
||||
),
|
||||
);
|
||||
|
||||
if (workflow.length === 0) {
|
||||
return c.json(
|
||||
{
|
||||
error: "Invalid workflow_id",
|
||||
},
|
||||
{
|
||||
status: 500,
|
||||
statusText: "Invalid workflow_id",
|
||||
headers: corsHeaders,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
// Case 2 update workflow
|
||||
const { version: _version } = await createNewWorkflowVersion({
|
||||
workflow_id: workflow_id,
|
||||
|
||||
Reference in New Issue
Block a user