feat: enhance ComuniTable by adding nullable cap field

This commit is contained in:
Marco Pedone 2026-03-06 13:25:14 +01:00
parent 4f9a46d1d2
commit 572a5420c1
2 changed files with 80 additions and 67 deletions

View file

@ -35,80 +35,91 @@ const handler = async (
const createCaller = t.createCallerFactory(appRouter);
const caller = createCaller(ctx);
// Handle the event
switch (event.type) {
case "payment_intent.created": {
const paymentIntent = event.data.object;
const { id, metadata } = paymentIntent;
try {
// Handle the event
switch (event.type) {
case "payment_intent.created": {
const paymentIntent = event.data.object;
const { id, metadata } = paymentIntent;
if (!metadata) {
res.status(400).send("No metadata in payment intent");
return;
if (!metadata) {
res.status(400).send("No metadata in payment intent");
return;
}
if (
!metadata.paymentId ||
!(typeof metadata.paymentId === "string")
) {
res.status(400).send("No orderId or userId in metadata");
return;
}
await caller.stripe.whIntentCreated({
paymentId: metadata.paymentId as PaymentsId,
pIntentId: id,
});
break;
}
if (!metadata.paymentId || !(typeof metadata.paymentId === "string")) {
res.status(400).send("No orderId or userId in metadata");
return;
case "payment_intent.succeeded": {
const paymentIntent = event.data.object;
const { id, metadata } = paymentIntent;
if (!metadata) {
res.status(400).send("No metadata in payment intent");
return;
}
if (
!metadata.paymentId ||
!(typeof metadata.paymentId === "string")
) {
res.status(400).send("No orderId or userId in metadata");
return;
}
await caller.stripe.whIntentSucceeded({
paymentId: metadata.paymentId as PaymentsId,
pIntentId: id,
pm_id:
typeof paymentIntent.payment_method === "string"
? paymentIntent.payment_method
: "",
});
break;
}
case "payment_intent.canceled": {
const paymentIntent = event.data.object;
await caller.stripe.whIntentFailed({
pIntentId: paymentIntent.id,
});
break;
}
case "payment_intent.payment_failed": {
const paymentIntent = event.data.object;
await caller.stripe.whIntentFailed({
pIntentId: paymentIntent.id,
});
break;
}
case "payment_intent.processing": {
//const paymentIntent = event.data.object;
//console.log("PaymentIntent processing", paymentIntent);
break;
}
await caller.stripe.whIntentCreated({
paymentId: metadata.paymentId as PaymentsId,
pIntentId: id,
});
break;
}
case "payment_intent.succeeded": {
const paymentIntent = event.data.object;
const { id, metadata } = paymentIntent;
if (!metadata) {
res.status(400).send("No metadata in payment intent");
return;
}
if (!metadata.paymentId || !(typeof metadata.paymentId === "string")) {
res.status(400).send("No orderId or userId in metadata");
return;
}
await caller.stripe.whIntentSucceeded({
paymentId: metadata.paymentId as PaymentsId,
pIntentId: id,
pm_id:
typeof paymentIntent.payment_method === "string"
? paymentIntent.payment_method
: "",
});
break;
}
case "payment_intent.canceled": {
const paymentIntent = event.data.object;
await caller.stripe.whIntentFailed({
pIntentId: paymentIntent.id,
});
break;
}
case "payment_intent.payment_failed": {
const paymentIntent = event.data.object;
await caller.stripe.whIntentFailed({
pIntentId: paymentIntent.id,
});
break;
}
case "payment_intent.processing": {
//const paymentIntent = event.data.object;
//console.log("PaymentIntent processing", paymentIntent);
break;
default:
//console.log(`Unhandled event type: ${event.type}`);
break;
}
default:
//console.log(`Unhandled event type: ${event.type}`);
break;
res.status(200).json({ received: true });
} catch (error) {
console.error("Error handling webhook event:", error);
res.status(200).json({ received: true });
}
res.status(200).json({ received: true });
} else {
res.setHeader("Allow", "POST");
res.status(405).end("Method Not Allowed");

View file

@ -15,6 +15,8 @@ export default interface ComuniTable {
sigla: ColumnType<string, string, string>;
catasto: ColumnType<string, string, string>;
cap: ColumnType<string | null, string | null, string | null>;
}
export type Comuni = Selectable<ComuniTable>;