feat(MED-131): update location in action so cart is always reloaded properly
This commit is contained in:
38
app/home/(user)/_lib/server/update-cart-partner-location.ts
Normal file
38
app/home/(user)/_lib/server/update-cart-partner-location.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
"use server";
|
||||
|
||||
import { retrieveCart, updateCart, updateLineItem } from "@lib/data/cart";
|
||||
|
||||
export const updateCartPartnerLocation = async ({
|
||||
cartId,
|
||||
lineIds,
|
||||
partnerLocationId,
|
||||
partnerLocationName,
|
||||
}: {
|
||||
cartId: string;
|
||||
lineIds: string[];
|
||||
partnerLocationId: string;
|
||||
partnerLocationName: string;
|
||||
}) => {
|
||||
const cart = await retrieveCart(cartId);
|
||||
if (!cart) {
|
||||
throw new Error("Cart not found");
|
||||
}
|
||||
|
||||
for (const lineItemId of lineIds) {
|
||||
await updateLineItem({
|
||||
lineId: lineItemId,
|
||||
quantity: 1,
|
||||
metadata: {
|
||||
partner_location_name: partnerLocationName,
|
||||
partner_location_id: partnerLocationId,
|
||||
},
|
||||
});
|
||||
}
|
||||
await updateCart({
|
||||
id: cartId,
|
||||
metadata: {
|
||||
partner_location_name: partnerLocationName,
|
||||
partner_location_id: partnerLocationId,
|
||||
},
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user