/**
 * .localize() methods example
 * To see all the included languages, you have to unzip the
 * .pkpass file and check for .lproj folders
 */ import { app } from "./webserver" ; import { getCertificates } from "./shared" ; import path from "path" ; import { PKPass } from "passkit-generator" ; app . route ( "/localize/:modelName" ) . get ( async ( request , response ) => { const passName = request . params . modelName + "_" + new Date ( ) . toISOString ( ) . split ( "T" ) [ 0 ] . replace ( /-/gi , "" ) ; const certificates = await getCertificates ( ) ; try { const pass = await PKPass . from ( { model : path . resolve ( __dirname , `../../models/${ request . params . modelName }` ) , certificates : { wwdr : certificates . wwdr , signerCert : certificates . signerCert , signerKey : certificates . signerKey , signerKeyPassphrase : certificates . signerKeyPassphrase , } , } , request . body || request . params || request . query ) ; pass . localize ( "it" , { EVENT : "Evento" , LOCATION : "Dove" , } ) ; pass . localize ( "de" , { EVENT : "Ereignis" , LOCATION : "Ort" , } ) ; pass . localize ( "zu" , { } ) ; console . log ( "Added languages" , Object . keys ( pass . languages ) . join ( ", " ) ) ; if ( pass . type === "boardingPass" && ! pass . transitType ) { pass . transitType = "PKTransitTypeAir" ; } const stream = pass . getAsStream ( ) ; response . set ( { "Content-type" : pass . mimeType , "Content-disposition" : `attachment; filename=${ passName }.pkpass` , } ) ; stream . pipe ( response ) ; } catch ( err ) { console . log ( err ) ; response . set ( { "Content-type" : "text/html" , } ) ; response . send ( err . message ) ; } } ) ;