Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. const express = require('express');
  2. const app = express();
  3. const path = require('path');
  4. const parser = require('body-parser');
  5. const faker = require('faker');
  6. const sqlite3 = require('sqlite3').verbose();
  7. const dbPath = path.resolve(__dirname, '../db/comments.db')
  8.  
  9. const db = new sqlite3.Database(dbPath, (err) => {
  10. if (err) {
  11. console.error(err.message);
  12. }
  13. });
  14.  
  15. app.use(parser.json());
  16. app.use('/:projId', express.static(path.join(__dirname, '/../client/dist')))
  17.  
  18. let port = 3011
  19. app.listen(port, () => {
  20. console.log(`app is listening on port ${port}`)
  21. })
  22.  
  23. app.get('/', (req, res) => {
  24. res.send('No project page specified. Please go to a specific page to view its comments')
  25. })
  26.  
  27. // retrieve comments
  28. app.get('/:projId/messages', (req, res) => {
  29. let projId = req.params.projId
  30. db.all(`SELECT * FROM messages WHERE proj_id = ${projId}`, (err, data) => {
  31. if (err) {
  32. console.log(err);
  33. res.sendStatus(404);
  34. } else {
  35. res.send(data);
  36. }
  37. })
  38. })
  39.  
  40. // retrieve most recent comment
  41. app.get('/:projId/newmessage', (req, res) => {
  42. db.get(`SELECT * FROM messages ORDER BY id DESC LIMIT 1;`, (err, data) => {
  43. if (err) {
  44. console.log(err);
  45. res.sendStatus(404);
  46. } else {
  47. res.send(data);
  48. }
  49. })
  50. })
  51.  
  52. //retrieve most recent reply
  53. app.get('/:projId/newreply', (req, res) => {
  54. db.get(`SELECT * FROM replies ORDER BY id DESC LIMIT 1;`, (err, data) => {
  55. if (err) {
  56. console.log(err);
  57. res.sendStatus(404);
  58. } else {
  59. res.send(data);
  60. }
  61. })
  62. })
  63.  
  64. //retrieve replies to comment
  65. app.get('/:projId/:messageId/replies', (req, res) => {
  66. let messageId = req.params.messageId;
  67. db.all(`SELECT * FROM replies WHERE reply_to = ${messageId}`, (err, data) => {
  68. if (err) {
  69. console.log(err);
  70. res.sendStatus(500);
  71. } else {
  72. res.send(data);
  73. }
  74. })
  75. })
  76.  
  77. // post new comment
  78. app.post('/:projId/messages', (req, res) => {
  79. let projId = req.params.projId
  80. let name = faker.name.findName();
  81. let date = new Date().toLocaleString();
  82. let avatar = faker.internet.avatar();
  83. let text = req.body.text;
  84. db.run(`INSERT INTO messages (username, posted_at, avatar_url, body, proj_id)
  85. VALUES (?, ?, ?, ?, ?)`, [name, date, avatar, text, projId], (err, data) => {
  86. if (err) {
  87. res.sendStatus(500)
  88. } else {
  89. res.sendStatus(200)
  90. }
  91. })
  92. })
  93.  
  94.  
  95. //post reply to comment
  96. app.post('/:projId/reply/:messageId', (req, res) => {
  97. let messageId = req.params.messageId
  98. let name = faker.name.findName();
  99. let date = new Date().toLocaleString();
  100. let avatar = faker.internet.avatar();
  101. let text = req.body.text;
  102.  
  103. db.run(`INSERT INTO replies (username, posted_at, avatar_url, body, reply_to)
  104. VALUES (?, ?, ?, ?, ?)`, [name, date, avatar, text, messageId], (err, data) => {
  105. if (err) {
  106. res.sendStatus(500)
  107. } else {
  108. res.sendStatus(200)
  109. }
  110. })
  111. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement