const API_BASE = "https://mail.pandem.fr/api/v1"; const LOGIN_ENDPOINT = "/login"; const GET_ALIAS_ENDPOINT = "/get/alias"; const ADD_ALIAS_ENDPOINT = "/add/alias"; // Check if user is logged in document.addEventListener("DOMContentLoaded", async () => { const storedSession = await browser.storage.local.get("session"); if (storedSession.session) { showEmailForm(); } }); document.getElementById("login").addEventListener("click", async () => { const username = document.getElementById("username").value; const password = document.getElementById("password").value; try { const response = await fetch(API_BASE + LOGIN_ENDPOINT, { method: "POST", credentials: "include", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ username, password }) }); if (!response.ok) throw new Error("Login failed"); await browser.storage.local.set({ session: true }); showEmailForm(); } catch (error) { console.error(error); alert("Login error"); } }); document.getElementById("logout").addEventListener("click", async () => { await browser.storage.local.remove("session"); showLoginForm(); }); document.getElementById("fetch").addEventListener("click", async () => { try { const response = await fetch(API_BASE + GET_ALIAS_ENDPOINT, { credentials: "include" }); if (!response.ok) throw new Error("Failed to fetch emails"); const aliases = await response.json(); if (aliases.length > 0) { const latestEmail = aliases[0].address; document.getElementById("email").value = latestEmail; } else { document.getElementById("email").value = "No temp email found"; } } catch (error) { console.error(error); alert("Error fetching email"); } }); document.getElementById("generate").addEventListener("click", async () => { const emailPrefix = "temp" + Date.now(); const domain = "pandem.fr"; const newEmail = `${emailPrefix}@${domain}`; const requestData = { address: newEmail, goto: "your_main@pandem.fr", active: true }; try { const response = await fetch(API_BASE + ADD_ALIAS_ENDPOINT, { method: "POST", credentials: "include", headers: { "Content-Type": "application/json" }, body: JSON.stringify(requestData) }); if (!response.ok) throw new Error("Failed to generate email"); document.getElementById("email").value = newEmail; alert("New email created: " + newEmail); } catch (error) { console.error(error); alert("Error creating email"); } }); document.getElementById("copy").addEventListener("click", () => { const emailField = document.getElementById("email"); emailField.select(); document.execCommand("copy"); alert("Copied: " + emailField.value); }); function showEmailForm() { document.getElementById("login-form").style.display = "none"; document.getElementById("email-form").style.display = "block"; } function showLoginForm() { document.getElementById("login-form").style.display = "block"; document.getElementById("email-form").style.display = "none"; }