mirror of
https://github.com/vercel/commerce.git
synced 2025-07-26 11:41:23 +00:00
.vscode
assets
components
config
framework
bigcommerce
commerce
saleor
shopify
swell
vendure
api
endpoints
cart
catalog
checkout
index.ts
customer
login
logout
signup
wishlist
operations
utils
index.ts
auth
cart
customer
product
types
utils
wishlist
.env.template
README.md
codegen.json
commerce.config.json
fetcher.ts
index.tsx
next.config.js
provider.ts
schema.d.ts
schema.graphql
lib
pages
public
.editorconfig
.env.template
.gitignore
.prettierignore
.prettierrc
README.md
codegen.bigcommerce.json
codegen.json
commerce.config.json
global.d.ts
license.md
next-env.d.ts
next.config.js
package.json
postcss.config.js
tailwind.config.js
tsconfig.json
yarn.lock
59 lines
1.9 KiB
TypeScript
59 lines
1.9 KiB
TypeScript
import { NextApiHandler } from 'next'
|
|
import { CommerceAPI, createEndpoint, GetAPISchema } from '@commerce/api'
|
|
import { CheckoutSchema } from '@commerce/types/checkout'
|
|
import checkoutEndpoint from '@commerce/api/endpoints/checkout'
|
|
|
|
const checkout: CheckoutEndpoint['handlers']['checkout'] = async ({
|
|
req,
|
|
res,
|
|
config,
|
|
}) => {
|
|
try {
|
|
const html = `
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Checkout</title>
|
|
</head>
|
|
<body>
|
|
<div style='margin: 10rem auto; text-align: center; font-family: SansSerif, "Segoe UI", Helvetica; color: #888;'>
|
|
<svg xmlns="http://www.w3.org/2000/svg" style='height: 60px; width: 60px;' fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
|
|
</svg>
|
|
<h1>Checkout not yet implemented :(</h1>
|
|
<p>
|
|
See <a href='https://github.com/vercel/commerce/issues/64' target='_blank'>#64</a>
|
|
</p>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
`
|
|
|
|
res.status(200)
|
|
res.setHeader('Content-Type', 'text/html')
|
|
res.write(html)
|
|
res.end()
|
|
} catch (error) {
|
|
console.error(error)
|
|
|
|
const message = 'An unexpected error ocurred'
|
|
|
|
res.status(500).json({ data: null, errors: [{ message }] })
|
|
}
|
|
}
|
|
|
|
export type CheckoutAPI = GetAPISchema<CommerceAPI, CheckoutSchema>
|
|
|
|
export type CheckoutEndpoint = CheckoutAPI['endpoint']
|
|
|
|
export const handlers: CheckoutEndpoint['handlers'] = { checkout }
|
|
|
|
const checkoutApi = createEndpoint<CheckoutAPI>({
|
|
handler: checkoutEndpoint,
|
|
handlers,
|
|
})
|
|
|
|
export default checkoutApi
|