fix(medusa-plugin-economic,medusa-plugin-mailchimp,medusa-plugin-restock-notification,medusa-plugin-sendgrid,medusa-plugin-wishlist): Temporarily remove payload validation in some plugins (#3763)
* Temporarily remove payload validation in some plugins * Add changeset * chore: Remove commented out code * Revert discount generator plugin --------- Co-authored-by: olivermrbl <oliver@mrbltech.com> Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
10
.changeset/polite-lamps-suffer.md
Normal file
10
.changeset/polite-lamps-suffer.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
"medusa-plugin-discount-generator": patch
|
||||
"medusa-plugin-economic": patch
|
||||
"medusa-plugin-mailchimp": patch
|
||||
"medusa-plugin-restock-notification": patch
|
||||
"medusa-plugin-sendgrid": patch
|
||||
"medusa-plugin-wishlist": patch
|
||||
---
|
||||
|
||||
fix(plugin-discount-generator,plugin-economic,plugin-mailchimp,plugin-restock-notification,plugin-sendgrid,plugin-wishlist): Temporarily remove payload validation in some plugins
|
||||
@@ -1,18 +1,5 @@
|
||||
export default async (req, res) => {
|
||||
const schema = Validator.object().keys({
|
||||
orderId: Validator.string().required(),
|
||||
})
|
||||
|
||||
const { value, error } = schema.validate(req.body)
|
||||
if (error) {
|
||||
throw new MedusaError(MedusaError.Types.INVALID_DATA, error.details)
|
||||
}
|
||||
|
||||
try {
|
||||
const economicService = req.scope.resolve("economicService")
|
||||
await economicService.bookEconomicInvoice(value.orderId)
|
||||
res.sendStatus(200)
|
||||
} catch (error) {
|
||||
throw error
|
||||
}
|
||||
const economicService = req.scope.resolve("economicService")
|
||||
await economicService.bookEconomicInvoice(req.body.orderId)
|
||||
res.sendStatus(200)
|
||||
}
|
||||
|
||||
@@ -1,18 +1,5 @@
|
||||
export default async (req, res) => {
|
||||
const schema = Validator.object().keys({
|
||||
orderId: Validator.string().required(),
|
||||
})
|
||||
|
||||
const { value, error } = schema.validate(req.body)
|
||||
if (error) {
|
||||
throw new MedusaError(MedusaError.Types.INVALID_DATA, error.details)
|
||||
}
|
||||
|
||||
try {
|
||||
const economicService = req.scope.resolve("economicService")
|
||||
await economicService.draftEconomicInvoice(value.orderId)
|
||||
res.sendStatus(200)
|
||||
} catch (error) {
|
||||
throw error
|
||||
}
|
||||
const economicService = req.scope.resolve("economicService")
|
||||
await economicService.draftEconomicInvoice(req.body.orderId)
|
||||
res.sendStatus(200)
|
||||
}
|
||||
|
||||
@@ -1,22 +1,8 @@
|
||||
import { Validator, MedusaError } from "medusa-core-utils"
|
||||
|
||||
export default async (req, res) => {
|
||||
const schema = Validator.object().keys({
|
||||
email: Validator.string().required(),
|
||||
data: Validator.object().default({}),
|
||||
})
|
||||
|
||||
const { value, error } = schema.validate(req.body)
|
||||
if (error) {
|
||||
throw new MedusaError(MedusaError.Types.INVALID_DATA, error.details)
|
||||
}
|
||||
console.log(value)
|
||||
|
||||
try {
|
||||
const mailchimpService = req.scope.resolve("mailchimpService")
|
||||
await mailchimpService.subscribeNewsletter(value.email, value.data)
|
||||
res.sendStatus(200)
|
||||
} catch (err) {
|
||||
throw err
|
||||
}
|
||||
const mailchimpService = req.scope.resolve("mailchimpService")
|
||||
await mailchimpService.subscribeNewsletter(
|
||||
req.body.email,
|
||||
req.body.data || {}
|
||||
)
|
||||
res.sendStatus(200)
|
||||
}
|
||||
|
||||
@@ -1,23 +1,10 @@
|
||||
import { Validator, MedusaError } from "medusa-core-utils"
|
||||
|
||||
export default async (req, res) => {
|
||||
const { variant_id } = req.params
|
||||
|
||||
const schema = Validator.object().keys({
|
||||
email: Validator.string().required(),
|
||||
})
|
||||
|
||||
const { value, error } = schema.validate(req.body)
|
||||
if (error) {
|
||||
res.status(400).json({ message: error.message })
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
const restockNotificationService = req.scope.resolve(
|
||||
"restockNotificationService"
|
||||
)
|
||||
await restockNotificationService.addEmail(variant_id, value.email)
|
||||
await restockNotificationService.addEmail(variant_id, req.body.email)
|
||||
res.sendStatus(201)
|
||||
} catch (err) {
|
||||
res.status(400).json({ message: err.message })
|
||||
|
||||
@@ -1,28 +1,10 @@
|
||||
import { Validator, MedusaError } from "medusa-core-utils"
|
||||
|
||||
export default async (req, res) => {
|
||||
const schema = Validator.object().keys({
|
||||
template_id: Validator.string().required(),
|
||||
from: Validator.string().required(),
|
||||
to: Validator.string().required(),
|
||||
data: Validator.object().optional().default({}),
|
||||
})
|
||||
|
||||
const { value, error } = schema.validate(req.body)
|
||||
if (error) {
|
||||
throw new MedusaError(MedusaError.Types.INVALID_DATA, error.details)
|
||||
}
|
||||
|
||||
try {
|
||||
const sendgridService = req.scope.resolve("sendgridService")
|
||||
await sendgridService.sendEmail(
|
||||
value.template_id,
|
||||
value.from,
|
||||
value.to,
|
||||
value.data
|
||||
)
|
||||
res.sendStatus(200)
|
||||
} catch (err) {
|
||||
throw err
|
||||
}
|
||||
const sendgridService = req.scope.resolve("sendgridService")
|
||||
await sendgridService.sendEmail(
|
||||
req.body.template_id,
|
||||
req.body.from,
|
||||
req.body.to,
|
||||
req.body.data || {}
|
||||
)
|
||||
res.sendStatus(200)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Router } from "express"
|
||||
import bodyParser from "body-parser"
|
||||
import { Validator, MedusaError } from "medusa-core-utils"
|
||||
import { Router } from "express"
|
||||
import jwt from "jsonwebtoken"
|
||||
import { MedusaError } from "medusa-core-utils"
|
||||
|
||||
const JWT_SECRET = process.env.JWT_SECRET || ""
|
||||
|
||||
@@ -9,99 +9,67 @@ export default () => {
|
||||
const app = Router()
|
||||
|
||||
app.delete("/:id/wishlist", bodyParser.json(), async (req, res) => {
|
||||
const schema = Validator.object().keys({
|
||||
index: Validator.number().required(),
|
||||
const customerService = req.scope.resolve("customerService")
|
||||
|
||||
let customer = await customerService.retrieve(req.params.id)
|
||||
const wishlist = (customer.metadata && customer.metadata.wishlist) || []
|
||||
|
||||
const newWishlist = [...wishlist]
|
||||
newWishlist.splice(req.body.index, 1)
|
||||
|
||||
customer = await customerService.update(customer.id, {
|
||||
metadata: { wishlist: newWishlist },
|
||||
})
|
||||
|
||||
const { value, error } = schema.validate(req.body)
|
||||
if (error) {
|
||||
throw new MedusaError(MedusaError.Types.INVALID_DATA, error.details)
|
||||
}
|
||||
|
||||
try {
|
||||
const customerService = req.scope.resolve("customerService")
|
||||
|
||||
let customer = await customerService.retrieve(req.params.id)
|
||||
const wishlist = (customer.metadata && customer.metadata.wishlist) || []
|
||||
|
||||
const newWishlist = [...wishlist]
|
||||
newWishlist.splice(value.index, 1)
|
||||
|
||||
customer = await customerService.update(customer.id, {
|
||||
metadata: { wishlist: newWishlist },
|
||||
})
|
||||
|
||||
res.json({ customer })
|
||||
} catch (err) {
|
||||
throw err
|
||||
}
|
||||
res.json({ customer })
|
||||
})
|
||||
|
||||
app.post("/:id/wishlist", bodyParser.json(), async (req, res) => {
|
||||
const schema = Validator.object().keys({
|
||||
variant_id: Validator.string().required(),
|
||||
quantity: Validator.number().required(),
|
||||
metadata: Validator.object().optional(),
|
||||
})
|
||||
const lineItemService = req.scope.resolve("lineItemService")
|
||||
const customerService = req.scope.resolve("customerService")
|
||||
const regionService = req.scope.resolve("regionService")
|
||||
|
||||
const { value, error } = schema.validate(req.body)
|
||||
if (error) {
|
||||
throw new MedusaError(MedusaError.Types.INVALID_DATA, error.details)
|
||||
let customer = await customerService.retrieve(req.params.id)
|
||||
|
||||
const regions = await regionService.list()
|
||||
if (regions.length) {
|
||||
const lineItem = await lineItemService.generate(
|
||||
req.body.variant_id,
|
||||
regions[0].id,
|
||||
req.body.quantity,
|
||||
{ metadata: req.body.metadata }
|
||||
)
|
||||
|
||||
const wishlist = (customer.metadata && customer.metadata.wishlist) || []
|
||||
customer = await customerService.update(customer.id, {
|
||||
metadata: { wishlist: [...wishlist, lineItem] },
|
||||
})
|
||||
}
|
||||
|
||||
try {
|
||||
const lineItemService = req.scope.resolve("lineItemService")
|
||||
const customerService = req.scope.resolve("customerService")
|
||||
const regionService = req.scope.resolve("regionService")
|
||||
|
||||
let customer = await customerService.retrieve(req.params.id)
|
||||
|
||||
const regions = await regionService.list()
|
||||
if (regions.length) {
|
||||
const lineItem = await lineItemService.generate(
|
||||
value.variant_id,
|
||||
regions[0].id,
|
||||
value.quantity,
|
||||
{ metadata: value.metadata }
|
||||
)
|
||||
|
||||
const wishlist = (customer.metadata && customer.metadata.wishlist) || []
|
||||
customer = await customerService.update(customer.id, {
|
||||
metadata: { wishlist: [...wishlist, lineItem] },
|
||||
})
|
||||
}
|
||||
|
||||
res.json({ customer })
|
||||
} catch (err) {
|
||||
throw err
|
||||
}
|
||||
res.json({ customer })
|
||||
})
|
||||
|
||||
app.post("/:id/wishlist/share-token", bodyParser.json(), async (req, res) => {
|
||||
try {
|
||||
const customerService = req.scope.resolve("customerService")
|
||||
const customerService = req.scope.resolve("customerService")
|
||||
|
||||
let customer = await customerService.retrieve(req.params.id)
|
||||
const customer = await customerService.retrieve(req.params.id)
|
||||
|
||||
// check customer has wishlist else throw 400 bad request
|
||||
if (!customer?.metadata?.wishlist) {
|
||||
throw new MedusaError(
|
||||
Medusa.Types.INVALID_DATA,
|
||||
"Invalid data - Customer doesn't have a wishlist"
|
||||
)
|
||||
}
|
||||
|
||||
const token = jwt.sign(
|
||||
{
|
||||
customer_id: customer.id,
|
||||
},
|
||||
JWT_SECRET
|
||||
// check customer has wishlist else throw 400 bad request
|
||||
if (!customer?.metadata?.wishlist) {
|
||||
throw new MedusaError(
|
||||
MedusaError.Types.INVALID_DATA,
|
||||
"Invalid data - Customer doesn't have a wishlist"
|
||||
)
|
||||
|
||||
res.json({ share_token: token })
|
||||
} catch (err) {
|
||||
throw err
|
||||
}
|
||||
|
||||
const token = jwt.sign(
|
||||
{
|
||||
customer_id: customer.id,
|
||||
},
|
||||
JWT_SECRET
|
||||
)
|
||||
|
||||
res.json({ share_token: token })
|
||||
})
|
||||
|
||||
return app
|
||||
|
||||
Reference in New Issue
Block a user