@@ -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