diff options
Diffstat (limited to 'api/createPaypalOrder.ts')
| -rw-r--r-- | api/createPaypalOrder.ts | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/api/createPaypalOrder.ts b/api/createPaypalOrder.ts index 1a6e810..c0053d4 100644 --- a/api/createPaypalOrder.ts +++ b/api/createPaypalOrder.ts @@ -6,7 +6,7 @@ export default async function handler(request: VercelRequest, response: VercelRe const { productDescription, shortDescription, totalPrice }: Partial<Order> = request.body; if (request.method !== 'POST') { - response.status(400); + response.status(404); return; } @@ -17,12 +17,18 @@ export default async function handler(request: VercelRequest, response: VercelRe } else if (!totalPrice) { response.status(400).send('Expected body to contain totalPrice, but none provided.'); } else { - const paypalResponse = await paypalCreateOrder({ productDescription, shortDescription, totalPrice }); + try { + const paypalResponse = await paypalCreateOrder({ productDescription, shortDescription, totalPrice }); - if (paypalResponse.ok) { - response.status(200).json({ - orderId: paypalResponse.id, - }); + if (paypalResponse.ok) { + response.status(200).json({ + orderId: paypalResponse.id, + }); + } else { + throw new Error(`PayPal returned ${paypalResponse.statusCode} ${paypalResponse.statusMessage}`); + } + } catch (err) { + response.status(500).send(`Internal server error. ${err}`); } } } |
