refactor: move workflow to /workflow
This commit is contained in:
		
							parent
							
								
									7e05fae7b3
								
							
						
					
					
						commit
						c419e10827
					
				@ -2,7 +2,7 @@ import { NextResponse, type NextRequest } from "next/server";
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export async function GET(request: NextRequest) {
 | 
					export async function GET(request: NextRequest) {
 | 
				
			||||||
  const file = new URL(request.url).searchParams.get("file");
 | 
					  const file = new URL(request.url).searchParams.get("file");
 | 
				
			||||||
  console.log(file);
 | 
					  console.log(`${process.env.SPACES_ENDPOINT}/comfyui-deploy/${file}`);
 | 
				
			||||||
  return NextResponse.redirect(
 | 
					  return NextResponse.redirect(
 | 
				
			||||||
    `${process.env.SPACES_ENDPOINT}/comfyui-deploy/${file}`
 | 
					    `${process.env.SPACES_ENDPOINT}/comfyui-deploy/${file}`
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
import { DeploymentsTable, RunsTable } from "../../components/RunsTable";
 | 
					import { DeploymentsTable, RunsTable } from "../../../components/RunsTable";
 | 
				
			||||||
import { findFirstTableWithVersion } from "../../server/findFirstTableWithVersion";
 | 
					import { findFirstTableWithVersion } from "../../../server/findFirstTableWithVersion";
 | 
				
			||||||
import { MachinesWSMain } from "@/components/MachinesWS";
 | 
					import { MachinesWSMain } from "@/components/MachinesWS";
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  CreateDeploymentButton,
 | 
					  CreateDeploymentButton,
 | 
				
			||||||
@ -49,7 +49,7 @@ export default async function Page({
 | 
				
			|||||||
            <MachinesWSMain machines={machines} />
 | 
					            <MachinesWSMain machines={machines} />
 | 
				
			||||||
          </CardContent>
 | 
					          </CardContent>
 | 
				
			||||||
        </Card>
 | 
					        </Card>
 | 
				
			||||||
        <Card className="w-full ">
 | 
					        <Card className="w-full h-fit">
 | 
				
			||||||
          <CardHeader>
 | 
					          <CardHeader>
 | 
				
			||||||
            <CardTitle>Deployments</CardTitle>
 | 
					            <CardTitle>Deployments</CardTitle>
 | 
				
			||||||
          </CardHeader>
 | 
					          </CardHeader>
 | 
				
			||||||
@ -60,7 +60,7 @@ export default async function Page({
 | 
				
			|||||||
        </Card>
 | 
					        </Card>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <Card className="w-full ">
 | 
					      <Card className="w-full h-fit">
 | 
				
			||||||
        <CardHeader>
 | 
					        <CardHeader>
 | 
				
			||||||
          <CardTitle>Run</CardTitle>
 | 
					          <CardTitle>Run</CardTitle>
 | 
				
			||||||
        </CardHeader>
 | 
					        </CardHeader>
 | 
				
			||||||
@ -21,28 +21,32 @@ curl --request POST \
 | 
				
			|||||||
}'
 | 
					}'
 | 
				
			||||||
`;
 | 
					`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const curlTemplate_checkStatus = `
 | 
				
			||||||
 | 
					curl --request GET \
 | 
				
			||||||
 | 
					  --url 'http://localhost:3000/api/run?run_id=xxx' \
 | 
				
			||||||
 | 
					  --header 'Content-Type: application/json'
 | 
				
			||||||
 | 
					`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const jsTemplate = `
 | 
					const jsTemplate = `
 | 
				
			||||||
const options = {
 | 
					fetch('<URL>', {
 | 
				
			||||||
  method: 'POST',
 | 
					  method: 'POST',
 | 
				
			||||||
  headers: {'Content-Type': 'application/json'},
 | 
					  headers: {'Content-Type': 'application/json'},
 | 
				
			||||||
  body: '{"deployment_id":"<ID>"}'
 | 
					  body: JSON.stringify({
 | 
				
			||||||
};
 | 
					    deployment_id: '<ID>',
 | 
				
			||||||
 | 
					  }),
 | 
				
			||||||
fetch('<URL>', options)
 | 
					})
 | 
				
			||||||
  .then(response => response.json())
 | 
					  .then(response => response.json())
 | 
				
			||||||
  .then(response => console.log(response))
 | 
					  .then(response => console.log(response))
 | 
				
			||||||
  .catch(err => console.error(err));
 | 
					  .catch(err => console.error(err));
 | 
				
			||||||
`;
 | 
					`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const jsTemplate_checkStatus = `
 | 
					const jsTemplate_checkStatus = `
 | 
				
			||||||
const options = {
 | 
					 | 
				
			||||||
  method: 'GET',
 | 
					 | 
				
			||||||
  headers: {'Content-Type': 'application/json'},
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const run_id = '<RUN_ID>';
 | 
					const run_id = '<RUN_ID>';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fetch('<URL>?run_id=' + run_id, options)
 | 
					fetch('<URL>?run_id=' + run_id, {
 | 
				
			||||||
 | 
					  method: 'GET',
 | 
				
			||||||
 | 
					  headers: {'Content-Type': 'application/json'},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
  .then(response => response.json())
 | 
					  .then(response => response.json())
 | 
				
			||||||
  .then(response => console.log(response))
 | 
					  .then(response => console.log(response))
 | 
				
			||||||
  .catch(err => console.error(err));
 | 
					  .catch(err => console.error(err));
 | 
				
			||||||
@ -82,17 +86,23 @@ export function DeploymentDisplay({
 | 
				
			|||||||
            <TabsTrigger value="curl">curl</TabsTrigger>
 | 
					            <TabsTrigger value="curl">curl</TabsTrigger>
 | 
				
			||||||
          </TabsList>
 | 
					          </TabsList>
 | 
				
			||||||
          <TabsContent className="flex flex-col gap-2" value="js">
 | 
					          <TabsContent className="flex flex-col gap-2" value="js">
 | 
				
			||||||
 | 
					            Trigger the workflow
 | 
				
			||||||
            <CodeBlock lang="js" code={formatCode(jsTemplate, deployment)} />
 | 
					            <CodeBlock lang="js" code={formatCode(jsTemplate, deployment)} />
 | 
				
			||||||
 | 
					            Check the status of the run, and retrieve the outputs
 | 
				
			||||||
            <CodeBlock
 | 
					            <CodeBlock
 | 
				
			||||||
              lang="js"
 | 
					              lang="js"
 | 
				
			||||||
              code={formatCode(jsTemplate_checkStatus, deployment)}
 | 
					              code={formatCode(jsTemplate_checkStatus, deployment)}
 | 
				
			||||||
            />
 | 
					            />
 | 
				
			||||||
          </TabsContent>
 | 
					          </TabsContent>
 | 
				
			||||||
          <TabsContent value="curl">
 | 
					          <TabsContent className="flex flex-col gap-2" value="curl">
 | 
				
			||||||
            <CodeBlock
 | 
					            <CodeBlock
 | 
				
			||||||
              lang="bash"
 | 
					              lang="bash"
 | 
				
			||||||
              code={formatCode(curlTemplate, deployment)}
 | 
					              code={formatCode(curlTemplate, deployment)}
 | 
				
			||||||
            />
 | 
					            />
 | 
				
			||||||
 | 
					            <CodeBlock
 | 
				
			||||||
 | 
					              lang="bash"
 | 
				
			||||||
 | 
					              code={formatCode(curlTemplate_checkStatus, deployment)}
 | 
				
			||||||
 | 
					            />
 | 
				
			||||||
          </TabsContent>
 | 
					          </TabsContent>
 | 
				
			||||||
        </Tabs>
 | 
					        </Tabs>
 | 
				
			||||||
      </DialogContent>
 | 
					      </DialogContent>
 | 
				
			||||||
 | 
				
			|||||||
@ -70,7 +70,7 @@ export function OutputRender(props: { run_id: string; filename: string }) {
 | 
				
			|||||||
    return (
 | 
					    return (
 | 
				
			||||||
      <img
 | 
					      <img
 | 
				
			||||||
        alt={props.filename}
 | 
					        alt={props.filename}
 | 
				
			||||||
        src={`api/view?file=${encodeURIComponent(
 | 
					        src={`/api/view?file=${encodeURIComponent(
 | 
				
			||||||
          `outputs/runs/${props.run_id}/${props.filename}`
 | 
					          `outputs/runs/${props.run_id}/${props.filename}`
 | 
				
			||||||
        )}`}
 | 
					        )}`}
 | 
				
			||||||
      />
 | 
					      />
 | 
				
			||||||
 | 
				
			|||||||
@ -23,7 +23,7 @@ export function RunOutputs({ run_id }: { run_id: string }) {
 | 
				
			|||||||
    //   .then((x) => x.json())
 | 
					    //   .then((x) => x.json())
 | 
				
			||||||
    //   .then((x) => setOutputs(x));
 | 
					    //   .then((x) => setOutputs(x));
 | 
				
			||||||
    callServerPromise(getRunsOutput(run_id).then((x) => setOutputs(x)));
 | 
					    callServerPromise(getRunsOutput(run_id).then((x) => setOutputs(x)));
 | 
				
			||||||
  }, [run_id, outputs]);
 | 
					  }, [run_id]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return (
 | 
					  return (
 | 
				
			||||||
    <Table>
 | 
					    <Table>
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,6 @@ import {
 | 
				
			|||||||
  DropdownMenuContent,
 | 
					  DropdownMenuContent,
 | 
				
			||||||
  DropdownMenuItem,
 | 
					  DropdownMenuItem,
 | 
				
			||||||
  DropdownMenuLabel,
 | 
					  DropdownMenuLabel,
 | 
				
			||||||
  DropdownMenuSeparator,
 | 
					 | 
				
			||||||
  DropdownMenuTrigger,
 | 
					  DropdownMenuTrigger,
 | 
				
			||||||
} from "@/components/ui/dropdown-menu";
 | 
					} from "@/components/ui/dropdown-menu";
 | 
				
			||||||
import { Input } from "@/components/ui/input";
 | 
					import { Input } from "@/components/ui/input";
 | 
				
			||||||
@ -85,7 +84,7 @@ export const columns: ColumnDef<Payment>[] = [
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    cell: ({ row }) => {
 | 
					    cell: ({ row }) => {
 | 
				
			||||||
      return (
 | 
					      return (
 | 
				
			||||||
        <a className="hover:underline" href={`/${row.original.id}`}>
 | 
					        <a className="hover:underline" href={`/workflow/${row.original.id}`}>
 | 
				
			||||||
          {row.getValue("email")}
 | 
					          {row.getValue("email")}
 | 
				
			||||||
        </a>
 | 
					        </a>
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
@ -167,7 +166,7 @@ export const columns: ColumnDef<Payment>[] = [
 | 
				
			|||||||
export function WorkflowList({ data }: { data: Payment[] }) {
 | 
					export function WorkflowList({ data }: { data: Payment[] }) {
 | 
				
			||||||
  const [sorting, setSorting] = React.useState<SortingState>([]);
 | 
					  const [sorting, setSorting] = React.useState<SortingState>([]);
 | 
				
			||||||
  const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(
 | 
					  const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(
 | 
				
			||||||
    [],
 | 
					    []
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
  const [columnVisibility, setColumnVisibility] =
 | 
					  const [columnVisibility, setColumnVisibility] =
 | 
				
			||||||
    React.useState<VisibilityState>({});
 | 
					    React.useState<VisibilityState>({});
 | 
				
			||||||
@ -242,7 +241,7 @@ export function WorkflowList({ data }: { data: Payment[] }) {
 | 
				
			|||||||
                        ? null
 | 
					                        ? null
 | 
				
			||||||
                        : flexRender(
 | 
					                        : flexRender(
 | 
				
			||||||
                            header.column.columnDef.header,
 | 
					                            header.column.columnDef.header,
 | 
				
			||||||
                            header.getContext(),
 | 
					                            header.getContext()
 | 
				
			||||||
                          )}
 | 
					                          )}
 | 
				
			||||||
                    </TableHead>
 | 
					                    </TableHead>
 | 
				
			||||||
                  );
 | 
					                  );
 | 
				
			||||||
@ -261,7 +260,7 @@ export function WorkflowList({ data }: { data: Payment[] }) {
 | 
				
			|||||||
                    <TableCell key={cell.id}>
 | 
					                    <TableCell key={cell.id}>
 | 
				
			||||||
                      {flexRender(
 | 
					                      {flexRender(
 | 
				
			||||||
                        cell.column.columnDef.cell,
 | 
					                        cell.column.columnDef.cell,
 | 
				
			||||||
                        cell.getContext(),
 | 
					                        cell.getContext()
 | 
				
			||||||
                      )}
 | 
					                      )}
 | 
				
			||||||
                    </TableCell>
 | 
					                    </TableCell>
 | 
				
			||||||
                  ))}
 | 
					                  ))}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user