Add cart retrieval to draftorder

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

No files matched your search

@@ -15,9 +15,13 @@ export default async (req, res) => {
shipping_address_id: Validator.string().optional(), shipping_address_id: Validator.string().optional(),
items: Validator.array() items: Validator.array()
.items({ .items({
variant_id: Validator.string().optional(), variant_id: Validator.string()
.optional()
.allow(""),
unit_price: Validator.number().optional(), unit_price: Validator.number().optional(),
title: Validator.string().optional(), title: Validator.string()
.optional()
.allow(""),
quantity: Validator.number().required(), quantity: Validator.number().required(),
metadata: Validator.object().default({}), metadata: Validator.object().default({}),
}) })
@@ -1,4 +1,9 @@
import { defaultRelations, defaultFields } from "." import {
defaultRelations,
defaultFields,
defaultCartRelations,
defaultCartFields,
} from "."
export default async (req, res) => { export default async (req, res) => {
const { id } = req.params const { id } = req.params
@@ -13,28 +18,8 @@ export default async (req, res) => {
}) })
draftOrder.cart = await cartService.retrieve(draftOrder.cart_id, { draftOrder.cart = await cartService.retrieve(draftOrder.cart_id, {
relations: [ relations: defaultCartRelations,
"gift_cards", select: defaultCartFields,
"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",
],
}) })
res.json({ draft_order: draftOrder }) res.json({ draft_order: draftOrder })
@@ -12,6 +12,8 @@ export default app => {
route.post("/", middlewares.wrap(require("./create-draft-order").default)) route.post("/", middlewares.wrap(require("./create-draft-order").default))
route.post("/:id", middlewares.wrap(require("./update-draft-order").default))
route.delete( route.delete(
"/:id/line-items/:line_id", "/:id/line-items/:line_id",
middlewares.wrap(require("./delete-line-item").default) middlewares.wrap(require("./delete-line-item").default)
@@ -32,7 +34,7 @@ export default app => {
return app return app
} }
export const defaultRelations = [] export const defaultRelations = ["order", "cart"]
export const defaultCartRelations = [ export const defaultCartRelations = [
"region", "region",
@@ -48,16 +50,12 @@ export const defaultCartRelations = [
] ]
export const defaultCartFields = [ export const defaultCartFields = [
"region", "subtotal",
"items", "tax_total",
"payment", "shipping_total",
"shipping_address", "discount_total",
"billing_address", "gift_card_total",
"region.payment_providers", "total",
"shipping_methods",
"payment_sessions",
"shipping_methods.shipping_option",
"discounts",
] ]
export const defaultFields = [ export const defaultFields = [
@@ -65,6 +63,7 @@ export const defaultFields = [
"status", "status",
"display_id", "display_id",
"cart_id", "cart_id",
"order_id",
"canceled_at", "canceled_at",
"created_at", "created_at",
"updated_at", "updated_at",
@@ -1,5 +1,5 @@
import _ from "lodash" import _ from "lodash"
import { defaultRelations, defaultFields } from "./" import { defaultFields, defaultRelations } from "./"
export default async (req, res) => { export default async (req, res) => {
try { try {
@@ -34,7 +34,7 @@ export default async (req, res) => {
await entityManager.transaction(async manager => { await entityManager.transaction(async manager => {
const draftOrder = await draftOrderService const draftOrder = await draftOrderService
.withTransaction(manager) .withTransaction(manager)
.retrieve(id, { select: defaultFields }) .retrieve(id)
if ( if (
draftOrder.status === "completed" || draftOrder.status === "completed" ||
@@ -502,6 +502,8 @@ class DraftOrderService extends BaseService {
} }
draftOrder.status = "completed" draftOrder.status = "completed"
draftOrder.order_id = result.id
console.log(draftOrder)
await draftOrderRepo.save(draftOrder) await draftOrderRepo.save(draftOrder)
return result return result