renamed
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
require("dotenv").config();
|
||||
|
||||
const MONGODB_URI =
|
||||
process.env.NODE_ENV === "test"
|
||||
? process.env.TEST_MONGODB_URI
|
||||
: process.env.MONGODB_URI;
|
||||
|
||||
module.exports = {
|
||||
SECRET:process.env.SECRET,
|
||||
MONGODB_URI,
|
||||
PORT: process.env.PORT,
|
||||
};
|
||||
@@ -0,0 +1,30 @@
|
||||
const dummy = (blogs) => {
|
||||
return 1;
|
||||
};
|
||||
const totalLikes = (blogs) => {
|
||||
return blogs.reduce((acc, cur) => acc + cur.likes, 0);
|
||||
};
|
||||
const favoriteBlog = (blogs) => {
|
||||
let result = blogs.sort((a, b) => a.score - b.score);
|
||||
return result[0].likes;
|
||||
};
|
||||
|
||||
const mostLikes = (blogs) => {
|
||||
let authors = new Map();
|
||||
blogs.forEach((el) => {
|
||||
if (authors.has(el.author))
|
||||
authors.set(el.author, authors.get(el.author) + el.likes);
|
||||
else authors.set(el.author, el.likes);
|
||||
});
|
||||
return Math.max(...authors.values())
|
||||
};
|
||||
const mostBlogs = (blogs) => {
|
||||
let authors = new Map();
|
||||
blogs.forEach((el) => {
|
||||
if (authors.has(el.author))
|
||||
authors.set(el.author, authors.get(el.author) + 1);
|
||||
else authors.set(el.author, 1);
|
||||
});
|
||||
return Math.max(...authors.values())
|
||||
};
|
||||
module.exports = { dummy, mostLikes, mostBlogs, totalLikes, favoriteBlog };
|
||||
@@ -0,0 +1,12 @@
|
||||
const info = (...params) => {
|
||||
console.log(...params);
|
||||
};
|
||||
|
||||
const error = (...params) => {
|
||||
console.error(...params);
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
info,
|
||||
error,
|
||||
};
|
||||
@@ -0,0 +1,22 @@
|
||||
const User = require("../models/user");
|
||||
const jwt = require("jsonwebtoken");
|
||||
const config = require("./config");
|
||||
|
||||
const tokenExtractor = (req, res, next) => {
|
||||
const authorization = req.get("authorization");
|
||||
if (authorization && authorization.startsWith("Bearer "))
|
||||
req.token = authorization.replace("Bearer ", "");
|
||||
next();
|
||||
};
|
||||
|
||||
const userExtractor = async (req, res, next) => {
|
||||
const decodedToken = jwt.verify(req.token, config.SECRET);
|
||||
|
||||
if (!decodedToken.id) return res.status(401).json({ error: "invalid token" });
|
||||
|
||||
const user = await User.findById(decodedToken.id);
|
||||
console.log('user from the middleware',user)
|
||||
req.user = user;
|
||||
next();
|
||||
};
|
||||
module.exports = { tokenExtractor, userExtractor };
|
||||
Reference in New Issue
Block a user