mirror of
https://github.com/Floriansylvain/SnippetsManager.git
synced 2026-08-19 11:43:15 +02:00
Added PUT route for Snippet
This commit is contained in:
@@ -15,8 +15,6 @@ const testUserCredentials = {
|
|||||||
let category_id: number
|
let category_id: number
|
||||||
let snippet_id: number
|
let snippet_id: number
|
||||||
|
|
||||||
// Mettre a jour les routes Category en stockant les IDs sur GET pour reutiliser sur DELETE
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await prisma.user.create({
|
await prisma.user.create({
|
||||||
data: {
|
data: {
|
||||||
@@ -239,6 +237,24 @@ describe('GET /v1/snippet', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('PUT /v1/snippet/:id', () => {
|
||||||
|
it('returns status code 200 and success message', async () => {
|
||||||
|
const res = await request(app)
|
||||||
|
.put(`/v1/snippet/${snippet_id}`)
|
||||||
|
.set('Content-Type', 'application/json')
|
||||||
|
.set('Cookie', jwtCookie as string)
|
||||||
|
.send(JSON.stringify({
|
||||||
|
code: '<p>en fait non à vuejs</p>',
|
||||||
|
// language: 'html'
|
||||||
|
}))
|
||||||
|
|
||||||
|
console.debug(res.body)
|
||||||
|
|
||||||
|
expect(res.status).toEqual(200)
|
||||||
|
expect(res.body).toHaveProperty('message')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
describe('DELETE /v1/snippet', () => {
|
describe('DELETE /v1/snippet', () => {
|
||||||
it('returns status code 200 and success message', async () => {
|
it('returns status code 200 and success message', async () => {
|
||||||
const res = await request(app)
|
const res = await request(app)
|
||||||
|
|||||||
+30
-2
@@ -16,6 +16,15 @@ const snippetDeleteParser = z.object({
|
|||||||
id: z.number(),
|
id: z.number(),
|
||||||
}).required()
|
}).required()
|
||||||
|
|
||||||
|
const snippetUpdateParser = z.object({
|
||||||
|
code: z.string().optional(),
|
||||||
|
title: z.string().max(50).optional(),
|
||||||
|
language: z.string().max(32).optional()
|
||||||
|
})
|
||||||
|
|
||||||
|
const paramsIdParser = z.object({
|
||||||
|
id: z.coerce.number(),
|
||||||
|
}).required()
|
||||||
|
|
||||||
// TODO Ajouter paramètres sur la requête pour rechercher des snippets
|
// TODO Ajouter paramètres sur la requête pour rechercher des snippets
|
||||||
// TODO Ajouter pagination
|
// TODO Ajouter pagination
|
||||||
@@ -58,6 +67,26 @@ const snippetPost: RequestHandler = async (req, res) => {
|
|||||||
res.json({ message: 'Snippet successfully added.' })
|
res.json({ message: 'Snippet successfully added.' })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const snippetUpdate: RequestHandler = async (req, res) => {
|
||||||
|
let updated: Prisma.BatchPayload
|
||||||
|
|
||||||
|
try {
|
||||||
|
const snippetToUpdate = snippetUpdateParser.parse(req.body)
|
||||||
|
updated = await prisma.snippet.updateMany({
|
||||||
|
where: {
|
||||||
|
id: paramsIdParser.parse(req.params).id,
|
||||||
|
user_id: req.body.userId
|
||||||
|
},
|
||||||
|
data: snippetToUpdate
|
||||||
|
})
|
||||||
|
} catch (error: any) {
|
||||||
|
res.status(400).json({ message: (error.issues ?? error) })
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
res.json({ message: `${updated.count} snippet / categories successfully updated.` })
|
||||||
|
}
|
||||||
|
|
||||||
const snippetDelete: RequestHandler = async (req, res) => {
|
const snippetDelete: RequestHandler = async (req, res) => {
|
||||||
let deleted: Prisma.BatchPayload
|
let deleted: Prisma.BatchPayload
|
||||||
|
|
||||||
@@ -77,10 +106,9 @@ const snippetDelete: RequestHandler = async (req, res) => {
|
|||||||
res.json({ message: `${deleted.count} snippet(s) successfully deleted.` })
|
res.json({ message: `${deleted.count} snippet(s) successfully deleted.` })
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO update snippet
|
|
||||||
|
|
||||||
snippetRouter.get('/', userIdMiddleware, snippetGet)
|
snippetRouter.get('/', userIdMiddleware, snippetGet)
|
||||||
snippetRouter.post('/', userIdMiddleware, snippetPost)
|
snippetRouter.post('/', userIdMiddleware, snippetPost)
|
||||||
|
snippetRouter.put('/:id', userIdMiddleware, snippetUpdate)
|
||||||
snippetRouter.delete('/', userIdMiddleware, snippetDelete)
|
snippetRouter.delete('/', userIdMiddleware, snippetDelete)
|
||||||
|
|
||||||
export default snippetRouter
|
export default snippetRouter
|
||||||
|
|||||||
Reference in New Issue
Block a user