index.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import EncryptionHandler from "./EncryptionHandler.js";
  2. import User from "./data/User.js";
  3. import Login from "./pages/Login.js";
  4. import Register from "./pages/Register.js";
  5. import Home from "./pages/Home.js";
  6. import AddMenu from "./pages/AddMenu.js";
  7. import CreateAccount from "./pages/CreateAccount.js";
  8. import CreateIncome from "./pages/CreateIncome.js";
  9. import CreateBill from "./pages/CreateBill.js";
  10. import CreateAllowance from "./pages/CreateAllowance.js";
  11. import CreateTransaction from "./pages/CreateTransaction.js";
  12. const pages = document.querySelector(".page");
  13. let currentPage;
  14. window.changePage = (page, data)=>{
  15. console.time("change page");
  16. currentPage.close();
  17. switch(page){
  18. case "login": currentPage = new Login(); break;
  19. case "register": currentPage = new Register(); break;
  20. case "home": currentPage = new Home(); break;
  21. case "addMenu": currentPage = new AddMenu(); break;
  22. case "createAccount": currentPage = new CreateAccount(); break;
  23. case "createIncome": currentPage = new CreateIncome(); break;
  24. case "createBill": currentPage = new CreateBill(); break;
  25. case "createAllowance": currentPage = new CreateAllowance(); break;
  26. case "createTransaction": currentPage = new CreateTransaction(); break;
  27. }
  28. console.timeEnd("change page");
  29. }
  30. fetch("/api/user", {
  31. method: "GET",
  32. headers: {"Content-Type": "application/json"},
  33. })
  34. .then(r=>r.json())
  35. .then((response)=>{
  36. if(response.error) throw response;
  37. window.user = new User(
  38. response.id,
  39. response.name,
  40. response.email,
  41. );
  42. return Promise.all([EncryptionHandler.getKeyFromStorage(), response.accounts]);
  43. })
  44. .then(([key, accounts])=>{
  45. window.encryptionHandler = new EncryptionHandler(key);
  46. let promises = [];
  47. for(let i = 0; i < accounts.length; i++){
  48. promises.push(user.decryptAndAddAccount(accounts[i]));
  49. }
  50. return Promise.all(promises);
  51. })
  52. .then((response)=>{
  53. currentPage = new Home();
  54. })
  55. .catch((err)=>{
  56. currentPage = new Login();
  57. });