- Vamos incluir um método no serviço para excluir um like no banco de dados:
// src/services/likeService.ts
// ...
},
delete: async (userId: number, courseId: number) => {
await Like.destroy({
where: {
userId,
courseId
}
})
}
}
- E depois disso criar um método no controlador para ser usado na rota:
// src/controllersr/likes-controller.ts
import { Response } from 'express'
import { AuthenticatedRequest } from "../middlewares/auth";
import { likeService } from '../services/likeService'
const likesController = {
// ...
// DELETE /likes/:id
delete: async (req: AuthenticatedRequest, res: Response) => {
const userId = req.user!.id
const courseId = req.params.id
try {
await likeService.delete(userId, Number(courseId))
return res.status(204).send()
} catch (err) {
if (err instanceof Error) {
return res.status(400).json({ message: err.message })
}
}
}
}
- Agora só precisamos criar a rota:
// src/routes.ts
// ...
router.post('/likes', ensureAuth, likesController.save)
router.delete('/likes', ensureAuth, likesController.delete)
export { router }