Files
dsas-cca-backend/engage-api/struct-staff.mjs
2025-05-09 22:54:38 -04:00

55 lines
2.0 KiB
JavaScript

// struct-staff.mjs
let staffs = new Map();
async function dropOddName(staffsMap) {
let blackList = ["CL1-827", "CL1-831", "ID: CL1-832","CL1-834",
"CL1-835", "CL1-836", "CL1-838", "CL1-842", "CL1-843",
"CL1-844", "CL1-845", "CL1-846"];
let oddNames = {"Mr TT15 Pri KinLiu TT15 Pri KinLiu": "Mr Kin Liu",
"Mr TT13 Yanni Shen TT13 Yanni Shen": "Mr Yanni Shen",
"Mr TT19 Pri Saima Salem TT19 Pri Saima Salem": "Mr Saima Salem",
"Ms TT Ca(CCA) TT Ma": "Ms Ca Ma", "Mr JackyT JackyT": "Mr JackyT",
"Ms TT Ma TT M": "Ms Ma M", "TT01 Fang TT01 Dong": "Mr Fang Dong",
"Mr TT18 Shane Rose TT18 Shane Rose": "Mr Shane Rose",
"Ms Caroline Malone(id)": "Ms Caroline Malone",
"Ms Marina Mao(id)": "Ms Marina Mao",
"Mrs Amy Yuan (Lower Secondary Secretary初中部学部助理)": "Mrs Amy Yuan",
"Ms Lily Liu (Primary)": "Ms Lily Liu", "Ms Cindy 薛": "Ms Cindy Xue",
"Ms SiSi Li": "Ms Sisi Li", "Ms Caroline Malone(id)": "Ms Caroline Malone",
"Ms Lily Liu (Primary)": "Ms Lily Liu"};
// Filter out blacklisted keys
for (const key of blackList) {
staffsMap.delete(key);
}
// Update odd names
for (const [originalName, correctedName] of Object.entries(oddNames)) {
for (const [id, name] of staffsMap) {
if (name === originalName) {
staffsMap.set(id, correctedName);
}
}
}
return staffsMap;
}
async function updateStaffMap(staffsMap, lParms) {
for (const staff of lParms) {
if (staff && staff.key) {
staffsMap.set(staff.key, staff.val || "");
}
}
return await dropOddName(staffsMap);
}
export async function structStaffData(rawActivityData) {
let rows = rawActivityData.newRows;
for (const rowObject of rows) {
for (const field of rowObject.fields) {
if (field.fID == "staff") {
await updateStaffMap(staffs, field.lParms);
return staffs;
}
}
}
}