ChatGPT prompt for Mochi: "I need a serverless function that takes url params and applies a discount code to the price of tickets on a page in a React Typescript based AstroJS project . It will be hosted on Netlify."
// ./netlify/functions/apply_discount.ts
import { Handler } from '@netlify/functions';
const handler: Handler = async (event, context) => {
const params = event.queryStringParameters;
const discountCode = params.discount;
let ticketPrice = Number(params.price);
// Apply the discount code
if (discountCode === 'DISCOUNT10') {
ticketPrice *= 0.9;
} else if (discountCode === 'DISCOUNT20') {
ticketPrice *= 0.8;
}
// Returns the new ticket price
return {
statusCode: 200,
body: JSON.stringify({ ticketPrice }),
};
};
export { handler };
// ./src/components/TicketPrice.jsx
import { useEffect, useState } from 'react';
const TicketPrice = () => {
const [price, setPrice] = useState(null);
useEffect(() => {
const fetchPrice = async () => {
const response = await fetch('/.netlify/functions/apply_discount?discount=DISCOUNT10&price=100');
const data = await response.json();
setPrice(data.ticketPrice);
};
fetchPrice();
}, []);
if (price === null) return <div>Loading...</div>;
return <div>The discounted price is: {price}</div>;
};