Analyze server-resolved document reviews with revision checks

This commit is contained in:
2026-09-06 09:49:30 +03:00
parent e49593be46
commit 742e05933e
11 changed files with 87 additions and 18 deletions
+18
View File
@@ -41,3 +41,21 @@ export function saveDocumentReview(email,id,input) {
} catch(error) {try {db.exec('ROLLBACK');} catch {} throw error;}
finally {db.close();}
}
/** Resolve a requested review to server-owned text; caller text/approval is never used. */
export function reviewedAnalysisSource(email,reference,tenderKey) {
if(!reference || typeof reference.documentId !== 'string' || !Number.isInteger(reference.revision))
throw fail(400,'Geçerli belge ve inceleme sürümü gerekli.');
const db=openDb();
try {
const fileHash=source(db,email,reference.documentId);
const doc=db.prepare('SELECT ad,ikn FROM belgeler WHERE id=? AND email=?').get(reference.documentId,email);
if(!doc.ikn || doc.ikn!==tenderKey) throw fail(409,'İnceleme bu ihaleye bağlı değil.');
const review=latest(db,email,reference.documentId);
if(!review || review.revision!==reference.revision || review.file_hash!==fileHash)
throw fail(409,'İnceleme veya kaynak dosya değişti; güncel incelemeyi açın.');
return {text:review.corrected_text,fileName:doc.ad,
humanReview:{documentId:reference.documentId,revision:review.revision,fileHash,textHash:review.text_hash,
reviewedBy:email,reviewedAt:review.reviewed_at,note:review.review_note}};
} finally {db.close();}
}