Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2022
1,006
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const Joi = require('joi'); // Put required modules at the top
  2. const express = require('express');
  3. const app = express();
  4.  
  5.  
  6. const courses = [
  7.     { id: 1, name: 'course1' },
  8.     { id: 2, name: 'course2' },
  9.     { id: 3, name: 'course3' },
  10. ];
  11.  
  12. app.get('/', (req, res) => {
  13.     res.json({msg: 'Hello world!!!'});
  14. });
  15.  
  16. app.get('/api/courses', (req, res) => {
  17.     res.send(courses);
  18. });
  19.  
  20. app.post('/api/courses', (req, res) => {    
  21.     const { error } = validateCourse(req.body);
  22.     if (error) return res.status(400).send(results.error.details[0].message);
  23.  
  24.     const course = {
  25.         id: courses.length + 1,
  26.         name: req.body.name
  27.     };
  28.  
  29.     courses.push(course);
  30.     res.send(course);   // assigning the id on the server. return course to client
  31. });
  32.  
  33. app.get('/api/courses/:id', (req, res) => {
  34.     const course = courses.find(c => c.id === parseInt(req.params.id))
  35.     if (!course) return res.status(404).send('The course with the given ID was not found');
  36.  
  37.     res.send(course);
  38. });
  39.  
  40. app.put('/api/courses/:id', (req, res) => {
  41.     const course = courses.find(c => c.id === parseInt(req.params.id))
  42.     if (!course) return res.status(404).send('The course with the given ID was not found');
  43.    
  44.     const { error } = validateCourse(req.body);
  45.     if (error) return res.status(400).send(results.error.details[0].message);
  46.  
  47.     course.name = req.body.name;
  48.     res.send(course);
  49. });
  50.  
  51. app.delete('/api/courses/:id', (req, res) => {
  52.     const course = courses.find(c => c.id === parseInt(req.params.id))
  53.     if (!course) return res.status(404).send('The course with the given ID was not found');
  54.    
  55.     const index = courses.indexOf(course);
  56.     courses.splice(index, 1);
  57.  
  58.     res.send(course);
  59. })
  60.  
  61. function validateCourse(course) {
  62.     const schema = {
  63.         name: Joi.string().min(3).required()
  64.     };
  65.  
  66.     return Joi.ValidationError(course, schema);  
  67. }
  68.  
  69. // PORT
  70. const port = 3000;
  71. app.listen(port, () => console.log(`listening on port ${port}...`));
  72.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement