MIF_E31222870/BE/src/router/kriteria.ts

90 lines
2.0 KiB
TypeScript

import { Router } from 'express'
import { verifyToken } from '../utils/verifyToken'
import { Criteria, PrismaClient } from '@prisma/client'
import { verifyRole } from '../utils/verifyRole'
const prisma = new PrismaClient()
const router = Router()
//get all kriteria
router.get('/', verifyToken, async (req, res) => {
try {
const kriteria = await prisma.kriteria.findMany()
res.json(kriteria)
} catch (error) {
res.status(500).json({ message: 'Internal server error' });
}
})
// get by id kriteria
router.get('/:id', verifyToken, async (req, res) => {
const { id } = req.params
try {
const kriteria = await prisma.kriteria.findUnique({
where: {
id: id
}
})
res.json(kriteria)
} catch (error) {
res.status(500).json({ message: 'Internal server error' });
}
})
// create kriteria
router.post('/', verifyToken, async (req, res) => {
const { name, code, weight, criteria } = req.body
try {
const kriteria = await prisma.kriteria.create({
data: {
name,
code,
weight,
criteria,
}
})
res.status(201).json(kriteria)
} catch (error) {
console.log(error)
res.status(500).json({ message: 'Internal server error' });
}
})
// update kriteria
router.put('/:id', verifyToken, async (req, res) => {
const { id } = req.params
const { name, code, weight, criteria } = req.body
try {
const kriteria = await prisma.kriteria.update({
where: {
id: id
},
data: {
name,
code,
weight,
criteria,
}
})
res.json(kriteria)
} catch (error) {
console.log(error)
res.status(500).json({ message: 'Internal server error' });
}
})
// delete kriteria
router.delete('/:id', verifyToken, async (req, res) => {
try {
const { id } = req.params
await prisma.kriteria.delete({
where: {
id: id
}
})
res.send('delete kriteria')
} catch (error) {
res.status(500).json({ message: 'Internal server error' });
}
})
export default router