Upload 4.23

This commit is contained in:
Andrew Trieu
2023-06-10 15:11:13 +03:00
parent 4b88f3958f
commit a9b6ade2f4
18 changed files with 740 additions and 39 deletions

View File

@@ -2,20 +2,25 @@ const blogsRouter = require('express').Router()
const Blog = require('../models/blog')
blogsRouter.get('/', async (request, response) => {
const blogs = await Blog.find({})
const blogs = await Blog.find({}).populate('user', { username: 1, name: 1 })
response.json(blogs)
})
blogsRouter.post('/', async (request, response) => {
const body = request.body
const user = request.user
if (!user) return response.status(401).json({ error: 'token invalid' })
const blog = await (new Blog({
title: body.title,
author: body.author,
url: body.url,
likes: body.likes || 0
likes: body.likes || 0,
user: user._id
})).save()
user.blogs = user.blogs.concat(blog._id)
await user.save()
response.status(201).json(blog)
})
@@ -27,6 +32,12 @@ blogsRouter.get('/:id', async (request, response) => {
})
blogsRouter.delete('/:id', async (request, response) => {
const user = request.user
const blog = await Blog.findById(request.params.id)
if (!blog) return response.status(404).end()
if (blog.user.toString() !== user._id.toString()) {
return response.status(401).json({ error: 'token invalid' })
}
await Blog.findByIdAndRemove(request.params.id)
response.status(204).end()
})