dash-registratori/src/app/api/clienti/route.ts

66 lines
1.7 KiB
TypeScript

import { Modello, PrismaClient } from "@/generated/prisma";
export async function GET(request: Request) {
const prisma = new PrismaClient();
const clients = await prisma.cliente.findMany({
include: {
registratori: {
include: {
interventi: true,
},
},
},
});
return Response.json({ clients });
}
function extractLatLonFromGmapsUrl(url: string) {
// Usa una regex per cercare la latitudine e la longitudine nell'URL
const regex = /@(-?\d+\.\d+),(-?\d+\.\d+)/;
const match = url.match(regex);
if (match) {
const lat = parseFloat(match[1]);
const lon = parseFloat(match[2]);
return [lat, lon]; // Restituisce un array con latitudine e longitudine
} else {
return [0, 0]; // Se non trova latitudine e longitudine
}
}
export async function POST(request: Request) {
const prisma = new PrismaClient();
const data = await request.json();
const [lat, lon] = extractLatLonFromGmapsUrl(data.sede_url);
await prisma.cliente.create({
data: {
contratto: data.contratto,
email: data.email,
partita_iva: data.partita_iva,
ragione_sociale: data.ragione_sociale,
sede: data.sede,
sede_url: data.sede_url,
telefono: data.telefono,
lat: lat,
lon: lon,
/*registratori: {
create: {
id: "80E1758414",
modello: Modello.FORM100,
interventi: {
create: {
data: new Date("2025-10-30"),
fattura: true,
lavoro: "Boh, cazzeggiato tutto il tempo",
},
},
},
},*/
},
});
return Response.json({ message: "fatto bastardo" });
}