Skip to content

Commit

Permalink
fix merge conflics
Browse files Browse the repository at this point in the history
  • Loading branch information
LawEKS committed May 14, 2018
2 parents 7bf747c + 882abf6 commit 4ac3b1c
Show file tree
Hide file tree
Showing 26 changed files with 436 additions and 116 deletions.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"test": "NODE_ENV=test nyc tape src/test/*.test.js | tap-spec",
"test:app": "NODE_ENV=test nodemon src/test/app.test.js | tap-spec",
"test:db": "NODE_ENV=test nodemon src/test/db.test.js | tap-spec",
"test:unit": "NODE_ENV=test nodemon src/test/unit.test.js | tap-spec",
"test:coverage": "NODE_ENV=test nyc --reporter=lcov --reporter=text-lcov tape src/test/*.test.js | tap-spec && open -a \"Google Chrome\" ./coverage/lcov-report/index.html",
"build": "node src/model/database/db_build.js",
"lint": "./node_modules/.bin/eslint **/*.js --ignore-pattern node_modules/"
Expand Down Expand Up @@ -49,4 +50,4 @@
"passport-github2": "^0.1.11",
"pg-promise": "^8.4.3"
}
}
}
30 changes: 29 additions & 1 deletion public/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,32 @@

.nav-avatar {
max-width: 5rem;
}
}

/* MODAL FUNCTIONALITY */

.modal {
display: none;
/* Hidden by default */
position: fixed;
/* Stay in place */
z-index: 1;
/* Sit on top */
padding-top: 10%;
/* Location of the box */
left: 0;
top: 0;
width: 100%;
/* Full width */
height: 100%;
/* Full height */
overflow: auto;
/* Enable scroll if needed */
background-color: rgb(0, 0, 0);
/* Fallback color */
background-color: rgba(0, 0, 0, 0.4);
/* Black w/ opacity */
}
.modal-background {
background-color: aquamarine
}
41 changes: 41 additions & 0 deletions public/dom/profile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/* eslint no-var: 0 */
/* eslint prefer-arrow-callback: 0 */
/* eslint func-names: 0 */
/* eslint wrap-iife: 0 */

// modal functionality courtesy of team pett-y - https://github.com/fac-13/pett-y

var openDetailsBtn = document.getElementById('open-modal-details');
var modalDetails = document.getElementById('modal-details');
var openJobsBtn = document.getElementById('open-modal-job');
var modalJob = document.getElementById('modal-job');


function closeModal() {
modalDetails.style.display = 'none';
modalJob.style.display = 'none';
}

function openModal(modalName) {
modalName.style.display = 'block';
// document.getElementById('close-modal').addEventListener('click', closeModal);
window.addEventListener('keydown', (event) => {
if (event.key == 'Escape') closeModal(modalDetails);
});
}

openDetailsBtn.addEventListener('click', () => { openModal(modalDetails); });
openJobsBtn.addEventListener('click', () => { openModal(modalJob); });

// document.getElementById('open-modal').addEventListener('keydown', (event) => {
// if (event.key == 'Enter') openModal();
// });

// Modal does not close on click!!
// window.addEventListener('click', (event) => {
// console.log(event.target);
// console.log('clicking');
// if (event.target !== document.getElementsByClassName('modal')) {
// closeModal();
// }
// });
4 changes: 4 additions & 0 deletions src/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ require('dotenv').config();
// import route controllers
const controllers = require('./controllers/index');

// import helpers
const helpers = require('./views/helpers/index');

// github oauth 2.0 passport setup
require('./oauth');

Expand All @@ -26,6 +29,7 @@ app.engine(
layoutsDir: path.join(__dirname, 'views', 'layouts'),
partialsDir: path.join(__dirname, 'views', 'partials'),
defaultLayout: 'main',
helpers,
}),
);

Expand Down
23 changes: 0 additions & 23 deletions src/controllers/auth.js

This file was deleted.

1 change: 1 addition & 0 deletions src/controllers/error.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ exports.client = (req, res) => {
};

