Skip to content

Commit

Permalink
Add attendence, behavior, and score to mysql outputs
Browse files Browse the repository at this point in the history
  • Loading branch information
esurface committed May 24, 2024
1 parent ac2cf76 commit dd8a73d
Showing 1 changed file with 50 additions and 1 deletion.
51 changes: 50 additions & 1 deletion server/src/modules/mysql-js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ module.exports = {
}
const result = await saveToMysql(knex, sourceDb,flatDoc, tablenameSuffix, tableName, docType, primaryKey, createFunction)
log.info('Processed: ' + JSON.stringify(result))
} else {
} else if (doc.type === 'response') {
const flatDoc = await prepareFlatData(doc, sanitized);
tableName = null;
docType = 'response';
Expand All @@ -222,7 +222,25 @@ module.exports = {
}
const result = await saveToMysql(knex, sourceDb,flatDoc, tablenameSuffix, tableName, docType, primaryKey, createFunction)
log.info('Processed: ' + JSON.stringify(result))
} else {
const flatDoc = await prepareFlatData(doc, sanitized);
tableName = flatDoc.type;
console.log("tableName: " + tableName)
docType = 'response';
primaryKey = 'ID'
createFunction = function (t) {
t.engine('InnoDB')
t.string(primaryKey, 200).notNullable().primary();
t.string('caseId', 36) // .index('response_caseId_IDX');
t.string('participantID', 36) //.index('case_instances_ParticipantID_IDX');
t.string('caseEventId', 36) // .index('eventform_caseEventId_IDX');
t.tinyint('complete');
t.string('archived', 36); // TODO: "sqlMessage":"Incorrect integer value: '' for column 'archived' at row 1
}
const result = await saveToMysql(knex, sourceDb,flatDoc, tablenameSuffix, tableName, docType, primaryKey, createFunction)
log.info('Processed: ' + JSON.stringify(result))
}

await knex.destroy()
}
}
Expand Down Expand Up @@ -326,9 +344,36 @@ const generateFlatResponse = async function (formResponse, sanitized) {
if (formResponse.form.id === '') {
formResponse.form.id = 'blank'
}
console.log('formResponse.form.id: ' + formResponse.form.id)
flatFormResponse['formId'] = formResponse.form.id
}

if (formResponse.type === 'attendance' || formResponse.type === 'behavior' || formResponse.type === 'scores') {
if (formResponse.type === 'attendance') {
flatFormResponse['attendanceList'] = formResponse.attendanceList
} else if (formResponse.type === 'behavior') {
// flatFormResponse['studentBehaviorList'] = formResponse.studentBehaviorList
const studentBehaviorList = formResponse.studentBehaviorList.map(record => {
const student = {}
Object.keys(record).forEach(key => {
if (key === 'behavior') {
student[key + '.formResponseId'] = record[key]['formResponseId']
student[key + '.internal'] = record[key]['internal']
student[key + '.internalPercentage'] = record[key]['internalPercentage']
// console.log("special processing for behavior: " + JSON.stringify(student) )
} else {
// console.log("key: " + key + " record[key]: " + record[key])
student[key] = record[key]
}
})
return student
})
flatFormResponse['studentBehaviorList'] = studentBehaviorList
} else if (formResponse.type === 'scores') {
flatFormResponse['scoreList'] = formResponse.scoreList
}
}

for (let item of formResponse.items) {
for (let input of item.inputs) {
let sanitize = false;
Expand Down Expand Up @@ -661,6 +706,7 @@ async function convert_response(knex, doc, groupId, tableName) {
const caseEventId = doc.caseEventId

var formID = doc.formId || data['formid']
console.log("formID: " + formID)
if (formID) {
// thanks to https://stackoverflow.com/a/14822579
const find = '-'
Expand Down Expand Up @@ -817,6 +863,9 @@ async function saveToMysql(knex, sourceDb, doc, tablenameSuffix, tableName, docT
data = await convert_issue(knex, doc, groupId, tableName)
break;
case 'response':
case 'attendance':
case 'behavior':
case 'scores':
data = await convert_response(knex, doc, groupId, tableName)
// Check if table exists and create if needed:
tableName = data['formID_sanitized'] + tablenameSuffix
Expand Down

0 comments on commit dd8a73d

Please sign in to comment.