George FitzGibbons 166bb037e4
Handle checkout for logged in users (#405)
* create a jwt token if there is a customerId, move the get customer id to the main utils folder.  Need to add in more value to the env file.  Updated the env sample.

* remove yarn.lock and tsconfig.json

* remove build settings

* remove build settings

* remove build settings

* Update tsconfig.json

* Delete package-lock.json

* fix typescript errors

* Update tsconfig.json

Co-authored-by: George Fitzgibbons <george.fitzgibbons@c02zw1aqlvdn.lan>
2021-07-01 13:21:01 -03:00

40 lines
1.0 KiB
TypeScript

import type { Wishlist } from '../../../types/wishlist'
import getCustomerWishlist from '../../operations/get-customer-wishlist'
import getCustomerId from '../../utils/get-customer-id'
import type { WishlistEndpoint } from '.'
// Return wishlist info
const removeItem: WishlistEndpoint['handlers']['removeItem'] = async ({
res,
body: { customerToken, itemId },
config,
commerce,
}) => {
const customerId =
customerToken && (await getCustomerId({ customerToken, config }))
const { wishlist } =
(customerId &&
(await commerce.getCustomerWishlist({
variables: { customerId },
config,
}))) ||
{}
if (!wishlist || !itemId) {
return res.status(400).json({
data: null,
errors: [{ message: 'Invalid request' }],
})
}
const result = await config.storeApiFetch<{ data: Wishlist } | null>(
`/v3/wishlists/${wishlist.id}/items/${itemId}`,
{ method: 'DELETE' }
)
const data = result?.data ?? null
res.status(200).json({ data })
}
export default removeItem