exports.server = (err, req, res, next) => {
console.log(err.message);
res.status(500).render('error', {
statusCode: 500,
errorMessage: 'Internal Server Error',
Expand Down
7 changes: 4 additions & 3 deletions src/controllers/home.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
const { addUserStatus } = require('./middleware');
exports.get = (req, res) => {
let user;
if (req.session.isPopulated) {
res.render('home', { activePage: { home: true }, loggedIn: true });
} else {
res.render('home', { activePage: { home: true } });
user = addUserStatus(req);
}
res.render('home', { activePage: { home: true }, user });
};
19 changes: 9 additions & 10 deletions src/controllers/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ const passport = require('passport');

// import routes
const home = require('./home');
const profileDetails = require('./profileDetails');
const saveProfileDetails = require('./saveProfileDetails');
const profile = require('./profile');
const error = require('./error');
const { updateUserSession, protectedRoute } = require('./middleware');
const { ensureAuthenticated } = require('./middleware');

// UNPROTECTED ROUTES //
router.get('/', home.get);
Expand All @@ -15,13 +14,13 @@ router.get('/notmember', (req, res) => {
});

// PROTECTED ROUTES //
router.get('/myprofile', updateUserSession, protectedRoute, (req, res) => {
res.send('profile');
router.get('/myprofile/:github_id', ensureAuthenticated, profile.get);
router.post('/saveDetails', ensureAuthenticated, (req, res) => {
// post user data (req.body) to database
console.log('form data: ', req.body);
res.redirect('/myprofile/:github_id');
});

router.post('/saveDetails', saveProfileDetails.post);
router.get('/myprofile/:github_id/mydetails/edit', updateUserSession, protectedRoute, profileDetails.get);

// AUTHENTICATION ROUTES //
router.get(
'/auth/github/signup',
Expand All @@ -42,10 +41,10 @@ router.get(
return res.redirect('/notmember');
} else if (info.message === 'Login successful') {
req.session.registeredProfile = true;
return res.redirect(`/myprofile/${req.user.github_id}/mydetails/edit`);
return res.redirect(`/myprofile/${req.user.github_id}`);
} else if (info.message === 'Signup successful') {
req.session.registeredProfile = false;
return res.redirect(`/myprofile/${req.user.github_id}/mydetails/edit`);
return res.redirect(`/myprofile/${req.user.github_id}`);
}
});
})(req, res, next);
Expand Down
49 changes: 19 additions & 30 deletions src/controllers/middleware.js
Original file line number Diff line number Diff line change
@@ -1,36 +1,25 @@
// MIDDLEWARE to ensure user is authenticated
exports.updateUserSession = (req, res, next) => {
let userInfo;
exports.ensureAuthenticated = (req, res, next) => {
if (req.isAuthenticated()) {
userInfo = req.user;
if (req.session.registeredProfile) {
userInfo.session = {
login: true,
signup: false,
};
return next(null, userInfo);
}
userInfo.session = {
login: false,
signup: true,
};
return next(null, userInfo);
return next();
}

userInfo = {
session: {
login: false,
signup: false,
},
};
req.user = userInfo;
return next();
res.redirect('/');
};
// denied - should redirect to login;

exports.protectedRoute = (req, res, next) => {
if (!req.user.session.login && !req.user.session.signup) {
return res.send('please login');
// Updates user object to include user session
exports.addUserStatus = (req) => {
// Deep copy of req.user
let userInfo = JSON.parse(JSON.stringify((req.user)));
if (req.session.registeredProfile) {
userInfo.status = {
login: true,
signup: false,
};
} else {
userInfo.status = {
login: false,
signup: true,
};
}
return next(null, req.user);
};
return userInfo;
};
5 changes: 5 additions & 0 deletions src/controllers/profile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const { addUserStatus } = require('./middleware');
exports.get = (req, res) => {
let user = addUserStatus(req);
res.render('profile', { activePage: { profile: true }, user });
};
4 changes: 0 additions & 4 deletions src/controllers/profileDetails.js

This file was deleted.

1 change: 0 additions & 1 deletion src/model/database/db_build.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,4 @@ const dbBuild = sql('./db_build.sql');

db
.query(dbBuild)
.then((res) => {})
.catch(err => console.error('error', err));
13 changes: 5 additions & 8 deletions src/oauth.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,13 @@ const getMemberData = require('./model/queries/getMemberData.js');

//ensures member of F&C github org to allow sign up
function checkOrgMembership(accessToken) {
return request.get(`https://api.github.com/user/orgs?access_token=${accessToken}`).then((res) => {
if(res.data.some((org) => org.login === 'foundersandcoders')) {
return true
} else {
return false
}
})
.catch(error => { throw new Error(error.message) });
return request.get(`https://api.github.com/user/orgs?access_token=${accessToken}`).then((orgMembership) => {
return (orgMembership.data.some((org) => org.login === 'foundersandcoders'))
})
.catch(error => { throw new Error(error.message) });
}


passport.use(new Strategy(
{
clientID: process.env.GITHUB_CLIENT_ID,
Expand Down
Loading

0 comments on commit 4ac3b1c

Please sign in to comment.