router.post('/stripe/fetch-checkout-session', async (req, res) => { try { const { bookId, redirectUrl } = req.body; const book = await Book.findById(bookId).select(['slug']).setOptions({ lean: true }); if (!book) { throw new Error('Book not found'); } const isPurchased = (await Purchase.find({ userId: req.user._id, bookId: book._id }).countDocuments()) > 0; if (isPurchased) { throw new Error('Already bought this book'); } const session = await createSession({ userId: req.user._id.toString(), userEmail: req.user.email, bookId, bookSlug: book.slug, redirectUrl, }); res.json({ sessionId: session.id }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
router.get('/stream_key', require('connect-ensure-login').ensureLoggedIn(), (req, res) => { User.findOne({email: req.user.email}, (err, user) => { if (!err) { res.json({ stream_key: user.stream_key }) } }); });
router.get( "/current", passport.authenticate("user-rule", { session: false }), (req, res) => { res.json({ id: req.user.id, username: req.user.username, email: req.user.email }); } )
router.delete('/me', isAuthenticated, async (req, res) => { // Confirm intention to delete by checking inputted email if (req.user.email !== req.query.verificationEmail) return res.status(403).json({message: 'Email addresses do not match'}); try { await User.delete({_id: req.user._id}); return res.status(200).json({message: 'Account deleted'}); } catch (err) { return res.status(200).json({message: err.message || 'Failed to delete account', err}); } });
app.use((req, res, next) => { if (!req.user || !req.user.askEmail || req.user.email || req.path == '/askEmail') return next() console.log('redirecting for email') return res.redirect('/askEmail') })
// @route GET api/users/current // @desc Return current user // @access Private router.get( "/current", passport.authenticate("jwt", { session: false }), (req, res) => { res.json({ id: req.user, name: req.user.name, email: req.user.email }); } );
/* GET Profile page. */ router.get('/profile', isLoggedIn, function(req, res, next) { res.render('profile', { title: 'Profile Page', user: req.user, avatar: gravatar.url(req.user.email, { s: '100', r: 'x', d: 'retro' }, true) }); });
router.get( "/current", passport.authenticate("artist-rule", { session: false }), (req, res) => { res.json({ id: req.user.id, artistname: req.user.artistname, email: req.user.email, body: req.user.body }); } )
router.get('/profile', passport.authenticate('jwt', {session: false}), (req, res) => { return res.json({ id: req.user.id, name: req.user.name, email: req.user.email }); });
router.post('/stripe/fetch-checkout-session', async (req, res) => { try { const { bookId, redirectUrl } = req.body; const book = await Book.findById(bookId).select(['slug']).setOptions({ lean: true }); if (!book) { throw new Error('Book not found'); } const isPurchased = (await Purchase.find({ userId: req.user._id, bookId: book._id }).countDocuments()) > 0; if (isPurchased) { throw new Error('Already bought this book'); } const session = await createSession({ userId: req.user._id.toString(), userEmail: req.user.email, bookId, bookSlug: book.slug, redirectUrl, }); res.json({ sessionId: session.id }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
router.get('/me', passport.authenticate('jwt', { session: false }), (req, res) => { return res.json({ id: req.user.id, name: req.user.name, email: req.user.email }); });
// @route GET api/users/current // @desc Return current user // @access Private router.get( '/current', passport.authenticate('jwt', { session: false }), (req, res) => { res.json({ id: req.user.id, name: req.user.name, email: req.user.email }); } );
// @route GET api/users/current // @desc Return current user // @access Private router.get( '/current', passport.authenticate('jwt', { session: false }), (req, res) => { res.json({ id: req.user.id, name: req.user.name, email: req.user.email }); } );
//@route GET api/users/current //@desc Return Current User //@access Private router.get( '/current', passport.authenticate('jwt', { session: false }), (req, res) => { res.json({ id: req.user.id, name: req.user.name, email: req.user.email }); } );
// @route GET api/users/current // @desc Return current user // @access Private router.get( "/current", passport.authenticate("jwt", { session: false }), (req, res) => { res.json({ id: req.user.id, name: req.user.name, email: req.user.email }); } );