From ee00bd27e4bfb6fda31fa17624f3f1d217690a00 Mon Sep 17 00:00:00 2001 From: olivermrbl Date: Tue, 25 Aug 2020 13:24:35 +0200 Subject: [PATCH] Adds decoration for admin endpoints --- .../src/api/routes/admin/customers/get-customer.js | 11 ++++++----- .../medusa/src/api/routes/admin/orders/get-order.js | 7 ++++++- .../admin/shipping-profiles/get-shipping-profile.js | 8 +++++++- packages/medusa/src/services/shipping-profile.js | 4 ++-- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/packages/medusa/src/api/routes/admin/customers/get-customer.js b/packages/medusa/src/api/routes/admin/customers/get-customer.js index 98efd486c3..c028d89795 100644 --- a/packages/medusa/src/api/routes/admin/customers/get-customer.js +++ b/packages/medusa/src/api/routes/admin/customers/get-customer.js @@ -3,11 +3,12 @@ export default async (req, res) => { try { const customerService = req.scope.resolve("customerService") let customer = await customerService.retrieve(id) - customer = customerService.decorate(customer, [ - "email", - "first_name", - "last_name", - ]) + customer = await customerService.decorate( + customer, + ["email", "payment_methods", "has_account", "shipping_addresses"], + ["orders"] + ) + res.json({ customer }) } catch (err) { throw err diff --git a/packages/medusa/src/api/routes/admin/orders/get-order.js b/packages/medusa/src/api/routes/admin/orders/get-order.js index d3912b871e..3523bef558 100644 --- a/packages/medusa/src/api/routes/admin/orders/get-order.js +++ b/packages/medusa/src/api/routes/admin/orders/get-order.js @@ -3,9 +3,14 @@ export default async (req, res) => { try { const orderService = req.scope.resolve("orderService") + const customerService = req.scope.resolve("customerService") let order = await orderService.retrieve(id) - order = await orderService.decorate(order, [], ["region"]) + order = await orderService.decorate(order, [], ["region", "customer"]) + + if (order.customer_id) { + order.customer = await customerService.retrieve(order.customer_id) + } res.json({ order }) } catch (error) { diff --git a/packages/medusa/src/api/routes/admin/shipping-profiles/get-shipping-profile.js b/packages/medusa/src/api/routes/admin/shipping-profiles/get-shipping-profile.js index c0240442a1..9c0adad813 100644 --- a/packages/medusa/src/api/routes/admin/shipping-profiles/get-shipping-profile.js +++ b/packages/medusa/src/api/routes/admin/shipping-profiles/get-shipping-profile.js @@ -5,7 +5,13 @@ export default async (req, res) => { const data = await profileService.retrieve(profile_id) - res.status(200).json({ shipping_profile: data }) + const profile = await profileService.decorate( + data, + ["name"], + ["products", "shipping_options"] + ) + + res.status(200).json({ shipping_profile: profile }) } catch (err) { throw err } diff --git a/packages/medusa/src/services/shipping-profile.js b/packages/medusa/src/services/shipping-profile.js index ec63af4698..a6fdb668d1 100644 --- a/packages/medusa/src/services/shipping-profile.js +++ b/packages/medusa/src/services/shipping-profile.js @@ -333,13 +333,13 @@ class ShippingProfileService extends BaseService { const requiredFields = ["_id", "metadata"] let decorated = _.pick(profile, fields.concat(requiredFields)) - if (expandFields.includes("products")) { + if (expandFields.includes("products") && profile.products) { decorated.products = await Promise.all( profile.products.map(pId => this.productService_.retrieve(pId)) ) } - if (expandFields.includes("shipping_options")) { + if (expandFields.includes("shipping_options") && profile.shipping_options) { decorated.shipping_options = await Promise.all( profile.shipping_options.map(oId => this.shippingOptionService_.retrieve(oId)