Skip to content

Instantly share code, notes, and snippets.

@KrishnanSriram
Created January 15, 2021 00:11
Show Gist options
  • Save KrishnanSriram/49a6e9315f7933f25991bf7d353c6b05 to your computer and use it in GitHub Desktop.
Save KrishnanSriram/49a6e9315f7933f25991bf7d353c6b05 to your computer and use it in GitHub Desktop.
V2 GPAExtractor/index.js
const PercentageProcessor = require('./percentagecalculator');
const NonPercentileProcessor = require('./nonpercentilescores');
const GradeScores = require('./gradescores');
const GenericGPAProcessor = require('./genericgpa');
const console = require('./../config/logconfig');
const Publisher = require('./../publish');
const extractAndPublishGPAScores = async (jsonData, lw_ocrText) => {
if (jsonData && GenericGPAProcessor.hasKeywordText(lw_ocrText) === true) {
await handleGenericGPAScores(lw_ocrText, jsonData);
} else if (PercentageProcessor.hasPercentageValues(lw_ocrText) === true) {
await handleGPAPercentageScores(lw_ocrText, jsonData);
} else if(NonPercentileProcessor.hasNonPercentileScores(lw_ocrText) === true) {
await handleGPANonPercentileScores(lw_ocrText, jsonData);
} else if(GradeScores.hasGradeScores(lw_ocrText) === true) {
await handleGPAGradeScores(lw_ocrText, jsonData);
}
}
const handlePublishOps = async (jsonData) => {
const {filename, studentname, policynumber, extractedGPAScore, validGPAScore} = jsonData;
const finalJSON = {
filename,
studentname,
policynumber,
extractedGPAScore : extractedGPAScore,
allowDiscount: validGPAScore,
actions: 'update gpa status',
err: '',
};
await Publisher.publishResultsToMQ(process.env.PUBLISH_COLLECTION, finalJSON);
}
const logDiscountStatus = (validGPAScore) => {
if(validGPAScore) {
console.log('info', '====================+====================');
console.log('info', 'Discount SHOULD be allowed!!!');
console.log('info', '====================+====================');
}
else {
console.log('info', '====================+====================');
console.log('info', 'Discount SHOULD NOT be allowed!!!');
console.log('info', '====================+====================');
}
}
const handleGenericGPAScores = async (lw_ocrText, jsonData) => {
let extractedGPAScore = '-';
console.log('info', 'Found GPA text - Processing for more TEXT');
const genericGPAScore = GenericGPAProcessor.hasValidGPAScore(lw_ocrText);
const validGPAScore = genericGPAScore.found;
if (validGPAScore) {
extractedGPAScore = genericGPAScore.score;
}
jsonData.extractedGPAScore = (extractedGPAScore) ? extractedGPAScore : '-';
jsonData.allowDiscount = validGPAScore;
logDiscountStatus(validGPAScore);
await handlePublishOps(jsonData);
}
const handleGPAPercentageScores = async (lw_ocrText, jsonData) => {
let extractedGPAScore = '-';
console.log('info', 'Checking for percentage value evaluation');
const validPercentage = PercentageProcessor.hasDiscountablePercentageScore(lw_ocrText);
const validGPAScore = validPercentage.found;
if (validPercentage.found === true) {
extractedGPAScore = validPercentage.score;
}
jsonData.extractedGPAScore = (extractedGPAScore) ? extractedGPAScore : '-';
jsonData.allowDiscount = validGPAScore;
logDiscountStatus(validGPAScore);
await handlePublishOps(jsonData);
}
const handleGPANonPercentileScores = async (lw_ocrText, jsonData) => {
let extractedGPAScore = '-';
console.log('info', 'Validated Non Percentile scores');
// Update MONGODB with student discount information
const nonPercentileGPAScore = NonPercentileProcessor.hasDiscountableNonPercentileScore(lw_ocrText)
let validGPAScore = nonPercentileGPAScore.found;
if(validGPAScore) {
extractedGPAScore = nonPercentileGPAScore.score;
}
jsonData.extractedGPAScore = (extractedGPAScore) ? extractedGPAScore : '-';
jsonData.allowDiscount = validGPAScore;
logDiscountStatus(validGPAScore);
await handlePublishOps(jsonData);
}
const handleGPAGradeScores = async (lw_ocrText, jsonData) => {
let extractedGPAScore = '-';
console.log('info', 'Validated Grade scores');
// Update MONGODB with student discount information
const gradeGPAScore = GradeScores.hasDiscountableGradeScores(lw_ocrText);
const validGPAScore = gradeGPAScore.found;
if(validGPAScore) {
extractedGPAScore = gradeGPAScore.score;
}
jsonData.extractedGPAScore = (extractedGPAScore) ? extractedGPAScore : '-';
jsonData.allowDiscount = validGPAScore;
logDiscountStatus(validGPAScore);
await handlePublishOps(jsonData);
}
module.exports = {
extractAndPublishGPAScores
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment