Add cart retrieval to draftorder

This commit is contained in:
olivermrbl
2021-02-17 17:16:53 +01:00
parent 362c5c6055
commit 997e3566cb
6 changed files with 28 additions and 38 deletions

View File

@@ -15,9 +15,13 @@ export default async (req, res) => {
shipping_address_id: Validator.string().optional(),
items: Validator.array()
.items({
variant_id: Validator.string().optional(),
variant_id: Validator.string()
.optional()
.allow(""),
unit_price: Validator.number().optional(),
title: Validator.string().optional(),
title: Validator.string()
.optional()
.allow(""),
quantity: Validator.number().required(),
metadata: Validator.object().default({}),
})

View File

@@ -1,4 +1,9 @@
import { defaultRelations, defaultFields } from "."
import {
defaultRelations,
defaultFields,
defaultCartRelations,
defaultCartFields,
} from "."
export default async (req, res) => {
const { id } = req.params
@@ -13,28 +18,8 @@ export default async (req, res) => {
})
draftOrder.cart = await cartService.retrieve(draftOrder.cart_id, {
relations: [
"gift_cards",
"region",
"items",
"payment",
"shipping_address",
"billing_address",
"region.countries",
"region.payment_providers",
"shipping_methods",
"payment_sessions",
"shipping_methods.shipping_option",
"discounts",
],
select: [
"subtotal",
"tax_total",
"shipping_total",
"discount_total",
"gift_card_total",
"total",
],
relations: defaultCartRelations,
select: defaultCartFields,
})
res.json({ draft_order: draftOrder })

View File

@@ -12,6 +12,8 @@ export default app => {
route.post("/", middlewares.wrap(require("./create-draft-order").default))
route.post("/:id", middlewares.wrap(require("./update-draft-order").default))
route.delete(
"/:id/line-items/:line_id",
middlewares.wrap(require("./delete-line-item").default)
@@ -32,7 +34,7 @@ export default app => {
return app
}
export const defaultRelations = []
export const defaultRelations = ["order", "cart"]
export const defaultCartRelations = [
"region",
@@ -48,16 +50,12 @@ export const defaultCartRelations = [
]
export const defaultCartFields = [
"region",
"items",
"payment",
"shipping_address",
"billing_address",
"region.payment_providers",
"shipping_methods",
"payment_sessions",
"shipping_methods.shipping_option",
"discounts",
"subtotal",
"tax_total",
"shipping_total",
"discount_total",
"gift_card_total",
"total",
]
export const defaultFields = [
@@ -65,6 +63,7 @@ export const defaultFields = [
"status",
"display_id",
"cart_id",
"order_id",
"canceled_at",
"created_at",
"updated_at",

View File

@@ -1,5 +1,5 @@
import _ from "lodash"
import { defaultRelations, defaultFields } from "./"
import { defaultFields, defaultRelations } from "./"
export default async (req, res) => {
try {

View File

@@ -34,7 +34,7 @@ export default async (req, res) => {
await entityManager.transaction(async manager => {
const draftOrder = await draftOrderService
.withTransaction(manager)
.retrieve(id, { select: defaultFields })
.retrieve(id)
if (
draftOrder.status === "completed" ||

View File

@@ -502,6 +502,8 @@ class DraftOrderService extends BaseService {
}
draftOrder.status = "completed"
draftOrder.order_id = result.id
console.log(draftOrder)
await draftOrderRepo.save(draftOrder)
return result