diff --git a/acquire_bcnum.js b/acquire_bcnum.js index c558b8d..260fa4a 100644 --- a/acquire_bcnum.js +++ b/acquire_bcnum.js @@ -21,6 +21,29 @@ function correlationId() { return crypto.randomUUID() + "_" + crypto.randomUUID() } +async function getKundenkontoV2(){ + let tok = await getAuthToken(); + let req = await fetch("https://www.bahn.de/web/api/kundenkonto/v2", { + headers: [ + ["Accept", "application/json"], ["authorization", "Bearer " + tok], //["X-Correlation-ID", correlationId()] + ] + }); + if(req.ok){ + const data = await req.json(); + return { + "addr__appellation": data.anrede, + "addr__firstName": data.vorname, + "addr__surName": data.nachname, + "bday": data.geburtsdatum, + "addr__email": data.email, + "addr__placename": data.hauptadresse.ort, + "addr__postcode": data.hauptadresse.plz, + "addr__street": data.hauptadresse.strasse + } + } + return {} +} + async function getBahncardInfo() { let tok = await getAuthToken(); let req = await fetch("https://www.bahn.de/web/api/kundenkonto/bahncard", { @@ -46,16 +69,25 @@ async function getBahncardInfo() { return false; } } -browser.storage.sync.get("acquireBahncard").then(v => { +browser.storage.sync.get(["acquireAll","acquireBahncard"]).then(v => { + if (v.acquireAll!=false){ + Promise.all([getKundenkontoV2(), getBahncardInfo()]).then(data => { + const saveData = {...data[0], "bcnum": data[1]}; + console.log("Saving", saveData); + browser.storage.sync.set(saveData).then(()=>{ + alert("Saved all available data to settings.\nPlease enter your bank details on the bottom of the settings page."); + window.close(); + }) + }) + } if (v.acquireBahncard != false) { // may also be undefined, so no identity check here getBahncardInfo().then(v => { if (!!v && v.length == 16) { const saveData = { "bcnum": v, "acquireBahncard": false } console.log("Saving", saveData); - browser.storage.sync.set(saveData).then(success => { - if (window !== window.top) { - window.close(); - } + browser.storage.sync.set(saveData).then(() => { + alert("Saved your BahnCard number to settings.\nReload the settings page to continue."); + window.close(); }); } }, f => console.log("Could not acquire BahnCard number.", f)) diff --git a/options/index.html b/options/index.html index a0672ed..de0980f 100644 --- a/options/index.html +++ b/options/index.html @@ -13,12 +13,13 @@ Enable autofill +