Skip to content

Commit 9316435

Browse files
committed
Update read-a-drivers-license.html
1 parent 29b666a commit 9316435

File tree

1 file changed

+48
-29
lines changed

1 file changed

+48
-29
lines changed

use-case/read-a-drivers-license.html

Lines changed: 48 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -441,35 +441,53 @@ <h1>Read A Driver's License</h1>
441441
}
442442

443443
try {
444-
const { parser } = await pInit;
445-
let parsedDLInfo = await parser.parse(bytesToParse);
446-
parsedDLInfo = JSON.parse(parsedDLInfo.jsonString);
447-
let resultShowNode = document.createElement("p");
448-
oriParseInfo = {};
449-
for (let info of parsedDLInfo.ResultInfo) {
450-
oriParseInfo[info.FieldName] = info.Value;
451-
if (info.ChildFields) {
452-
wrapResultObject(info.ChildFields);
444+
const { parser } = await pInit;
445+
let parsedDLInfo = await parser.parse(bytesToParse);
446+
if (parsedDLInfo.exception) return;
447+
parsedDLInfo = JSON.parse(parsedDLInfo.jsonString);
448+
let resultShowNode = document.createElement("p");
449+
oriParseInfo = {};
450+
if (parsedDLInfo.CodeType === "AAMVA_DL_ID") {
451+
for (let info of parsedDLInfo.ResultInfo) {
452+
if (info.FieldName !== "commonSubfile") continue;
453+
if (info.ChildFields) {
454+
wrapResultObject(info.ChildFields);
455+
}
456+
}
457+
} else if (parsedDLInfo.CodeType === "AAMVA_DL_ID_WITH_MAG_STRIPE") {
458+
for (let info of parsedDLInfo.ResultInfo) {
459+
if (info.FieldName.includes("track")) {
460+
if (info.ChildFields) {
461+
wrapResultObject(info.ChildFields);
462+
}
463+
}
464+
}
465+
} else if (parsedDLInfo.CodeType === "SOUTH_AFRICA_DL") {
466+
for (let info of parsedDLInfo.ResultInfo) {
467+
oriParseInfo[info.FieldName] = info.Value;
468+
if (info.ChildFields) {
469+
wrapResultObject(info.ChildFields);
470+
}
471+
}
453472
}
454-
}
455-
for (let o in oriParseInfo) {
456-
if (oriParseInfo[o]) {
457-
resultShowNode.appendChild(createNode("span", o));
458-
resultShowNode.appendChild(createNode("br"));
459-
resultShowNode.appendChild(createNode("strong", oriParseInfo[o]));
460-
resultShowNode.appendChild(createNode("br"));
461-
resultShowNode.appendChild(
462-
createNode("span", "------------------------------")
463-
);
464-
resultShowNode.appendChild(createNode("br"));
473+
for (let o in oriParseInfo) {
474+
if (oriParseInfo[o]) {
475+
resultShowNode.appendChild(createNode("span", o));
476+
resultShowNode.appendChild(createNode("br"));
477+
resultShowNode.appendChild(createNode("strong", oriParseInfo[o]));
478+
resultShowNode.appendChild(createNode("br"));
479+
resultShowNode.appendChild(
480+
createNode("span", "------------------------------")
481+
);
482+
resultShowNode.appendChild(createNode("br"));
483+
}
465484
}
466-
}
467-
document.querySelector(".div-result-body").innerHTML = "";
468-
document
469-
.querySelector(".div-result-body")
470-
.appendChild(resultShowNode);
471-
divResultContainer.style.display = "block";
472-
document.addEventListener("mousedown", clickToHide);
485+
document.querySelector(".div-result-body").innerHTML = "";
486+
document
487+
.querySelector(".div-result-body")
488+
.appendChild(resultShowNode);
489+
divResultContainer.style.display = "block";
490+
document.addEventListener("mousedown", clickToHide);
473491
} catch (ex) {
474492
alert(ex.message);
475493
}
@@ -478,8 +496,9 @@ <h1>Read A Driver's License</h1>
478496
function wrapResultObject(childFields) {
479497
for (let childField of childFields) {
480498
for (let field of childField) {
481-
if(["dataElementSeparator", "segmentTerminator"].includes(field.FieldName)) continue;
482-
oriParseInfo[field.FieldName] = field.Value;
499+
if (!["dataElementSeparator", "segmentTerminator", "subfile", "subfileType"].includes(field.FieldName)) {
500+
oriParseInfo[field.FieldName] = field.Value;
501+
}
483502
if (field.ChildFields) {
484503
wrapResultObject(field.ChildFields);
485504
}

0 commit comments

Comments
 (0)