router.get('/github/repos', async (req, res) => { const user = await User.findById(req.user._id, 'isGithubConnected githubAccessToken'); if (!user.isGithubConnected || !user.githubAccessToken) { res.json({ error: 'Github not connected' }); return; } try { const response = await getRepos({ user, request: req }); res.json({ repos: response.data }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
var findById = function (id, callback){ roomModel.findById(id, callback); }
// github-related router.post('/books/sync-content', async (req, res) => { const { bookId } = req.body; const user = await User.findById(req.user._id, 'isGithubConnected githubAccessToken'); if (!user.isGithubConnected || !user.githubAccessToken) { res.json({ error: 'Github not connected' }); return; } try { await Book.syncContent({ id: bookId, githubAccessToken: user.githubAccessToken }); res.json({ done: 1 }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
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('/github/repos', async (req, res) => { const user = await User.findById(req.user._id, 'isGithubConnected githubAccessToken'); if (!user.isGithubConnected || !user.githubAccessToken) { res.json({ error: 'Github not connected' }); return; } try { const response = await getRepos({ accessToken: user.githubAccessToken }); res.json({ repos: response.data }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
// github-related router.post('/books/sync-content', async (req, res) => { const { bookId } = req.body; const user = await User.findById(req.user._id, 'isGithubConnected githubAccessToken'); if (!user.isGithubConnected || !user.githubAccessToken) { res.json({ error: 'Github not connected' }); return; } try { await Book.syncContent({ id: bookId, user, request: req }); res.json({ done: 1 }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
var findById = function (id, callback){ userModel.findById(id, callback); }
router.get('/github/repos', async (req, res) => { const user = await User.findById(req.user._id, 'isGithubConnected githubAccessToken'); if (!user.isGithubConnected || !user.githubAccessToken) { res.json({ error: 'Github not connected' }); return; } try { const response = await getRepos({ user, request: req }); res.json({ repos: response.data }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
router.get('/github/repos', async (req, res) => { const user = await User.findById(req.user._id, 'isGithubConnected githubAccessToken'); if (!user.isGithubConnected || !user.githubAccessToken) { res.json({ error: 'Github not connected' }); return; } try { const response = await getRepos({ accessToken: user.githubAccessToken }); res.json({ repos: response.data }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
router.get('/github/repos', async (req, res) => { const user = await User.findById(req.user._id, 'isGithubConnected githubAccessToken'); if (!user.isGithubConnected || !user.githubAccessToken) { res.json({ error: 'Github not connected' }); return; } try { const response = await getRepos({ accessToken: user.githubAccessToken }); res.json({ repos: response.data }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
router.get('/github/repos', async (req, res) => { const user = await User.findById(req.user._id, 'isGithubConnected githubAccessToken'); if (!user.isGithubConnected || !user.githubAccessToken) { res.json({ error: 'Github not connected' }); return; } try { const response = await getRepos({ accessToken: user.githubAccessToken }); res.json({ repos: response.data }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
// github-related router.post('/books/sync-content', async (req, res) => { const { bookId } = req.body; const user = await User.findById(req.user._id, 'isGithubConnected githubAccessToken'); if (!user.isGithubConnected || !user.githubAccessToken) { res.json({ error: 'Github not connected' }); return; } try { await Book.syncContent({ id: bookId, githubAccessToken: user.githubAccessToken }); res.json({ done: 1 }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
// github-related router.post('/books/sync-content', async (req, res) => { const { bookId } = req.body; const user = await User.findById(req.user._id, 'isGithubConnected githubAccessToken'); if (!user.isGithubConnected || !user.githubAccessToken) { res.json({ error: 'Github not connected' }); return; } try { await Book.syncContent({ id: bookId, githubAccessToken: user.githubAccessToken }); res.json({ done: 1 }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
// github-related router.post('/books/sync-content', async (req, res) => { const { bookId } = req.body; const user = await User.findById(req.user._id, 'isGithubConnected githubAccessToken'); if (!user.isGithubConnected || !user.githubAccessToken) { res.json({ error: 'Github not connected' }); return; } try { await Book.syncContent({ id: bookId, githubAccessToken: user.githubAccessToken }); res.json({ done: 1 }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });
// github-related router.post('/books/sync-content', async (req, res) => { const { bookId } = req.body; const user = await User.findById(req.user._id, 'isGithubConnected githubAccessToken'); if (!user.isGithubConnected || !user.githubAccessToken) { res.json({ error: 'Github not connected' }); return; } try { await Book.syncContent({ id: bookId, user, request: req }); res.json({ done: 1 }); } catch (err) { logger.error(err); res.json({ error: err.message || err.toString() }); } });