This repository has been archived on 2025-12-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
fullstack-open/part4/bloglist/controllers/blogs.js
Andrew Trieu 4b88f3958f Upload 4.14
2023-05-31 21:27:58 +03:00

47 lines
1.1 KiB
JavaScript

const blogsRouter = require('express').Router()
const Blog = require('../models/blog')
blogsRouter.get('/', async (request, response) => {
const blogs = await Blog.find({})
response.json(blogs)
})
blogsRouter.post('/', async (request, response) => {
const body = request.body
const blog = await (new Blog({
title: body.title,
author: body.author,
url: body.url,
likes: body.likes || 0
})).save()
response.status(201).json(blog)
})
blogsRouter.get('/:id', async (request, response) => {
const blog = await Blog.findById(request.params.id)
if (blog) response.json(blog)
else response.status(404).end()
})
blogsRouter.delete('/:id', async (request, response) => {
await Blog.findByIdAndRemove(request.params.id)
response.status(204).end()
})
blogsRouter.put('/:id', async (request, response) => {
const body = request.body
const blog = await Blog.findByIdAndUpdate(request.params.id, {
title: body.title,
author: body.author,
url: body.url,
likes: body.likes
}, { new: true })
response.status(200).json(blog)
})
module.exports = blogsRouter