Category routes implementation

This commit is contained in:
Florian Sylvain
2023-02-01 09:08:37 +01:00
parent 44b842d66c
commit e7078a419d
4 changed files with 56 additions and 24 deletions
+53
View File
@@ -0,0 +1,53 @@
import { Category, PrismaClient } from "@prisma/client"
import express, { RequestHandler } from "express"
import { z } from "zod"
import { parseJwtUserId } from "./user.js"
const categoryRouter = express.Router()
const prisma = new PrismaClient()
const categoryData = z.object({
name: z.string().max(50)
}).required()
const categoryGet: RequestHandler = async (req, res) => {
let category: Category | null = null
try {
const categoryGet = categoryData.parse(req.body)
category = await prisma.category.findFirst({ where: { name: categoryGet.name } })
} catch (error: any) {
res.status(400).json({ message: (error.issues ?? error) })
return;
}
res.json({ category })
}
const categoryPost: RequestHandler = async (req, res) => {
const userId = parseJwtUserId(req.cookies.jwt)
if (userId === undefined) {
res.status(400).json({ message: 'Incorrect JWT payload.' })
return;
}
try {
const newCategory = categoryData.parse(req.body)
prisma.category.create({
data: {
name: newCategory.name,
user_id: userId
}
})
} catch (error: any) {
res.status(400).json({ message: (error.issues ?? error) })
return;
}
res.json({ message: 'Category successfully added.' })
}
categoryRouter.get('/', categoryGet)
categoryRouter.post('/', categoryPost)
export default categoryRouter
-23
View File
@@ -1,23 +0,0 @@
import { Language, PrismaClient } from ".prisma/client"
import express, { RequestHandler } from "express"
import { z } from "zod"
const langRouter = express.Router()
const prisma = new PrismaClient()
const newLang = z.object({
name: z.string()
})
const langRouterGet: RequestHandler = (res, req, next) => {
}
const langRouterPost: RequestHandler = (res, req, next) => {
}
langRouter.get('/', langRouterGet)
langRouter.post('/', langRouterPost)
export default langRouter
+1 -1
View File
@@ -11,7 +11,7 @@ const editableUserData = z.object({
picture_path: z.string().optional()
})
function parseJwtUserId(jwtoken: string): number | undefined {
export function parseJwtUserId(jwtoken: string): number | undefined {
const payload = jwt.decode(jwtoken)
if (payload == undefined) {
return undefined