diff --git a/backend/src/api/import-from-ss.js b/backend/src/api/import-from-ss.js index 0f0ceb5..06c542f 100644 --- a/backend/src/api/import-from-ss.js +++ b/backend/src/api/import-from-ss.js @@ -201,11 +201,20 @@ module.exports = async (req, res) => { console.log(`importFromSS: author ${authorId}`); const papers = await fetchAuthorPapers(authorId); console.log('papers count:', papers.length); + + const earlyResponseTimeout = setTimeout(() => { + res.status(202).end(); + }); + const result = await Promise.mapSeries(papers, importPaper); + clearTimeout(earlyResponseTimeout); + if (result.length) { console.log(`Added posts for ${result.length} papers by author ${authorId}`); } - res.json(result); + if (!res.headersSent) { + res.json(result); + } } else { res.status(400).end(); } diff --git a/backend/src/api/index.js b/backend/src/api/index.js index 80096d2..536b7df 100644 --- a/backend/src/api/index.js +++ b/backend/src/api/index.js @@ -39,7 +39,9 @@ app.use((err, req, res, next) => { const status = err.response?.status ?? err.status ?? 500; const message = err.response?.data?.error ?? err.message; console.error(`error: ${message}`, err); - res.status(status).send(message); + if (!res.headersSent) { + res.status(status).send(message); + } next(); });