Skip to content
Snippets Groups Projects
routes.js 1.93 KiB
Newer Older
  • Learn to ignore specific revisions
  • Ludvig Damberg's avatar
    Ludvig Damberg committed
    const {Router} = require('express')
    const bcrypt = require("bcrypt")
    const userModel = require('../models/user')
    const postModel = require('../models/UploadModel')
    const uploadMiddleware = require('../middlewares/MulterMiddleware')
    const multer = require('multer')
    const generateToken = require('../utils/generateToken')
    const asyncHandler = require('express-async-handler')
    const router = Router()
    
    
    
    //Log in
    router.post('/login',async (req,res) => {
      
        const {email, password} = req.body
    
        const user = await userModel.findOne({email})
    
        if(user && (await user.matchPassword(password))){
            res.json({
                _id: user._id,
                email:user.email,
                username:user.username,
                password:user.password,
                token: generateToken(user._id)
            })
            console.log("Successfully logged in")
        }
        else{
           console.log("wrong Credentials")
        }
    })
    
    
    
    //Create post
    router.post("/post", uploadMiddleware.single("photo"), (req,res) => {
    
        const photo = req.file.filename
    
        const post = new postModel({name:req.body.name,description: req.body.description, photo: photo})
        post.save()
        .then(console.log("Saved successfully"))
    
    })
    
    
    
    //Get posts
    router.get('/posts', async (req,res) => {
    
        const posts = await postModel.find()
        res.send(posts) 
    })
    
    
    //Register
    router.post("/register", asyncHandler(async (req,res) => {
        
       const {email,username,password} = req.body
    
        const userExists = await userModel.findOne({email})
    
        if(userExists){
            res.status(404)
            throw new Error("User Already exists")
        }
    
        const user =  new userModel({
            email,
            username,
            password
        })
    
        if(user){
            res.json({
                _id: user._id,
                email:user.email,
                username:user.username,
                password:user.password,
            })
            await user.save()
        }else{
          console.log("error occured!")
        }
    }))
    
    module.exports = router