/* api.jsx — klient backendu (functions/api). Vystavuje window.AUTA_API = { ja(), vozidla() }.
   Chyba nesie .status (401, 403, 502…), aby app.jsx vedel odlíšiť hosťa od výpadku.
   V lokálnom náhľade (?nahlad=1 na localhost, viď app.jsx) sa API nahrádza vymyslenými dátami.
*/
(function () {
  "use strict";

  async function volaj(cesta) {
    const token = await window.AUTA_AUTH.getApiToken();
    let res;
    try {
      res = await fetch("/api/" + cesta, { headers: { Authorization: "Bearer " + token } });
    } catch (e) {
      const err = new Error("Nepodarilo sa spojiť so serverom. Skontrolujte pripojenie.");
      err.status = 0;
      throw err;
    }
    let telo = null;
    try { telo = await res.json(); } catch (_) { telo = null; }
    if (!res.ok) {
      const err = new Error((telo && telo.error) || "Chyba servera (" + res.status + ").");
      err.status = res.status;
      throw err;
    }
    return telo;
  }

  window.AUTA_API = {
    ja: () => volaj("ja"),
    vozidla: () => volaj("vozidla").then((d) => d.vozidla || []),
  };
})();
