const express = require("express"); const router = express.Router(); const jwt = require("jsonwebtoken"); const posts = require("./posts"); const auth = require("./auth"); const accounts = require("./accounts"); const files = require("./files"); const stats = require('./stats'); // Authentication middleware **** function authMiddleware(req, res, next) { // return next(); const token = req.header("x-access-token"); if (!token) { // Ya gotta pass a token res.status(401).json({ error: "Please pass a token" }); } else { return jwt.verify(token, process.env.SECRET_KEY, (err, decoded) => { // mc.get('user', function (err, val) { // if (err != null) { // console.log('Error getting value: ' + err) // } // else if (val.toString('utf8') == decoded.email) { // console.log("Verified"); // } // else { // console.log(val.toString('utf8')) // } // }) if (err) { res.status(403).json({ error: "The token is incorrect" }); } else { req.user = decoded; next(); } }) } } // What will be returned when you require this path module.exports = function (db, mc) { // Serve file routes router.use("/files", files(db, authMiddleware)); // Serve post api content router.use("/posts", posts(db, authMiddleware)); // Serve authorized login content router.use("/auth", auth(db)); // Individual accounts router.use("/accounts", accounts(db, authMiddleware)); // Stats api router.use("/stats", stats(db, mc, authMiddleware)); return router; };