This commit is contained in:
@@ -1,8 +1,149 @@
|
||||
// const errors = require('restify-errors');
|
||||
// // const errors = require('restify-errors');
|
||||
|
||||
// const config = require('../config');
|
||||
// // const config = require('../config');
|
||||
|
||||
// const handlePassportResponse = (req, res, next) => (err, user, info) => {
|
||||
// // const handlePassportResponse = (req, res, next) => (err, user, info) => {
|
||||
// // if (err) {
|
||||
// // return next(err);
|
||||
// // }
|
||||
|
||||
// // const isVerifiedUser = user &&
|
||||
// // user.isRegistrationVerified();
|
||||
|
||||
// // if (user && isVerifiedUser) {
|
||||
// // return res.send({ ...user.toAuthJSON() });
|
||||
// // } else if (user && !isVerifiedUser){
|
||||
// // return res.send({
|
||||
// // registrationSuccess: true,
|
||||
// // nextSteps: 'Check your email for our confirmation email, you will not be able to login without confirming.'
|
||||
// // });
|
||||
// // }
|
||||
|
||||
// // return res.send(400, info);
|
||||
// // };
|
||||
|
||||
// // module.exports = function (server, auth) {
|
||||
// // const { passport } = auth;
|
||||
|
||||
// // /* Local Auth */
|
||||
// // server.post('/auth', (req, res, next) => {
|
||||
// // const { body: { username = null, password = null } = {} } = req;
|
||||
|
||||
// // if (!username || !password) {
|
||||
// // let errors = {};
|
||||
|
||||
// // if (!username) {
|
||||
// // errors.username = 'is required';
|
||||
// // }
|
||||
|
||||
// // if (!password) {
|
||||
// // errors.password = 'is required';
|
||||
// // }
|
||||
|
||||
// // return res.send(422, { errors });
|
||||
// // }
|
||||
|
||||
// // const callback = handlePassportResponse(req, res, next);
|
||||
// // return passport.authenticate('local', { session: false }.then(callback)(req, res, next);
|
||||
// // });
|
||||
|
||||
// // /**
|
||||
// // * SERVICES
|
||||
// // */
|
||||
|
||||
// // /* Google */
|
||||
// // server.get(
|
||||
// // '/auth/google',
|
||||
// // passport.authenticate('google', { scope: 'profile email', session: false }),
|
||||
// // );
|
||||
|
||||
// // server.get(
|
||||
// // '/auth/google/callback',
|
||||
// // (req, res, next) => {
|
||||
// // const callback = handlePassportResponse(req, res, next);
|
||||
// // return passport.authenticate(
|
||||
// // 'google',
|
||||
// // { failureRedirect: '/login' },
|
||||
// // callback,
|
||||
// // )(req, res, next);
|
||||
// // },
|
||||
// // );
|
||||
|
||||
// // /* Facebook */
|
||||
// // server.get(
|
||||
// // '/auth/facebook/login',
|
||||
// // passport.authenticate('facebook', {
|
||||
// // scope: ['email', 'public_profile'],
|
||||
// // session: false,
|
||||
// // }),
|
||||
// // );
|
||||
|
||||
// // server.get(
|
||||
// // '/auth/facebook/loggedin',
|
||||
// // (req, res, next) => {
|
||||
// // const callback = handlePassportResponse(req, res, next);
|
||||
// // return passport.authenticate(
|
||||
// // 'facebook',
|
||||
// // { failureRedirect: '/login' },
|
||||
// // callback,
|
||||
// // )(req, res, next);
|
||||
// // }
|
||||
// // );
|
||||
|
||||
// // server.get(
|
||||
// // '/auth/facebook/link',
|
||||
// // auth.secure,
|
||||
// // (req, res, next) => {
|
||||
// // req.user.record.setLinkCheckBit((err, linkCheckBit) => {
|
||||
// // passport.authenticate('facebookLink', {
|
||||
// // scope: ['email', 'public_profile'],
|
||||
// // session: false,
|
||||
// // state: linkCheckbit,
|
||||
// // })(req, res, next);
|
||||
// // });
|
||||
// // },
|
||||
// // );
|
||||
// //
|
||||
// // server.get(
|
||||
// // '/auth/facebook/linked',
|
||||
// // (req, res, next) => {
|
||||
// // const linkCheckBit = req.query.state;
|
||||
// //
|
||||
// // return passport.authenticate(
|
||||
// // 'facebook',
|
||||
// // { failureRedirect: '/profile' },
|
||||
// // (err, profile) => {
|
||||
// // if (err) {
|
||||
// // return next(err);
|
||||
// // }
|
||||
// //
|
||||
// // User.linkFacebookProfile(linkCheckBit, profile, (err, user) => {
|
||||
// // if (err) {
|
||||
// // return next(err);
|
||||
// // }
|
||||
// //
|
||||
// // if (!user) {
|
||||
// // return next(err, false, 'Linking the account to Facebook was unsuccessful, please try again.');
|
||||
// // }
|
||||
// //
|
||||
// // res.send({
|
||||
// // success: true,
|
||||
// // info: 'Facerbook account successfully linked',
|
||||
// // });
|
||||
// // });
|
||||
// // },
|
||||
// // )(req, res, next);
|
||||
// // }
|
||||
// // );
|
||||
// };
|
||||
|
||||
// import Koa from 'koa';
|
||||
// import Router from 'koa-router';
|
||||
// import { StatusCodes } from 'http-status-codes';
|
||||
|
||||
// import Users from 'grow-db/lib/models/users';
|
||||
|
||||
// const handlePassportResponse = (ctx: Koa.Context) => (err, user, info) => {
|
||||
// if (err) {
|
||||
// return next(err);
|
||||
// }
|
||||
@@ -22,210 +163,65 @@
|
||||
// return res.send(400, info);
|
||||
// };
|
||||
|
||||
// module.exports = function (server, auth) {
|
||||
// const { passport } = auth;
|
||||
// const routerOpts: Router.IRouterOptions = {
|
||||
// prefix: '/auth',
|
||||
// };
|
||||
|
||||
// /* Local Auth */
|
||||
// server.post('/auth', (req, res, next) => {
|
||||
// const { body: { username = null, password = null } = {} } = req;
|
||||
// const router: Router = new Router(routerOpts);
|
||||
|
||||
// if (!username || !password) {
|
||||
// let errors = {};
|
||||
// router.get('/', async (ctx: Koa.Context) => {
|
||||
// const data = await Customers.find({}).exec();
|
||||
// ctx.body = { data };
|
||||
// });
|
||||
|
||||
// if (!username) {
|
||||
// errors.username = 'is required';
|
||||
// }
|
||||
// router.get('/:customer_id', async (ctx: Koa.Context) => {
|
||||
// const data = await Customers.findById(ctx.params.customer_id).populate('person').exec();
|
||||
// if (!data) {
|
||||
// ctx.throw(StatusCodes.NOT_FOUND);
|
||||
// }
|
||||
// ctx.body = { data };
|
||||
// });
|
||||
|
||||
// if (!password) {
|
||||
// errors.password = 'is required';
|
||||
// }
|
||||
// router.delete('/:customer_id', async (ctx: Koa.Context) => {
|
||||
// const data = await Customers.findByIdAndDelete(ctx.params.customer_id).exec();
|
||||
// if (!data) {
|
||||
// ctx.throw(StatusCodes.NOT_FOUND);
|
||||
// }
|
||||
// ctx.body = { success: true, data };
|
||||
// });
|
||||
|
||||
// return res.send(422, { errors });
|
||||
// router.post('/', async (ctx: Koa.Context) => {
|
||||
// const data = await Customers.create(ctx.body);
|
||||
// data.save();
|
||||
// ctx.body = { success: true, data };
|
||||
// });
|
||||
|
||||
// router.post('/', async (ctx: Koa.Context) => {
|
||||
// const { body: { username = null, password = null } = {} } = ctx;
|
||||
|
||||
// if (!username || !password) {
|
||||
// let errors = {};
|
||||
|
||||
// if (!username) {
|
||||
// errors.username = 'is required';
|
||||
// }
|
||||
|
||||
// const callback = handlePassportResponse(req, res, next);
|
||||
// return passport.authenticate('local', { session: false }.then(callback)(req, res, next);
|
||||
// });
|
||||
// if (!password) {
|
||||
// errors.password = 'is required';
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * SERVICES
|
||||
// */
|
||||
// ctx.status = StatusCodes.UNPROCESSABLE_ENTITY;
|
||||
// ctx.throw(422, { errors });
|
||||
// }
|
||||
|
||||
// /* Google */
|
||||
// server.get(
|
||||
// '/auth/google',
|
||||
// passport.authenticate('google', { scope: 'profile email', session: false }),
|
||||
// );
|
||||
// const callback = handlePassportResponse(req, res, next);
|
||||
// return passport.authenticate('local', { session: false }, callback)(req, res, next);
|
||||
// });
|
||||
|
||||
// server.get(
|
||||
// '/auth/google/callback',
|
||||
// (req, res, next) => {
|
||||
// const callback = handlePassportResponse(req, res, next);
|
||||
// return passport.authenticate(
|
||||
// 'google',
|
||||
// { failureRedirect: '/login' },
|
||||
// callback,
|
||||
// )(req, res, next);
|
||||
// },
|
||||
// );
|
||||
|
||||
// /* Facebook */
|
||||
// server.get(
|
||||
// '/auth/facebook/login',
|
||||
// passport.authenticate('facebook', {
|
||||
// scope: ['email', 'public_profile'],
|
||||
// session: false,
|
||||
// }),
|
||||
// );
|
||||
|
||||
// server.get(
|
||||
// '/auth/facebook/loggedin',
|
||||
// (req, res, next) => {
|
||||
// const callback = handlePassportResponse(req, res, next);
|
||||
// return passport.authenticate(
|
||||
// 'facebook',
|
||||
// { failureRedirect: '/login' },
|
||||
// callback,
|
||||
// )(req, res, next);
|
||||
// }
|
||||
// );
|
||||
|
||||
// server.get(
|
||||
// '/auth/facebook/link',
|
||||
// auth.secure,
|
||||
// (req, res, next) => {
|
||||
// req.user.record.setLinkCheckBit((err, linkCheckBit) => {
|
||||
// passport.authenticate('facebookLink', {
|
||||
// scope: ['email', 'public_profile'],
|
||||
// session: false,
|
||||
// state: linkCheckbit,
|
||||
// })(req, res, next);
|
||||
// });
|
||||
// },
|
||||
// );
|
||||
//
|
||||
// server.get(
|
||||
// '/auth/facebook/linked',
|
||||
// (req, res, next) => {
|
||||
// const linkCheckBit = req.query.state;
|
||||
//
|
||||
// return passport.authenticate(
|
||||
// 'facebook',
|
||||
// { failureRedirect: '/profile' },
|
||||
// (err, profile) => {
|
||||
// if (err) {
|
||||
// return next(err);
|
||||
// }
|
||||
//
|
||||
// User.linkFacebookProfile(linkCheckBit, profile, (err, user) => {
|
||||
// if (err) {
|
||||
// return next(err);
|
||||
// }
|
||||
//
|
||||
// if (!user) {
|
||||
// return next(err, false, 'Linking the account to Facebook was unsuccessful, please try again.');
|
||||
// }
|
||||
//
|
||||
// res.send({
|
||||
// success: true,
|
||||
// info: 'Facerbook account successfully linked',
|
||||
// });
|
||||
// });
|
||||
// },
|
||||
// )(req, res, next);
|
||||
// }
|
||||
// );
|
||||
};
|
||||
|
||||
import Koa from 'koa';
|
||||
import Router from 'koa-router';
|
||||
import { StatusCodes } from 'http-status-codes';
|
||||
|
||||
import Users from 'grow-db/lib/models/users';
|
||||
|
||||
const handlePassportResponse = (ctx: Koa.Context) => (err, user, info) => {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
const isVerifiedUser = user &&
|
||||
user.isRegistrationVerified();
|
||||
|
||||
if (user && isVerifiedUser) {
|
||||
return res.send({ ...user.toAuthJSON() });
|
||||
} else if (user && !isVerifiedUser){
|
||||
return res.send({
|
||||
registrationSuccess: true,
|
||||
nextSteps: 'Check your email for our confirmation email, you will not be able to login without confirming.'
|
||||
});
|
||||
}
|
||||
|
||||
return res.send(400, info);
|
||||
};
|
||||
|
||||
const routerOpts: Router.IRouterOptions = {
|
||||
prefix: '/auth',
|
||||
};
|
||||
|
||||
const router: Router = new Router(routerOpts);
|
||||
|
||||
router.get('/', async (ctx: Koa.Context) => {
|
||||
const data = await Customers.find({}).exec();
|
||||
ctx.body = { data };
|
||||
});
|
||||
|
||||
|
||||
router.get('/:customer_id', async (ctx: Koa.Context) => {
|
||||
const data = await Customers.findById(ctx.params.customer_id).populate('person').exec();
|
||||
if (!data) {
|
||||
ctx.throw(StatusCodes.NOT_FOUND);
|
||||
}
|
||||
ctx.body = { data };
|
||||
});
|
||||
|
||||
router.delete('/:customer_id', async (ctx: Koa.Context) => {
|
||||
const data = await Customers.findByIdAndDelete(ctx.params.customer_id).exec();
|
||||
if (!data) {
|
||||
ctx.throw(StatusCodes.NOT_FOUND);
|
||||
}
|
||||
ctx.body = { success: true, data };
|
||||
});
|
||||
|
||||
|
||||
router.post('/', async (ctx: Koa.Context) => {
|
||||
const data = await Customers.create(ctx.body);
|
||||
data.save();
|
||||
ctx.body = { success: true, data };
|
||||
});
|
||||
|
||||
|
||||
router.post('/', async (ctx: Koa.Context) => {
|
||||
const { body: { username = null, password = null } = {} } = ctx;
|
||||
|
||||
if (!username || !password) {
|
||||
let errors = {};
|
||||
|
||||
if (!username) {
|
||||
errors.username = 'is required';
|
||||
}
|
||||
|
||||
if (!password) {
|
||||
errors.password = 'is required';
|
||||
}
|
||||
|
||||
ctx.status = StatusCodes.UNPROCESSABLE_ENTITY;
|
||||
ctx.throw(422, { errors });
|
||||
}
|
||||
|
||||
const callback = handlePassportResponse(req, res, next);
|
||||
return passport.authenticate('local', { session: false }, callback)(req, res, next);
|
||||
});
|
||||
|
||||
|
||||
router.patch('/:customer_id', async (ctx: Koa.Context) => {
|
||||
const data = await Customers.findByIdAndUpdate(ctx.params.customer_id);
|
||||
if (!data) {
|
||||
ctx.throw(StatusCodes.NOT_FOUND);
|
||||
}
|
||||
ctx.body = { success: true, data };
|
||||
});
|
||||
// router.patch('/:customer_id', async (ctx: Koa.Context) => {
|
||||
// const data = await Customers.findByIdAndUpdate(ctx.params.customer_id);
|
||||
// if (!data) {
|
||||
// ctx.throw(StatusCodes.NOT_FOUND);
|
||||
// }
|
||||
// ctx.body = { success: true, data };
|
||||
// });
|
||||
|
||||
Reference in New Issue
Block a user