mirror of
https://github.com/Floriansylvain/CineAllo.git
synced 2026-08-19 11:43:24 +02:00
Added queries to shows GET route
This commit is contained in:
+24
-3
@@ -5,12 +5,33 @@ import createHttpError from 'http-errors'
|
|||||||
const prisma = new PrismaClient()
|
const prisma = new PrismaClient()
|
||||||
export const showsRouter = express.Router()
|
export const showsRouter = express.Router()
|
||||||
|
|
||||||
|
function pushQueryToFilter(filter, keyValueQuery) {
|
||||||
|
if (keyValueQuery.value === undefined) return;
|
||||||
|
if (filter.where == undefined) {
|
||||||
|
filter.where = {}
|
||||||
|
}
|
||||||
|
|
||||||
|
filter.where[keyValueQuery.key] = {
|
||||||
|
[keyValueQuery.query]: keyValueQuery.query === 'contains' ?
|
||||||
|
keyValueQuery.value.toString() : parseInt(keyValueQuery.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
showsRouter.get('/', function (req, res, next) {
|
showsRouter.get('/', function (req, res, next) {
|
||||||
prisma.serie.findMany({
|
const filter = {
|
||||||
orderBy: {
|
orderBy: {
|
||||||
likes: 'desc'
|
likes: 'desc'
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
|
|
||||||
|
const queries = req.query
|
||||||
|
pushQueryToFilter(filter, { key: 'title', value: queries?.title, query: 'contains' })
|
||||||
|
pushQueryToFilter(filter, { key: 'description', value: queries?.description, query: 'contains' })
|
||||||
|
pushQueryToFilter(filter, { key: 'thumbmailURL', value: queries?.thumbmailURL, query: 'contains' })
|
||||||
|
pushQueryToFilter(filter, { key: 'date', value: queries?.date, query: 'equals' })
|
||||||
|
pushQueryToFilter(filter, { key: 'likes', value: queries?.likes, query: 'equals' })
|
||||||
|
|
||||||
|
prisma.serie.findMany(filter)
|
||||||
.then(shows => res.send({ shows }))
|
.then(shows => res.send({ shows }))
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -43,7 +64,7 @@ showsRouter.post('/', function (req, res, next) {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
showsRouter.patch('/like/:id', function (req, res, next) {
|
showsRouter.patch('/:id/like/', function (req, res, next) {
|
||||||
prisma.serie.update({
|
prisma.serie.update({
|
||||||
where: {
|
where: {
|
||||||
title: req.params.id
|
title: req.params.id
|
||||||
|
|||||||
Reference in New Issue
Block a user