Skip to content

Commit

Permalink
Merge 04cc48d into 0723eb2
Browse files Browse the repository at this point in the history
  • Loading branch information
UhiriweAudace committed Aug 8, 2019
2 parents 0723eb2 + 04cc48d commit e43d768
Show file tree
Hide file tree
Showing 12 changed files with 230 additions and 348 deletions.
2 changes: 1 addition & 1 deletion Procfile
Original file line number Diff line number Diff line change
@@ -1 +1 @@
web: NODE_ENV=staging yarn start
web: NODE_ENV=staging yarn start
2 changes: 1 addition & 1 deletion src/api/controllers/articlesController.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class articlesController {
const allArticle = await articles.getAllArticle();

if (!allArticle[0]) {
return res.status(404).send({ error: 'Whoops! No Articles found!' });
return res.status(200).send({ message: 'Whoops! No Articles found!' });
}
res.status(200).send({
articles: allArticle
Expand Down
2 changes: 1 addition & 1 deletion src/api/controllers/auth.js
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ class AuthController {

return res.status(404).send({
status: 404,
data: { message: 'User with that email in not exist' }
data: { message: 'User with that email does not exist!' }
});
});
}
Expand Down
46 changes: 12 additions & 34 deletions src/api/controllers/socialLogin.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/* eslint-disable no-unused-vars */
import models from '../../sequelize/models';
import tokenGeneration from '../../helpers/Token.helper';

Expand All @@ -11,21 +12,14 @@ const userInfo = {
image: req.user.photos[0].value,
provider: req.user.provider,
verified: req.user.emails[0].verified,
socialId: req.user.id,
socialId: req.user.id
});
if (newUser) {
const {
dataValues: {
id, firstName, lastName, email, provider
}
dataValues: { username }
} = newUser;
const token = await tokenGeneration.generateToken(newUser.dataValues);
return res.status(200).json({
message: `Welcome to Authors Haven ${displayName} `,
data: {
token, id, firstName, lastName, email, provider
},
});
return res.redirect(`${process.env.APP_URL_FRONTEND}/?token=${token}&username=${username}`);
}
},
async facebookLogin(req, res) {
Expand All @@ -38,27 +32,18 @@ const userInfo = {
image: req.user.photos[0].value,
provider: req.user.provider,
verified: true,
socialId: req.user.id,
socialId: req.user.id
});
if (newUser) {
const {
dataValues: {
id, firstName, lastName, email, provider
}
dataValues: { username }
} = newUser;
const token = await tokenGeneration.generateToken(newUser.dataValues);
return res.status(200).json({
message: `Welcome to Authors Haven ${displayName} `,
data: {
token, id, firstName, lastName, email, provider
},
});
return res.redirect(`${process.env.APP_URL_FRONTEND}/?token=${token}&username=${username}`);
}
},
async twitterLogin(req, res) {
const {
displayName
} = req.user;
const { displayName } = req.user;
const names = displayName.split(' ');
const newUser = await models.User.create({
firstName: names[0],
Expand All @@ -67,22 +52,15 @@ const userInfo = {
image: req.user.photos[0].value,
provider: req.user.provider,
verified: true,
socialId: req.user.id,
socialId: req.user.id
});
if (newUser) {
const {
dataValues: {
id, firstName, lastName, email, provider
}
dataValues: { username }
} = newUser;
const token = await tokenGeneration.generateToken(newUser.dataValues);
return res.status(200).json({
message: `Welcome to Authors Haven ${displayName} `,
data: {
token, id, firstName, lastName, email, provider
},
});
return res.redirect(`${process.env.APP_URL_FRONTEND}/api/auth/twitter/?token=${token}&username=${username}`);
}
},
}
};
export default userInfo;
48 changes: 26 additions & 22 deletions src/config/passportSetup.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,32 @@ import dotenv from 'dotenv';

dotenv.config();

