import Aview from "./Aview.ts" import { isLogged, navigationManager } from "../main.ts" export default class extends Aview { constructor() { super(); this.setTitle("register"); } async getHTML() { return `
`; } async run() { const login = async () => { const username = (document.getElementById("username") as HTMLInputElement).value; const password = (document.getElementById("password") as HTMLInputElement).value; try { const data_req = await fetch("http://localhost:3001/register", { method: "POST", headers: { "Content-Type": "application/json", }, credentials: "include", body: JSON.stringify({ user: username, password: password }), }); const data = await data_req.json(); if (data_req.status === 200) { let uuid_req = await fetch("http://localhost:3001/me", { method: "GET", credentials: "include", }); let uuid = await uuid_req.json(); document.cookie = `uuid=${uuid.user};max-ages=${60*60*24*7}`; console.log(document.cookie); isLogged(); navigationManager("/"); } else if (data_req.status === 400) { document.getElementById("login-error-message").innerHTML = "error: " + data.error; document.getElementById("login-error-message").classList.remove("hidden"); } else { throw new Error("invalid response"); } } catch (error) { console.error(error); document.getElementById("login-error-message").innerHTML = "error: server error, try again later..."; document.getElementById("login-error-message").classList.remove("hidden"); } }; document.getElementById("register-button")?.addEventListener("click", login); } }