Update storage.ts

This commit is contained in:
fcarraUniSa
2025-12-23 12:22:50 +01:00
committed by GitHub
parent 95b9a0f820
commit 3390bd8f17

View File

@@ -1,6 +1,22 @@
import { EmailTemplate } from '../types'; import { EmailTemplate } from '../types';
// Fallback for crypto.randomUUID in non-secure (HTTP) contexts
export const generateUUID = () => {
if (typeof crypto !== 'undefined' && crypto.randomUUID) {
try {
return crypto.randomUUID();
} catch (e) {
// Fallback if it exists but fails
}
}
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
const r = Math.random() * 16 | 0;
const v = c === 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
};
export const generateTemplateKey = (name: string): string => { export const generateTemplateKey = (name: string): string => {
return name.trim().toLowerCase().replace(/\s+/g, '_').replace(/[^a-z0-9_]/g, ''); return name.trim().toLowerCase().replace(/\s+/g, '_').replace(/[^a-z0-9_]/g, '');
}; };
@@ -66,6 +82,7 @@ return items;`;
}; };
export const getTemplates = async (): Promise<EmailTemplate[]> => { export const getTemplates = async (): Promise<EmailTemplate[]> => {
console.log("Fetching templates from /api/templates...");
const response = await fetch('/api/templates'); const response = await fetch('/api/templates');
if (!response.ok) { if (!response.ok) {
const errorBody = await response.text(); const errorBody = await response.text();
@@ -75,6 +92,7 @@ export const getTemplates = async (): Promise<EmailTemplate[]> => {
}; };
export const saveTemplate = async (template: EmailTemplate): Promise<void> => { export const saveTemplate = async (template: EmailTemplate): Promise<void> => {
console.log("Saving template to /api/templates...", template.name);
const response = await fetch('/api/templates', { const response = await fetch('/api/templates', {
method: 'POST', method: 'POST',
headers: { headers: {
@@ -84,8 +102,15 @@ export const saveTemplate = async (template: EmailTemplate): Promise<void> => {
}); });
if (!response.ok) { if (!response.ok) {
const errorData = await response.json().catch(() => ({})); let errorMessage = `Errore HTTP ${response.status}`;
throw new Error(errorData.details || errorData.error || `Salvataggio fallito con stato ${response.status}`); try {
const errorData = await response.json();
errorMessage = errorData.details || errorData.error || errorMessage;
} catch (e) {
const textError = await response.text();
if (textError) errorMessage = textError;
}
throw new Error(errorMessage);
} }
}; };