const API_BASE = "https://myapps_svr.patachina2.casacam.net"; // ------------------------------ // AUTH // ------------------------------ export async function login(email, password) { const res = await fetch(`${API_BASE}/auth/login`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ email, password }) }); const data = await res.json(); if (!res.ok) throw new Error(data.error || "Errore login"); return data.token; } export async function register(email, password) { const res = await fetch(`${API_BASE}/auth/register`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ email, password }) }); const data = await res.json(); if (!res.ok) throw new Error(data.error || "Errore registrazione"); return data; } // ------------------------------ // LINKS // ------------------------------ export async function getLinks(token) { const res = await fetch(`${API_BASE}/links`, { headers: { Authorization: `Bearer ${token}`, Accept: "application/json" } }); const data = await res.json(); if (!res.ok) throw new Error(data.error || "Errore caricamento link"); return data; } /*export async function createLink(token, { name, url, iconFile }) { const formData = new FormData(); formData.append("name", name); formData.append("url", url); if (iconFile) formData.append("icon", iconFile); const res = await fetch(`${API_BASE}/links`, { method: "POST", headers: { Authorization: `Bearer ${token}` }, body: formData }); const data = await res.json(); if (!res.ok) throw new Error(data.error || "Errore creazione link"); return data; }*/ export async function createLink(token, { name, url, iconFile, iconURL }) { const formData = new FormData(); formData.append("name", name); formData.append("url", url); if (iconFile) { formData.append("icon", iconFile); } if (iconURL) { formData.append("iconURL", iconURL); } const res = await fetch(`${API_BASE}/links`, { method: "POST", headers: { Authorization: `Bearer ${token}` }, body: formData }); const data = await res.json(); if (!res.ok) throw new Error(data.error || "Errore creazione link"); return data; } export async function deleteLink(token, id) { const res = await fetch(`${API_BASE}/links/${id}`, { method: "DELETE", headers: { Authorization: `Bearer ${token}` } }); const data = await res.json(); if (!res.ok) throw new Error(data.error || "Errore eliminazione link"); return data; } export async function updateLink(token, id, { name, url, iconFile }) { const formData = new FormData(); if (name) formData.append("name", name); if (url) formData.append("url", url); if (iconFile) formData.append("icon", iconFile); const res = await fetch(`${API_BASE}/links/${id}`, { method: "PUT", headers: { Authorization: `Bearer ${token}` }, body: formData }); const data = await res.json(); if (!res.ok) throw new Error(data.error || "Errore aggiornamento link"); return data; }