Created
January 15, 2021 00:11
-
-
Save KrishnanSriram/49a6e9315f7933f25991bf7d353c6b05 to your computer and use it in GitHub Desktop.
V2 GPAExtractor/index.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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