Skip to content

Commit

Permalink
Implements /api/v1/invite endpoint to generate/verify invites
Browse files Browse the repository at this point in the history
Signed-off-by: Jaipradeesh J <[email protected]>
  • Loading branch information
Jaipradeesh J committed Sep 3, 2017
1 parent 74d8824 commit 7fcbeaf
Showing 1 changed file with 38 additions and 1 deletion.
39 changes: 38 additions & 1 deletion server/api/v1/users.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ router.get('/', (req, res) => {
methods: [
'POST /',
'POST /password',
'POST /auth'
'POST /auth',
'POST /invite',
'GET /invite/verify'
]
})
})
Expand Down Expand Up @@ -91,4 +93,39 @@ router.post('/auth', requiredFields(['username', 'password']), (req, res, next)
.catch(next)
})

/**
* Generates invite token
*/
router.post('/invite', requiredFields(['user_id', 'email']), (req, res, next) => {
jwt.createInviteJWT(req.required.user_id, req.required.email, req.app.get('jwtsecret'))
.then(token => {
res.status(200).json({
msg: 'Invite created',
status: 200,
payload: {
email: req.required.email,
token: token
}
})
})
.catch(next)
})

/**
* Verifies invite token
*/
router.get('/invite/verify', requiredFields(['inviteToken', 'email']), (req, res, next) => {
jwt.verifyInvite(req.required.email, req.required.inviteToken, req.app.get('jwtsecret'))
.then(email => {
res.status(200).json({
msg: 'Invite verified',
status: 200,
payload: {
email: email
}
})
})
.catch(next)
})

module.exports = router

0 comments on commit 7fcbeaf

Please sign in to comment.