66 lines
1.7 KiB
TypeScript
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" });
|
|
}
|