mirror of
https://github.com/Floriansylvain/SnippetsManager.git
synced 2026-08-19 11:43:15 +02:00
Added POST and DELETE routes on Snippets
This commit is contained in:
+51
-37
@@ -6,11 +6,17 @@ import { userIdMiddleware } from "./user.js"
|
||||
const snippetRouter = express.Router()
|
||||
const prisma = new PrismaClient()
|
||||
|
||||
const snippetData = z.object({
|
||||
const snippetPostParser = z.object({
|
||||
code: z.string(),
|
||||
title: z.string().max(50)
|
||||
title: z.string().max(50),
|
||||
language: z.string().max(32)
|
||||
}).required()
|
||||
|
||||
const snippetDeleteParser = z.object({
|
||||
id: z.number(),
|
||||
}).required()
|
||||
|
||||
|
||||
// TODO Ajouter paramètres sur la requête pour rechercher des snippets
|
||||
// TODO Ajouter pagination
|
||||
const snippetGet: RequestHandler = async (req, res) => {
|
||||
@@ -23,50 +29,58 @@ const snippetGet: RequestHandler = async (req, res) => {
|
||||
return;
|
||||
}
|
||||
|
||||
res.json({ categories: snippets })
|
||||
res.json({ snippets })
|
||||
}
|
||||
|
||||
// const snippetPost: RequestHandler = async (req, res) => {
|
||||
// try {
|
||||
// const newSnippet = snippetData.parse(req.body)
|
||||
// await prisma.snippet.create({
|
||||
// data: {
|
||||
// code: newSnippet.code,
|
||||
// title: newSnippet.code,
|
||||
// user_id: req.body.userId
|
||||
// }
|
||||
// })
|
||||
// } catch (error: any) {
|
||||
// res.status(400).json({ message: (error.issues ?? error) })
|
||||
// return;
|
||||
// }
|
||||
const snippetPost: RequestHandler = async (req, res) => {
|
||||
try {
|
||||
const newSnippet = snippetPostParser.parse(req.body)
|
||||
await prisma.snippet.create({
|
||||
data: {
|
||||
title: newSnippet.title,
|
||||
code: newSnippet.code,
|
||||
user: {
|
||||
connect: { id: req.body.userId }
|
||||
},
|
||||
language: {
|
||||
connectOrCreate: {
|
||||
where: { name: newSnippet.language },
|
||||
create: { name: newSnippet.language }
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
} catch (error: any) {
|
||||
res.status(400).json({ message: (error.issues ?? error) })
|
||||
return;
|
||||
}
|
||||
|
||||
// res.json({ message: 'Snippet successfully added.' })
|
||||
// }
|
||||
res.json({ message: 'Snippet successfully added.' })
|
||||
}
|
||||
|
||||
// const snippetDelete: RequestHandler = async (req, res) => {
|
||||
// let deleted: Prisma.BatchPayload
|
||||
const snippetDelete: RequestHandler = async (req, res) => {
|
||||
let deleted: Prisma.BatchPayload
|
||||
|
||||
// try {
|
||||
// const snippetToDel = snippetData.parse(req.body)
|
||||
// deleted = await prisma.snippet.deleteMany({
|
||||
// where: {
|
||||
try {
|
||||
const snippetToDel = snippetDeleteParser.parse(req.body)
|
||||
deleted = await prisma.category.deleteMany({
|
||||
where: {
|
||||
id: snippetToDel.id,
|
||||
user_id: req.body.userId
|
||||
}
|
||||
})
|
||||
} catch (error: any) {
|
||||
res.status(400).json({ message: (error.issues ?? error) })
|
||||
return;
|
||||
}
|
||||
|
||||
// user_id: req.body.userId
|
||||
// }
|
||||
// })
|
||||
// } catch (error: any) {
|
||||
// res.status(400).json({ message: (error.issues ?? error) })
|
||||
// return;
|
||||
// }
|
||||
|
||||
// res.json({ message: `${deleted.count} category / categories successfully deleted.` })
|
||||
// }
|
||||
res.json({ message: `${deleted.count} snippet(s) successfully deleted.` })
|
||||
}
|
||||
|
||||
// TODO update snippet
|
||||
|
||||
snippetRouter.get('/', userIdMiddleware, snippetGet)
|
||||
// snippetRouter.post('/', userIdMiddleware, snippetPost)
|
||||
// snippetRouter.delete('/', userIdMiddleware, snippetDelete)
|
||||
snippetRouter.post('/', userIdMiddleware, snippetPost)
|
||||
snippetRouter.delete('/', userIdMiddleware, snippetDelete)
|
||||
|
||||
export default snippetRouter
|
||||
|
||||
Reference in New Issue
Block a user