From 1e94febc315fd3cfcbc9c386459b9d21368cc45c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Yusuf=20Akg=C3=BCl?= <s86116@bht-berlin.de>
Date: Sat, 20 May 2023 23:31:11 +0200
Subject: [PATCH] cleanup latest merge

---
 app/(content)/(thread)/threads/page.tsx | 23 +++++++++-
 app/api/messages/route.ts               | 56 -------------------------
 app/api/threads/route.ts                | 22 ++++++++++
 app/messages/PostMessageForm.tsx        | 29 -------------
 app/messages/page.tsx                   | 42 -------------------
 components/PostMessageForm.tsx          | 29 +++++++++++++
 prisma/schema.prisma                    | 16 +++----
 7 files changed, 81 insertions(+), 136 deletions(-)
 delete mode 100644 app/api/messages/route.ts
 create mode 100644 app/api/threads/route.ts
 delete mode 100644 app/messages/PostMessageForm.tsx
 delete mode 100644 app/messages/page.tsx
 create mode 100644 components/PostMessageForm.tsx

diff --git a/app/(content)/(thread)/threads/page.tsx b/app/(content)/(thread)/threads/page.tsx
index d9a8ea4..f206b35 100644
--- a/app/(content)/(thread)/threads/page.tsx
+++ b/app/(content)/(thread)/threads/page.tsx
@@ -1,7 +1,28 @@
-export default function ThreadsPage() {
+import PostMessageForm from "@/components/PostMessageForm";
+import { prisma } from "@/prisma/db";
+
+export default async function ThreadsPage() {
+    let messages = null
+    try {
+        messages = await prisma.message.findMany()
+    } catch (error) {
+        console.log("the database is not running, try: 'npx prisma migrate dev --name init' if you want to use the database")
+    }
+
     return (
         <div>
             <h1>Threads WIP</h1>
+            <p>Needs a reload after posting!!</p>
+
+            {messages ?
+                <>
+                    {messages.map((msg) => (
+                        <li key={msg.id}> author: {msg.author} message: {msg.content} sentAt: {msg.sentAt?.toString()} </li>
+                    ))}
+                    <PostMessageForm data={messages}></PostMessageForm>
+                </>
+                :
+                <p>no messages / no database</p>}
         </div>
     )
 }
\ No newline at end of file
diff --git a/app/api/messages/route.ts b/app/api/messages/route.ts
deleted file mode 100644
index e051b55..0000000
--- a/app/api/messages/route.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import {PrismaClient} from "@prisma/client"
-import { NextApiRequest, NextApiResponse } from "next"
-import { NextRequest, NextResponse } from "next/server"
-import { prisma } from './../../../prisma/db'
-
-export async function GET(req: NextRequest){
-	return NextResponse.json("")
-}
-
-export async function POST(req: NextRequest, res: NextResponse){
-	const data = await req.json()
-	console.log("router data: " + data, "status:")
-	
-	console.log(data)
-	try {
-		await prisma.message.create({
-	    data: data
-		})
-		
-		return NextResponse.json({status: 201, message: 'Message Created'})
-		//res.status(200).json({message: 'Message Created'})
-		//res.status(200).json({message: 'Message Created'})
-	} catch (error) {
-		console.log("Failure" + error);
-		// res.status(400)
-	}
-	console.log("post")
-	
-	
-}
-
-/* 
-export default async function handler(req: NextApiRequest, res: NextApiResponse){
-	const data = (req.body)
-
-	try {
-		await prisma.message.create({
-	    data
-		})
-		res.status(200).json({message: 'Note Created'})
-	} catch (error) {
-		console.log("Failure");
-	}
-} */
-
-/* export const postMessage = async(req: NextApiRequest , res: NextApiResponse) => {
-const data = (req.body)
-
-console.log("router data: " + data)
-
-const createdMessage = await prisma.message.create({
-    data
-})
-
-res.status(201)
-} */
\ No newline at end of file
diff --git a/app/api/threads/route.ts b/app/api/threads/route.ts
new file mode 100644
index 0000000..aa12a6f
--- /dev/null
+++ b/app/api/threads/route.ts
@@ -0,0 +1,22 @@
+import { prisma } from "@/prisma/db"
+import { NextRequest, NextResponse } from "next/server"
+
+export async function POST(req: NextRequest) {
+	const data = await req.json()
+	console.log("router data: " + data, "status:")
+
+	console.log(data)
+	try {
+		await prisma.message.create({
+			data: data
+		})
+
+		return NextResponse.json({ status: 201, message: 'Message Created' })
+		// res.status(200).json({message: 'Message Created'})
+		// res.status(200).json({message: 'Message Created'})
+	} catch (error) {
+		console.log("fail" + error);
+		// res.status(400)
+	}
+	console.log("post")
+}
\ No newline at end of file
diff --git a/app/messages/PostMessageForm.tsx b/app/messages/PostMessageForm.tsx
deleted file mode 100644
index 3a10ea8..0000000
--- a/app/messages/PostMessageForm.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-"use client"
-
-import { useState } from "react"
-import { PrismaClient, Message } from "@prisma/client"
-
-export default function PostMessageForm(props: {data: Message[]}){
-    const [formData, setFormData] = useState({}) 
-    const [messagesState, setMessages] = useState(props.data)
-  
-    async function postMessage(e:any) {
-      e.preventDefault()
-      /* setMessages([...messagesState, formData]) */
-      console.log(formData)
-      const response = await fetch('http://localhost:3000/api/messages', {
-          method: 'POST',
-          body: JSON.stringify(formData)
-      })
-      return await response.json()
-    }
-
-    return (<div>
-        <form onSubmit={postMessage}>
-        <input type="text" placeholder="content" name="content" onChange={e => setFormData({ ...formData, content : e.target.value })}/>
-        <textarea name="content" id="" cols={30} rows={10} placeholder="content" onChange={e => setFormData({ ...formData, content: e.target.value })} />
-        <button type="submit">Post Message</button>
-        </form>
-        
-        </div>)
-}
\ No newline at end of file
diff --git a/app/messages/page.tsx b/app/messages/page.tsx
deleted file mode 100644
index f8ad89a..0000000
--- a/app/messages/page.tsx
+++ /dev/null
@@ -1,42 +0,0 @@
-import { Message } from "@prisma/client"
-import React from "react"
-import PostMessageForm from "./PostMessageForm";
-import { prisma } from "@/prisma/db";
-
-// Define a type for our props
-interface MessageProps {
-  data: Message[];
-}
-
-export default async function MessageList({data}:MessageProps) {
-
-  const messages = await prisma.message.findMany()
-
-    return (
-        <div>
-            Message List Page
-            {messages.map((msg) => (
-               <li key = {msg.id}> author: {msg.author} message: {msg.content} sentAt: {msg.sentAt?.toString()} </li>
-            ))}
-
-            <PostMessageForm data={messages}></PostMessageForm>
-        </div>
-    )
-}
-
-export async function getServerSideProps() {
-  const formData = {description: 'sdfsdf', content: 'sdfsdf'}
-  const response = await fetch('/api/messages', {
-    method: 'POST',
-    body: JSON.stringify(formData)
-})
-  console.log("answer:" + await response.json())
-
-  const messages = await prisma.message.findMany()
-
-  return {
-      props: {
-          data: messages
-      }
-  }
-}
\ No newline at end of file
diff --git a/components/PostMessageForm.tsx b/components/PostMessageForm.tsx
new file mode 100644
index 0000000..7c50326
--- /dev/null
+++ b/components/PostMessageForm.tsx
@@ -0,0 +1,29 @@
+"use client"
+
+import { Message } from "@prisma/client"
+import { useState } from "react"
+
+export default function PostMessageForm(props: { data: Message[] | null }) {
+  const [formData, setFormData] = useState({})
+  // const [messagesState, setMessages] = useState(props.data)
+
+  async function postMessage(e: any) {
+    e.preventDefault()
+    // setMessages([...messagesState, formData])
+    console.log(formData)
+    const response = await fetch('http://localhost:3000/api/threads', {
+      method: 'POST',
+      body: JSON.stringify(formData)
+    })
+    return await response.json()
+  }
+
+  return (
+    <div>
+      <form onSubmit={postMessage}>
+        <input type="text" placeholder="content" name="content" onChange={e => setFormData({ ...formData, content: e.target.value })} />
+        <button type="submit">Post Message</button>
+      </form>
+    </div>
+  )
+}
\ No newline at end of file
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
index ba5b352..deac6a9 100644
--- a/prisma/schema.prisma
+++ b/prisma/schema.prisma
@@ -10,12 +10,12 @@ datasource db {
   url      = env("DATABASE_URL")
 }
 
-model Message{
-  id Int @id @default(autoincrement())
-  author String?
-  gameId String?
-  title String?
-  content String
-  sentAt DateTime? @default(now())
+model Message {
+  id        Int       @id @default(autoincrement())
+  author    String?
+  gameId    String?
+  title     String?
+  content   String
+  sentAt    DateTime? @default(now())
   updatedAt DateTime? @updatedAt
-}
\ No newline at end of file
+}
-- 
GitLab