mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-05-01 03:16:29 +02:00
add rowboat app
This commit is contained in:
parent
b83b5f8a07
commit
10f76ef49f
117 changed files with 25370 additions and 0 deletions
51
apps/rowboat/app/projects/[projectId]/workflow/page.tsx
Normal file
51
apps/rowboat/app/projects/[projectId]/workflow/page.tsx
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import { Metadata } from "next";
|
||||
import { agentWorkflowsCollection, dataSourcesCollection, projectsCollection } from "@/app/lib/mongodb";
|
||||
import { App } from "./app";
|
||||
import { baseWorkflow } from "@/app/lib/utils";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Workflow"
|
||||
}
|
||||
|
||||
export default async function Page({
|
||||
params,
|
||||
}: {
|
||||
params: { projectId: string };
|
||||
}) {
|
||||
let startWithWorkflowId = null;
|
||||
const count = await agentWorkflowsCollection.countDocuments({
|
||||
projectId: params.projectId,
|
||||
});
|
||||
if (count === 0) {
|
||||
// get the next workflow number
|
||||
const doc = await projectsCollection.findOneAndUpdate({
|
||||
_id: params.projectId,
|
||||
}, {
|
||||
$inc: {
|
||||
nextWorkflowNumber: 1,
|
||||
},
|
||||
}, {
|
||||
returnDocument: 'after'
|
||||
});
|
||||
if (!doc) {
|
||||
throw new Error('Project not found');
|
||||
}
|
||||
const nextWorkflowNumber = doc.nextWorkflowNumber;
|
||||
|
||||
// create the workflow
|
||||
const workflow = {
|
||||
...baseWorkflow,
|
||||
projectId: params.projectId,
|
||||
createdAt: new Date().toISOString(),
|
||||
lastUpdatedAt: new Date().toISOString(),
|
||||
name: `Version ${nextWorkflowNumber}`,
|
||||
};
|
||||
const { insertedId } = await agentWorkflowsCollection.insertOne(workflow);
|
||||
startWithWorkflowId = insertedId.toString();
|
||||
}
|
||||
|
||||
return <App
|
||||
projectId={params.projectId}
|
||||
startWithWorkflowId={startWithWorkflowId}
|
||||
/>;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue