import Aview from "./Aview.ts" import { dragElement } from "./drag.ts"; import { setOnekoState } from "../oneko.ts" import { isLogged, navigationManager, user_api, auth_api } from "../main.ts" export default class extends Aview { constructor() { super(); this.setTitle("register"); setOnekoState("default"); } async getHTML() { return `
register.ts
×

welcome ! please register.


`; } async run() { document.getElementById("register-google").href = `${auth_api}/register/google`; dragElement(document.getElementById("window")); 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(auth_api + "/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(auth_api + "/me", { method: "GET", credentials: "include", }); let uuid = await uuid_req.json(); document.cookie = `uuid=${uuid.user};max-ages=${60 * 60 * 24 * 7}`; isLogged(); navigationManager("/"); } else if (data_req.status === 400) { if (document.getElementById("login-error-message")) { 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.log(error); if (document.getElementById("login-error-message")) { 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); } }