{post.title}
-{post.baseUrl}
-{post.description}
-diff --git a/apps/web/db/prepare.sql b/apps/web/db/prepare.sql index da9173a8..62cba941 100644 --- a/apps/web/db/prepare.sql +++ b/apps/web/db/prepare.sql @@ -24,23 +24,25 @@ CREATE TABLE `session` ( FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint +CREATE TABLE `spaces` ( + `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, + `name` text DEFAULT 'all' NOT NULL, + `description` text(255) +); +--> statement-breakpoint CREATE TABLE `storedContent` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `content` text NOT NULL, `title` text(255), `description` text(255), `url` text NOT NULL, - `space` text(255), + `space` text(255) DEFAULT 'all', `savedAt` integer NOT NULL, `baseUrl` text(255), - `image` text(255) -); ---> statement-breakpoint -CREATE TABLE `userStoredContent` ( - `userId` text NOT NULL, - `contentId` integer NOT NULL, - FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action, - FOREIGN KEY (`contentId`) REFERENCES `storedContent`(`id`) ON UPDATE no action ON DELETE no action + `image` text(255), + `user` text(255), + FOREIGN KEY (`space`) REFERENCES `spaces`(`name`) ON UPDATE no action ON DELETE no action, + FOREIGN KEY (`user`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint CREATE TABLE `user` ( @@ -60,10 +62,9 @@ CREATE TABLE `verificationToken` ( --> statement-breakpoint CREATE INDEX `account_userId_idx` ON `account` (`userId`);--> statement-breakpoint CREATE INDEX `session_userId_idx` ON `session` (`userId`);--> statement-breakpoint -CREATE UNIQUE INDEX `storedContent_url_unique` ON `storedContent` (`url`);--> statement-breakpoint +CREATE INDEX `spaces_name_idx` ON `spaces` (`name`);--> statement-breakpoint CREATE INDEX `storedContent_url_idx` ON `storedContent` (`url`);--> statement-breakpoint CREATE INDEX `storedContent_savedAt_idx` ON `storedContent` (`savedAt`);--> statement-breakpoint CREATE INDEX `storedContent_title_idx` ON `storedContent` (`title`);--> statement-breakpoint CREATE INDEX `storedContent_space_idx` ON `storedContent` (`space`);--> statement-breakpoint -CREATE INDEX `userStoredContent_idx` ON `userStoredContent` (`userId`,`contentId`);--> statement-breakpoint -CREATE UNIQUE INDEX `unique_user_content` ON `userStoredContent` (`userId`,`contentId`); \ No newline at end of file +CREATE INDEX `storedContent_user_idx` ON `storedContent` (`user`); \ No newline at end of file diff --git a/apps/web/src/app/MessagePoster.tsx b/apps/web/src/app/MessagePoster.tsx index 76bbc4dd..3d0bbe7e 100644 --- a/apps/web/src/app/MessagePoster.tsx +++ b/apps/web/src/app/MessagePoster.tsx @@ -8,11 +8,7 @@ function MessagePoster({ jwt }: { jwt: string }) { window.postMessage({ jwt }, '*'); }, [jwt]); - return ( - - ); + return null; } export default MessagePoster; diff --git a/apps/web/src/app/api/store/route.ts b/apps/web/src/app/api/store/route.ts index 46e4cdfb..3a4f7e27 100644 --- a/apps/web/src/app/api/store/route.ts +++ b/apps/web/src/app/api/store/route.ts @@ -1,6 +1,6 @@ import { db } from "@/server/db"; import { eq } from "drizzle-orm"; -import { sessions, storedContent, userStoredContent, users } from "@/server/db/schema"; +import { sessions, storedContent, users } from "@/server/db/schema"; import { type NextRequest, NextResponse } from "next/server"; import { env } from "@/env"; import { getMetaData } from "@/server/helpers"; @@ -38,32 +38,19 @@ export async function POST(req: NextRequest) { let id: number | undefined = undefined; - const storedCont = await db.select().from(storedContent).where(eq(storedContent.url, data.url)).limit(1) + const storedContentId = await db.insert(storedContent).values({ + content: data.pageContent, + title: metadata.title, + description: metadata.description, + url: data.url, + baseUrl: metadata.baseUrl, + image: metadata.image, + savedAt: new Date(), + space: "all", + user: session.user.id + }) - if (storedCont.length > 0) { - id = storedCont[0].id; - } else { - const storedContentId = await db.insert(storedContent).values({ - content: data.pageContent, - title: metadata.title, - description: metadata.description, - url: data.url, - baseUrl: metadata.baseUrl, - image: metadata.image, - savedAt: new Date() - }) - - id = storedContentId.meta.last_row_id; - } - - try { - await db.insert(userStoredContent).values({ - userId: session.user.id, - contentId: id - }); - } catch (e) { - console.log(e); - } + id = storedContentId.meta.last_row_id; const res = await Promise.race([ fetch("https://cf-ai-backend.dhravya.workers.dev/add", { @@ -78,10 +65,6 @@ export async function POST(req: NextRequest) { ) ]) as Response - const _ = await res.text(); - - console.log(_) - if (res.status !== 200) { return NextResponse.json({ message: "Error", error: "Error in CF function" }, { status: 500 }); } diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx index 2522a25f..d1d47ae5 100644 --- a/apps/web/src/app/page.tsx +++ b/apps/web/src/app/page.tsx @@ -1,17 +1,12 @@ -import { CardContent, Card } from '@/components/ui/card'; import { db } from '@/server/db'; -import { - sessions, - storedContent, - userStoredContent, - users, -} from '@/server/db/schema'; +import { sessions, storedContent, users } from '@/server/db/schema'; import { eq, inArray } from 'drizzle-orm'; import { cookies, headers } from 'next/headers'; import { redirect } from 'next/navigation'; -import Image from 'next/image'; -import QueryAI from '@/components/QueryAI'; +import Sidebar from '@/components/Sidebar/index'; +import Main from '@/components/Main'; import MessagePoster from './MessagePoster'; +import { transformContent } from '../../types/memory'; export const runtime = 'edge'; @@ -26,6 +21,13 @@ export default async function Home() { return redirect('/api/auth/signin'); } + const selectedItem = cookies().get('selectedItem')?.value; + + const setSelectedItem = async (selectedItem: string | null) => { + 'use server'; + cookies().set('selectedItem', selectedItem!); + }; + const session = await db .select() .from(sessions) @@ -35,101 +37,28 @@ export default async function Home() { return redirect('/api/auth/signin'); } - const userContent = await db - .select() - .from(userStoredContent) - .where(eq(userStoredContent.userId, session[0].userId)); - - const userData = await db + const [userData] = await db .select() .from(users) .where(eq(users.id, session[0].userId)) .limit(1); - if (!userData || userData.length === 0) { + if (!userData) { return redirect('/api/auth/signin'); } - const listOfContent = - userContent.map((content) => content.contentId).length > 0 - ? userContent.map((content) => content.contentId) - : [1]; - const posts = await db .select() .from(storedContent) - .where(inArray(storedContent.id, listOfContent)); + .where(eq(storedContent.user, userData.id)); + + const collectedSpaces = transformContent(posts); return ( -
{post.baseUrl}
-{post.description}
-