Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const flash = require('connect-flash');
const session = require('express-session');
const expressOasGenerator = require('express-oas-generator');
const path = require('path');
const passport = require('passport');

const database = require('./config/key').MongoURI;
var indexRoute = require('./routes/index');
Expand Down Expand Up @@ -36,6 +37,9 @@ app.use(express.static(path.join(__dirname, 'public')));
app.use(flash());
app.use(session({ secret: 'dragonbeast4theTrophy', saveUninitialized: false, resave: false }));

// require passport
app.use(passport.initialize());
app.use(passport.session());
// generate api docs (Swagger)
// expressOasGenerator.init(app, function(spec) {
// _.set(spec, 'info.title', 'New Title');
Expand Down
32 changes: 32 additions & 0 deletions config/passport.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
const mongoose = require('mongoose');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const User = mongoose.model('User');

// to serialize the user
passport.serializeUser(function(user, done) {
done(null, user.id);
});

// to deserialize the user
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});

passport.use(new LocalStrategy(
function(useremail, password, done) {
User.findOne({ useremail: useremail }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect email.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));

1 change: 1 addition & 0 deletions controllers/promises.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const classes = require("../models/classes");
const fees = require("../models/fees");
const schools = require("../models/schools");
const students = require('../models/student');
//const user = require('../models/user');
/**
* @param {string} text
* @returns {object} return all
Expand Down
39 changes: 39 additions & 0 deletions controllers/user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
const userDb = require("./userPromise");

const User = {

async createUser(req, res) {
const { errors, isValid } = validateUserQueryText(/*@*/);
if (!isValid) {
return res.status(400).json(errors);
}
const queryText = {}
try {
const createdUser = await db.create(queryText);
return res.status(201).json(createdUser);
} catch (error) {
return res.status(400).send(error);
}
},
async get_user(req, res) {
const queryText = {};
try {
const foundUser = await db.find(queryText);
return res.status(200).render('user', { user: foundUser });
} catch (error) {
return res.status(400).send(error);
}

},
async delete_user(req, res){
const queryText = {};
try {
const deletedUser = await userDb.findOneAndUpdate(queryText, updateText);
return res.status(200).json(deletedUser);
}catch(error){
return res.status(400).send(error);
}
}
}

module.exports = User;
23 changes: 23 additions & 0 deletions models/user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const userSchema = new Schema(
{
username: {
type: String,
required: true,
unique: true
},
useremail: {
type: String,
required: true,
unique: true
},
password: {
type: String,
required: true
}
}
);

module.exports = mongoose.model("User", userSchema);
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
"lodash": "^4.17.11",
"mongoose": "^5.5.2",
"morgan": "^1.9.1",
"passport": "^0.4.0",
"passport-local": "^1.0.0",
"validator": "^10.11.0"
}
}