From b4da0ec6e560cf72c5299fd800ba969ca966895e Mon Sep 17 00:00:00 2001 From: Ladd Hoffman Date: Sat, 20 Apr 2024 21:50:02 -0500 Subject: [PATCH] reduce logging and send HTTP 202 early rather than expecting the caller to wait --- backend/src/import-from-ss.js | 24 +++++++++++++----------- backend/src/verify-signature.js | 1 - 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/backend/src/import-from-ss.js b/backend/src/import-from-ss.js index c00f013..3aa0f1a 100644 --- a/backend/src/import-from-ss.js +++ b/backend/src/import-from-ss.js @@ -35,7 +35,6 @@ const getContract = (name) => new ethers.Contract( const fetchPaperInfo = async (paperId, retryDelay = 5000) => { const url = `https://api.semanticscholar.org/graph/v1/paper/${paperId}?fields=title,url,authors,references`; - console.log('url:', url); let retry = false; let paper; const response = await axios.get(url, { @@ -120,9 +119,6 @@ HREF ${paper.url}`; contentToSign += `\n\n${JSON.stringify(embeddedData, null, 2)}`; } const signature = firstAuthorWallet.signMessageSync(contentToSign); - console.log({ - authors, content, signature, embeddedData, - }); const verified = verifySignature({ authors, content, signature, embeddedData, }); @@ -149,6 +145,10 @@ module.exports = async (req, res) => { // Read the paper info from SS const paper = await fetchPaperInfo(paperId); + + // Send HTTP code 202 - Accepted + res.status(202).end(); + console.log('references count:', paper.references.length); const eachCitationWeightPercent = Math.floor(30 / paper.references.length); @@ -176,19 +176,21 @@ module.exports = async (req, res) => { hash, authors, content, signature, embeddedData, } = await generatePost(paper); - console.log({ - hash, authors, content, signature, embeddedData, citations, - }); - // Write the new post to our database await forum.put(hash, { authors, content, signature, embeddedData, citations, }); // Add the post to the form (on-chain) - await dao.addPost(authors, hash, citations); + try { + await dao.addPost(authors, hash, citations); + } catch (e) { + if (e.reason === 'A post with this contentId already exists') { + console.log(`Post already added for paper ${paperId}`); + return; + } + throw e; + } console.log(`Added post to blockchain for paper ${paperId}`); - - res.end(); }; diff --git a/backend/src/verify-signature.js b/backend/src/verify-signature.js index 5a33053..d1454f8 100644 --- a/backend/src/verify-signature.js +++ b/backend/src/verify-signature.js @@ -9,7 +9,6 @@ const verifySignature = ({ } try { const account = recoverPersonalSignature({ data: contentToVerify, signature }); - console.log(`recovered account: ${account}`); const authorAddresses = authors.map((author) => author.authorAddress.toLowerCase()); if (!authorAddresses.includes(account.toLowerCase())) { console.log('error: signer is not among the authors');