Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require('express');
- const Joi = require('joi');
- const app = express();
- const courses = [
- {id: 1, name: `course1`},
- {id: 2, name: `course2`},
- {id: 3, name: `course3`},
- ];
- app.use(express.json());
- // hello world
- app.get(`/`, (req, res) => {
- res.send(`Hello World`);
- });
- // get all courses
- app.get(`/api/courses`, (req, res) => {
- res.send(courses);
- });
- // get course by id
- app.get(`/api/courses/:id`, (req, res) => {
- const course = courses.find((course) => course.id === parseInt(req.params.id));
- if (!course) {
- res.status(404).send(`The course with ID ${req.params.id} not found!`)
- } else {
- res.send(course);
- }
- });
- // create course
- app.post(`/api/courses`, (req, res) => {
- const schema = {
- name: Joi.string().min(3).required()
- };
- const result = Joi.validate(req.body, schema);
- if (result.error) {
- res.status(400).send(result.error.details[0].message);
- return;
- }
- const course = {
- id: courses.length + 1,
- name: req.body.name
- };
- courses.push(course);
- res.send(course);
- });
- // update course
- app.put(`/api/courses/:id`, (req, res) => {
- const requestId = parseInt(req.params.id);
- const course = courses.find((course) => course.id === requestId);
- if (!course) {
- res.status(404).send(`no course with id: ${requestId}`);
- return;
- }
- const schema = {
- name: Joi.string().min(3).required()
- };
- const result = Joi.validate(req.body, schema);
- if (result.error) {
- res.status(400).send(result.error.details[0].message);
- return;
- }
- const arrayId = courses.findIndex((course) => course.id === requestId);
- const newCourse = {
- ...courses[arrayId],
- name: req.body.name
- };
- courses[arrayId] = newCourse;
- res.send(newCourse);
- });
- // delete course
- app.delete(`/api/courses/:id`, (req, res) => {
- const requestId = parseInt(req.params.id);
- const course = courses.find((course) => course.id === requestId);
- if (!course) {
- res.status(404).send(`no course with id: ${requestId}`);
- return;
- }
- const arrayId = courses.findIndex((course) => course.id === requestId);
- const deletedCourse = courses.splice(arrayId, 1);
- res.send(deletedCourse[0]);
- });
- app.listen(3000, () => console.log(`Listening on port 3000...`));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement