Skip to content
Snippets Groups Projects
Commit 1e94febc authored by Yusuf Akgül's avatar Yusuf Akgül :hatching_chick:
Browse files

cleanup latest merge

parent 734615cf
No related branches found
No related tags found
No related merge requests found
Pipeline #34049 passed
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
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
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
"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
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
"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
......@@ -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
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment