diff options
| author | Joe Carstairs <65492573+Sycamost@users.noreply.github.com> | 2023-08-07 19:41:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-07 19:41:20 +0100 |
| commit | 500997042e98784c9d3b7a5ad684e36bf67cd0fa (patch) | |
| tree | bfa129cae6a2b981d5b6dc5c3cc16cfb2bc5c95a /api/createPaypalOrder.ts | |
| parent | 2fcbccfbd49c6eaf433272749e32589a6f490200 (diff) | |
| parent | e08094210c15ee0114ae4f11142aa5f89d81c7aa (diff) | |
Merge pull request #1 from Sycamost/master
Update
Diffstat (limited to 'api/createPaypalOrder.ts')
| -rw-r--r-- | api/createPaypalOrder.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/api/createPaypalOrder.ts b/api/createPaypalOrder.ts new file mode 100644 index 0000000..1a6e810 --- /dev/null +++ b/api/createPaypalOrder.ts @@ -0,0 +1,28 @@ +import type { VercelRequest, VercelResponse } from '@vercel/node'; +import type Order from './Order'; +import { paypalCreateOrder } from './_paypal'; + +export default async function handler(request: VercelRequest, response: VercelResponse) { + const { productDescription, shortDescription, totalPrice }: Partial<Order> = request.body; + + if (request.method !== 'POST') { + response.status(400); + return; + } + + if (!productDescription) { + response.status(400).send('Expected body to contain productDescription, but none provided.'); + } else if (!shortDescription) { + response.status(400).send('Expected body to contain shortDescription, but none provided.'); + } else if (!totalPrice) { + response.status(400).send('Expected body to contain totalPrice, but none provided.'); + } else { + const paypalResponse = await paypalCreateOrder({ productDescription, shortDescription, totalPrice }); + + if (paypalResponse.ok) { + response.status(200).json({ + orderId: paypalResponse.id, + }); + } + } +} |
