router.get('/books/:slug', async (req, res) => { try { const book = await Book.getBySlug({ slug: req.params.slug, userId: req.user && req.user.id }); res.json(book); } catch (err) { res.json({ error: err.message || err.toString() }); } });
router.use((req, res, next) => { if (!req.user || !req.user.isAdmin) { res.status(401).json({ error: 'Unauthorized' }); return; } next(); });
app.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/auth/google' }), (req, res) => { // Successful authentication, redirect home. res.redirect('/'); });
router.post('/books/add', async (req, res) => { try { const book = await Book.add({ userId: req.user.id, ...req.body }); res.json(book); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
router.post('/books/add', async (req, res) => { try { const book = await Book.add(Object.assign({ userId: req.user.id }, req.body)); res.json(book); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
router.use('/users', (req, res, next) => { if (req.user && req.user.isAdmin) { next(); return; } res.status(401).send('Not authorized'); });
router.get('/books/:slug', async (req, res) => { try { const book = await Book.getBySlug({ slug: req.params.slug, userId: req.user && req.user.id }); res.json(book); } catch (err) { res.json({ error: err.message || err.toString() }); } });
router.post('/books/add', async (req, res) => { try { const book = await Book.add(Object.assign({ userId: req.user.id }, req.body)); res.json(book); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
app.get( '/auth/twitter/callback', passport.authenticate('twitter', { failureRedirect: '/login' }), (request, reply) => { reply.redirect('/success'); } );
app.get( '/auth/mastodon/callback', passport.authenticate('mastodon', { failureRedirect: '/login' }), (request, reply) => { reply.redirect('/success'); } );
router.get('/books/:slug', async (req, res) => { try { const book = await Book.getBySlug({ slug: req.params.slug, userId: req.user && req.user.id }); res.json(book); } catch (err) { res.json({ error: err.message || err.toString() }); } });
router.use((req, res, next) => { if (!req.user || !req.user.isAdmin) { res.status(401).json({ error: 'Unauthorized' }); return; } next(); });
router.get('/books/:slug', async (req, res) => { try { const book = await Book.getBySlug({ slug: req.params.slug, userId: req.user && req.user.id }); res.json(book); } catch (err) { res.json({ error: err.message || err.toString() }); } });
router.use((req, res, next) => { if (!req.user || !req.user.isAdmin) { res.status(401).json({ error: 'Unauthorized' }); return; } next(); });
router.use((req, res, next) => { if (!req.user || !req.user.isAdmin) { res.status(401).json({ error: 'Unauthorized' }); return; } next(); });