From 15bcc1d68c9dcb0bdc86cdd56576177806d1fca6 Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Mon, 21 Sep 2020 11:44:57 +0200 Subject: [PATCH] hotfix(medusa): shipping option metadata (#110) * hotfix(medusa): allow metadata update of shipping options * fix: typo --- .../admin/shipping-options/update-shipping-option.js | 11 +++++++++++ packages/medusa/src/services/shipping-option.js | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/medusa/src/api/routes/admin/shipping-options/update-shipping-option.js b/packages/medusa/src/api/routes/admin/shipping-options/update-shipping-option.js index 1218aa41b4..919d63ca73 100644 --- a/packages/medusa/src/api/routes/admin/shipping-options/update-shipping-option.js +++ b/packages/medusa/src/api/routes/admin/shipping-options/update-shipping-option.js @@ -1,3 +1,4 @@ +import _ from "lodash" import { MedusaError, Validator } from "medusa-core-utils" export default async (req, res) => { @@ -18,6 +19,7 @@ export default async (req, res) => { }) ) .optional(), + metadata: Validator.object().optional(), }) const { value, error } = schema.validate(req.body) @@ -27,7 +29,16 @@ export default async (req, res) => { try { const optionService = req.scope.resolve("shippingOptionService") + if (!_.isEmpty(value.metadata)) { + for (let key of Object.keys(value.metadata)) { + await optionService.setMetadata(option_id, key, value.metadata[key]) + } + + delete value.metadata + } + const data = await optionService.update(option_id, value) + res.status(200).json({ shipping_option: data }) } catch (err) { throw err diff --git a/packages/medusa/src/services/shipping-option.js b/packages/medusa/src/services/shipping-option.js index a1017bcb05..e55203c52f 100644 --- a/packages/medusa/src/services/shipping-option.js +++ b/packages/medusa/src/services/shipping-option.js @@ -226,7 +226,7 @@ class ShippingOptionService extends BaseService { * Validates a shipping option price * @param {ShippingOptionPrice} price - the price to validate * @param {ShippingOption} option - the option to validate against - * @return {ShippingOptionPrice} the validated price + * @return {Promise} the validated price */ async validatePrice_(price, option) { if (