passport.use(new GoogleStrategy(
{
clientID: process.env.GOOGLE_ID,
clientSecret: process.env.GOOGLE_SECRET,
includeEmail: true,
callbackURL: '/api/auth/login/google/redirect'
},
(accessToken, refreshToken, profile, done) => {
done(null, profile);
}
));
passport.use(new FacebookStrategy(
{
clientID: process.env.FCBK_ID,
clientSecret: process.env.FCBK_APP_SECRET,
callbackURL: '/api/auth/login/facebook/redirect',
profileFields: ['id', 'displayName', 'photos', 'email']
},
(accessToken, refreshToken, profile, done) => {
done(null, profile);
}
));
passport.use(
new GoogleStrategy(
{
clientID: process.env.GOOGLE_ID,
clientSecret: process.env.GOOGLE_SECRET,
includeEmail: true,
callbackURL: `${process.env.BASE_URL}/api/auth/login/google/redirect`
},
(accessToken, refreshToken, profile, done) => {
done(null, profile);
}
)
);
passport.use(
new FacebookStrategy(
{
clientID: process.env.FCBK_ID,
clientSecret: process.env.FCBK_APP_SECRET,
callbackURL: `${process.env.BASE_URL}/api/auth/login/facebook/redirect`,
profileFields: ['id', 'displayName', 'photos', 'email']
},
(accessToken, refreshToken, profile, done) => {
done(null, profile);
}
)
);
passport.use(
new TwitterTokenStrategy(
{
Expand Down
2 changes: 1 addition & 1 deletion src/helpers/emailVerifyTemplate.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class Template {
Well ${names}, congratulations for choosing AuthorsHaven.
To verify that ${to} is your email, could you please click this link below to verify your AuthorsHaven's account?
<br/>
<a href="${process.env.BASE_URL}/api/auth/verify/?token=${token}">Click here to verify your account</a>
<a href="${process.env.APP_URL_FRONTEND}/verify/${token}">Click here to verify your account</a>
<br/>
Here there is the link below where you can visit Andela and get more information about what's Andela
Expand Down
7 changes: 7 additions & 0 deletions src/middleware/globalMiddleware.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ export default (app) => {
.use(bodyParser.urlencoded({ extended: true }))
// Allow cross origin requests
.use(cors());
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, OPTIONS, POST, PUT, PATCH, DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type, token');
res.header('Access-Control-Allow-Credentials', true);
return next();
});
if (process.env.NODE_ENV !== 'test') {
app.use(morgan('dev'));
}
Expand Down
32 changes: 5 additions & 27 deletions src/middleware/socialAccountExists.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import tokenGeneration from '../helpers/Token.helper';

const userExists = {
async google(req, res, next) {
const { emails, displayName } = req.user;
const { emails } = req.user;
const currentUser = await models.User.findAll({
where: {
email: emails[0].value,
Expand All @@ -12,25 +12,13 @@ const userExists = {
if (currentUser.length > 0) {
const token = await tokenGeneration.generateToken(currentUser[0].dataValues);
const {
id, firstName, lastName, email, socialId, provider
username
} = currentUser[0].dataValues;
return res.status(200).json({
message: `Welcome to Authors Haven ${displayName} `,
data: {
token,
id,
firstName,
lastName,
email,
socialId,
provider
},
});
return res.redirect(`${process.env.APP_URL_FRONTEND}/?token=${token}&username=${username}`);
}
next();
},
async twitter(req, res, next) {
const { displayName } = req.user;
const currentUser = await models.User.findAll({
where: {
socialId: req.user.id,
Expand All @@ -39,19 +27,9 @@ const userExists = {
if (currentUser.length > 0) {
const token = await tokenGeneration.generateToken(currentUser[0].dataValues);
const {
id, firstName, lastName, socialId, provider
username
} = currentUser[0].dataValues;
return res.status(200).json({
message: `Welcome to Authors Haven ${displayName} `,
data: {
token,
id,
firstName,
lastName,
socialId,
provider,
},
});
return res.redirect(`${process.env.APP_URL_FRONTEND}/?token=${token}&username=${username}`);
}
next();
},
Expand Down
2 changes: 1 addition & 1 deletion src/middleware/validateBody.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ const validateBody = schema => (req, res, next) => {
});
return res.status(400).send({
status: 400,
data: { message: allErrors },
message: allErrors[0]
});
}
}
Expand Down
Loading

0 comments on commit e43d768

Please sign in to comment.