From 997e3566cb6e3a7d9c92eb9aa0224967df3cf057 Mon Sep 17 00:00:00 2001 From: olivermrbl Date: Wed, 17 Feb 2021 17:16:53 +0100 Subject: [PATCH] Add cart retrieval to draftorder --- .../admin/draft-orders/create-draft-order.js | 8 +++-- .../admin/draft-orders/get-draft-order.js | 31 +++++-------------- .../api/routes/admin/draft-orders/index.js | 21 ++++++------- .../admin/draft-orders/list-draft-orders.js | 2 +- .../admin/draft-orders/update-draft-order.js | 2 +- packages/medusa/src/services/draft-order.js | 2 ++ 6 files changed, 28 insertions(+), 38 deletions(-) diff --git a/packages/medusa/src/api/routes/admin/draft-orders/create-draft-order.js b/packages/medusa/src/api/routes/admin/draft-orders/create-draft-order.js index 4c09d54845..879a0be64d 100644 --- a/packages/medusa/src/api/routes/admin/draft-orders/create-draft-order.js +++ b/packages/medusa/src/api/routes/admin/draft-orders/create-draft-order.js @@ -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({}), }) diff --git a/packages/medusa/src/api/routes/admin/draft-orders/get-draft-order.js b/packages/medusa/src/api/routes/admin/draft-orders/get-draft-order.js index 71097d677c..719b166cb9 100644 --- a/packages/medusa/src/api/routes/admin/draft-orders/get-draft-order.js +++ b/packages/medusa/src/api/routes/admin/draft-orders/get-draft-order.js @@ -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 }) diff --git a/packages/medusa/src/api/routes/admin/draft-orders/index.js b/packages/medusa/src/api/routes/admin/draft-orders/index.js index ee4798f0d6..7c3e2f51c3 100644 --- a/packages/medusa/src/api/routes/admin/draft-orders/index.js +++ b/packages/medusa/src/api/routes/admin/draft-orders/index.js @@ -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", diff --git a/packages/medusa/src/api/routes/admin/draft-orders/list-draft-orders.js b/packages/medusa/src/api/routes/admin/draft-orders/list-draft-orders.js index 8caf133838..76161e933c 100644 --- a/packages/medusa/src/api/routes/admin/draft-orders/list-draft-orders.js +++ b/packages/medusa/src/api/routes/admin/draft-orders/list-draft-orders.js @@ -1,5 +1,5 @@ import _ from "lodash" -import { defaultRelations, defaultFields } from "./" +import { defaultFields, defaultRelations } from "./" export default async (req, res) => { try { diff --git a/packages/medusa/src/api/routes/admin/draft-orders/update-draft-order.js b/packages/medusa/src/api/routes/admin/draft-orders/update-draft-order.js index e214d64439..9652b9c11b 100644 --- a/packages/medusa/src/api/routes/admin/draft-orders/update-draft-order.js +++ b/packages/medusa/src/api/routes/admin/draft-orders/update-draft-order.js @@ -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" || diff --git a/packages/medusa/src/services/draft-order.js b/packages/medusa/src/services/draft-order.js index 6f50984b54..859fcecaeb 100644 --- a/packages/medusa/src/services/draft-order.js +++ b/packages/medusa/src/services/draft-order.js @@ -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