app.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. const express = require('express')
  2. const { sequelize } = require('./models')
  3. const { QueryTypes } = require('sequelize')
  4. const app = express()
  5. const port = 3000
  6. app.use(express.json())
  7. app.get('/api/menu-item', async (req, res) => {
  8. try {
  9. res.json(await sequelize.query(`
  10. SELECT *
  11. FROM MenuItem
  12. `, {
  13. logging: false,
  14. type: QueryTypes.SELECT
  15. }))
  16. } catch (error) {
  17. console.error(error)
  18. } finally {
  19. res.end()
  20. }
  21. })
  22. app.post('/api/cart', async (req, res) => {
  23. try {
  24. await sequelize.query(`
  25. INSERT INTO Cart (menuItemId, quantity)
  26. VALUES (:menuItemId, :quantity)
  27. `,{
  28. logging: false,
  29. type: QueryTypes.INSERT,
  30. replacements: {
  31. menuItemId: req.body.menuItemId,
  32. quantity: req.body.quantity
  33. }
  34. })
  35. } catch (error) {
  36. console.warn('ошибка при добавлении блюда в корзину:', error.message)
  37. res.status(500).send(error.message)
  38. } finally {
  39. res.end()
  40. }
  41. })
  42. app.patch('/api/cart/:id', async (req, res) => {
  43. try {
  44. await sequelize.query(`
  45. UPDATE Cart
  46. SET quantity=:quantity
  47. WHERE id=:id
  48. `,{
  49. logging: false,
  50. replacements: {
  51. id: req.params.id,
  52. quantity: req.body.quantity
  53. }
  54. })
  55. } catch (error) {
  56. console.warn('ошибка при редактировании корзины:', error.message)
  57. res.status(500).send(error.message)
  58. } finally {
  59. res.end()
  60. }
  61. })
  62. app.delete('/api/cart/:id', async (req, res) => {
  63. try {
  64. await sequelize.query(`
  65. DELETE
  66. FROM Cart
  67. WHERE id=:id
  68. `,{
  69. logging: false,
  70. replacements: {
  71. id: req.params.id
  72. }
  73. })
  74. } catch (error) {
  75. console.warn('ошибка при удалении блюда из корзины:', error.message)
  76. res.status(500).send(error.message)
  77. } finally {
  78. res.end()
  79. }
  80. })
  81. app.listen(port, () => {
  82. console.log(`Example app listening on port ${port}`)
  83. })