diff --git a/.eslintignore b/.eslintignore index 642c2782f3..6b0e77befa 100644 --- a/.eslintignore +++ b/.eslintignore @@ -29,9 +29,43 @@ /packages/medusa/src/loaders/services.js /packages/medusa/src/loaders/subscribers.js +/packages/medusa/src/api/routes/admin/apps +/packages/medusa/src/api/routes/admin/auth +/packages/medusa/src/api/routes/admin/collections +/packages/medusa/src/api/routes/admin/customers +/packages/medusa/src/api/routes/admin/discounts +/packages/medusa/src/api/routes/admin/draft-orders +/packages/medusa/src/api/routes/admin/gift-cards +/packages/medusa/src/api/routes/admin/notes +/packages/medusa/src/api/routes/admin/notifications +/packages/medusa/src/api/routes/admin/orders +/packages/medusa/src/api/routes/admin/products +/packages/medusa/src/api/routes/admin/regions +/packages/medusa/src/api/routes/admin/return-reasons +/packages/medusa/src/api/routes/admin/returns +/packages/medusa/src/api/routes/admin/shipping-options +/packages/medusa/src/api/routes/admin/shipping-profiles +/packages/medusa/src/api/routes/admin/store +/packages/medusa/src/api/routes/admin/swaps +/packages/medusa/src/api/routes/admin/uploads +/packages/medusa/src/api/routes/admin/users +/packages/medusa/src/api/routes/admin/variants + +/packages/medusa/src/api/routes/store/auth +/packages/medusa/src/api/routes/store/carts +/packages/medusa/src/api/routes/store/customers +/packages/medusa/src/api/routes/store/gift-cards +/packages/medusa/src/api/routes/store/orders +/packages/medusa/src/api/routes/store/products +/packages/medusa/src/api/routes/store/regions +/packages/medusa/src/api/routes/store/return-reasons +/packages/medusa/src/api/routes/store/returns +/packages/medusa/src/api/routes/store/shipping-options +/packages/medusa/src/api/routes/store/swaps +/packages/medusa/src/api/routes/store/variants + # END OF FILES TODO -/packages/medusa/src/api /packages/medusa/src/models /packages/medusa/src/repositories /packages/medusa/src/commands diff --git a/.eslintrc.js b/.eslintrc.js index c40421efa9..5d1b40e35e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -29,5 +29,11 @@ module.exports = { plugins: [`@typescript-eslint/eslint-plugin`], extends: [`plugin:@typescript-eslint/recommended`], }, + { + files: ["**/api/**/*.js"], + rules: { + "valid-jsdoc": ["off"], + }, + }, ], } diff --git a/packages/medusa/src/api/middlewares/await-middleware.js b/packages/medusa/src/api/middlewares/await-middleware.js index 419062c2ee..ca4821e6af 100644 --- a/packages/medusa/src/api/middlewares/await-middleware.js +++ b/packages/medusa/src/api/middlewares/await-middleware.js @@ -1 +1,3 @@ -export default fn => (...args) => fn(...args).catch(args[2]) +export default (fn) => + (...args) => + fn(...args).catch(args[2]) diff --git a/packages/medusa/src/api/routes/admin/users/create-user.js b/packages/medusa/src/api/routes/admin/users/create-user.js index 76bd406bbe..ba9751a945 100644 --- a/packages/medusa/src/api/routes/admin/users/create-user.js +++ b/packages/medusa/src/api/routes/admin/users/create-user.js @@ -3,9 +3,7 @@ import _ from "lodash" export default async (req, res) => { const schema = Validator.object().keys({ - email: Validator.string() - .email() - .required(), + email: Validator.string().email().required(), name: Validator.string().optional(), password: Validator.string().required(), }) diff --git a/packages/medusa/src/api/routes/admin/users/index.js b/packages/medusa/src/api/routes/admin/users/index.js index ee77035715..459639c977 100644 --- a/packages/medusa/src/api/routes/admin/users/index.js +++ b/packages/medusa/src/api/routes/admin/users/index.js @@ -3,7 +3,7 @@ import middlewares from "../../../middlewares" const route = Router() -export default app => { +export default (app) => { app.use("/users", route) route.get("/", middlewares.wrap(require("./list-users").default)) diff --git a/packages/medusa/src/api/routes/admin/users/reset-password-token.js b/packages/medusa/src/api/routes/admin/users/reset-password-token.js index 2803a0e674..ad9951350b 100644 --- a/packages/medusa/src/api/routes/admin/users/reset-password-token.js +++ b/packages/medusa/src/api/routes/admin/users/reset-password-token.js @@ -2,9 +2,7 @@ import { MedusaError, Validator } from "medusa-core-utils" export default async (req, res) => { const schema = Validator.object().keys({ - email: Validator.string() - .email() - .required(), + email: Validator.string().email().required(), }) const { value, error } = schema.validate(req.body) diff --git a/packages/medusa/src/api/routes/admin/users/reset-password.js b/packages/medusa/src/api/routes/admin/users/reset-password.js index 76e2b078c4..a241aa2cae 100644 --- a/packages/medusa/src/api/routes/admin/users/reset-password.js +++ b/packages/medusa/src/api/routes/admin/users/reset-password.js @@ -3,9 +3,7 @@ import jwt from "jsonwebtoken" export default async (req, res) => { const schema = Validator.object().keys({ - email: Validator.string() - .email() - .required(), + email: Validator.string().email().required(), token: Validator.string().required(), password: Validator.string().required(), }) @@ -17,7 +15,7 @@ export default async (req, res) => { try { const userService = req.scope.resolve("userService") - let user = await userService.retrieveByEmail(value.email) + const user = await userService.retrieveByEmail(value.email) const decodedToken = await jwt.verify(value.token, user.password_hash) if (!decodedToken || decodedToken.user_id !== user.id) { diff --git a/packages/medusa/src/api/routes/store/auth/index.js b/packages/medusa/src/api/routes/store/auth/index.js index bcc2f8334a..5cfb274b20 100644 --- a/packages/medusa/src/api/routes/store/auth/index.js +++ b/packages/medusa/src/api/routes/store/auth/index.js @@ -3,7 +3,7 @@ import middlewares from "../../../middlewares" const route = Router() -export default app => { +export default (app) => { app.use("/auth", route) route.get( diff --git a/packages/medusa/src/api/routes/store/carts/add-shipping-method.js b/packages/medusa/src/api/routes/store/carts/add-shipping-method.js index a52e531519..0b46653bbf 100644 --- a/packages/medusa/src/api/routes/store/carts/add-shipping-method.js +++ b/packages/medusa/src/api/routes/store/carts/add-shipping-method.js @@ -28,9 +28,7 @@ export default async (req, res) => { const schema = Validator.object().keys({ option_id: Validator.string().required(), - data: Validator.object() - .optional() - .default({}), + data: Validator.object().optional().default({}), }) const { value, error } = schema.validate(req.body) @@ -42,7 +40,7 @@ export default async (req, res) => { const manager = req.scope.resolve("manager") const cartService = req.scope.resolve("cartService") - await manager.transaction(async m => { + await manager.transaction(async (m) => { const txCartService = cartService.withTransaction(m) await txCartService.addShippingMethod(id, value.option_id, value.data) diff --git a/packages/medusa/src/api/routes/store/carts/complete-cart.js b/packages/medusa/src/api/routes/store/carts/complete-cart.js index 5ed859b16b..aad91a4a76 100644 --- a/packages/medusa/src/api/routes/store/carts/complete-cart.js +++ b/packages/medusa/src/api/routes/store/carts/complete-cart.js @@ -70,7 +70,7 @@ export default async (req, res) => { case "started": { const { key, error } = await idempotencyKeyService.workStage( idempotencyKey.idempotency_key, - async manager => { + async (manager) => { let cart = await cartService.withTransaction(manager).retrieve(id) if (cart.completed_at) { @@ -125,7 +125,7 @@ export default async (req, res) => { case "payment_authorized": { const { key, error } = await idempotencyKeyService.workStage( idempotencyKey.idempotency_key, - async manager => { + async (manager) => { const cart = await cartService .withTransaction(manager) .retrieve(id, { diff --git a/packages/medusa/src/api/routes/store/carts/create-cart.js b/packages/medusa/src/api/routes/store/carts/create-cart.js index eb3ac34cec..e614a0e1a0 100644 --- a/packages/medusa/src/api/routes/store/carts/create-cart.js +++ b/packages/medusa/src/api/routes/store/carts/create-cart.js @@ -76,7 +76,7 @@ export default async (req, res) => { const entityManager = req.scope.resolve("manager") - await entityManager.transaction(async manager => { + await entityManager.transaction(async (manager) => { // Add a default region if no region has been specified let regionId = value.region_id if (!value.region_id) { @@ -119,7 +119,7 @@ export default async (req, res) => { let cart = await cartService.withTransaction(manager).create(toCreate) if (value.items) { await Promise.all( - value.items.map(async i => { + value.items.map(async (i) => { await lineItemService.withTransaction(manager).create({ cart_id: cart.id, variant_id: i.variant_id, diff --git a/packages/medusa/src/api/routes/store/carts/create-line-item.js b/packages/medusa/src/api/routes/store/carts/create-line-item.js index 3d4dfc8482..c3d5a66cfb 100644 --- a/packages/medusa/src/api/routes/store/carts/create-line-item.js +++ b/packages/medusa/src/api/routes/store/carts/create-line-item.js @@ -43,7 +43,7 @@ export default async (req, res) => { const lineItemService = req.scope.resolve("lineItemService") const cartService = req.scope.resolve("cartService") - await manager.transaction(async m => { + await manager.transaction(async (m) => { const txCartService = cartService.withTransaction(m) const cart = await txCartService.retrieve(id) diff --git a/packages/medusa/src/api/routes/store/carts/delete-discount.js b/packages/medusa/src/api/routes/store/carts/delete-discount.js index cd19d1a497..0e8b1c4180 100644 --- a/packages/medusa/src/api/routes/store/carts/delete-discount.js +++ b/packages/medusa/src/api/routes/store/carts/delete-discount.js @@ -27,7 +27,7 @@ export default async (req, res) => { const manager = req.scope.resolve("manager") const cartService = req.scope.resolve("cartService") - await manager.transaction(async m => { + await manager.transaction(async (m) => { // Remove the discount await cartService.withTransaction(m).removeDiscount(id, code) diff --git a/packages/medusa/src/api/routes/store/carts/delete-line-item.js b/packages/medusa/src/api/routes/store/carts/delete-line-item.js index 5bb03b37e8..37b0764636 100644 --- a/packages/medusa/src/api/routes/store/carts/delete-line-item.js +++ b/packages/medusa/src/api/routes/store/carts/delete-line-item.js @@ -27,7 +27,7 @@ export default async (req, res) => { const manager = req.scope.resolve("manager") const cartService = req.scope.resolve("cartService") - await manager.transaction(async m => { + await manager.transaction(async (m) => { // Remove the line item await cartService.withTransaction(m).removeLineItem(id, line_id) diff --git a/packages/medusa/src/api/routes/store/carts/update-line-item.js b/packages/medusa/src/api/routes/store/carts/update-line-item.js index b4c7728db3..60d340a5ec 100644 --- a/packages/medusa/src/api/routes/store/carts/update-line-item.js +++ b/packages/medusa/src/api/routes/store/carts/update-line-item.js @@ -38,14 +38,14 @@ export default async (req, res) => { const manager = req.scope.resolve("manager") const cartService = req.scope.resolve("cartService") - await manager.transaction(async m => { + await manager.transaction(async (m) => { // If the quantity is 0 that is effectively deletion if (value.quantity === 0) { await cartService.withTransaction(m).removeLineItem(id, line_id) } else { const cart = await cartService.retrieve(id, { relations: ["items"] }) - const existing = cart.items.find(i => i.id === line_id) + const existing = cart.items.find((i) => i.id === line_id) if (!existing) { throw new MedusaError( MedusaError.Types.INVALID_DATA, diff --git a/packages/medusa/src/api/routes/store/customers/create-customer.js b/packages/medusa/src/api/routes/store/customers/create-customer.js index 671ecfef0a..acd934f7c8 100644 --- a/packages/medusa/src/api/routes/store/customers/create-customer.js +++ b/packages/medusa/src/api/routes/store/customers/create-customer.js @@ -28,9 +28,7 @@ import { defaultRelations, defaultFields } from "./" */ export default async (req, res) => { const schema = Validator.object().keys({ - email: Validator.string() - .email() - .required(), + email: Validator.string().email().required(), first_name: Validator.string().required(), last_name: Validator.string().required(), password: Validator.string().required(), diff --git a/packages/medusa/src/api/routes/store/customers/get-payment-methods.js b/packages/medusa/src/api/routes/store/customers/get-payment-methods.js index 5d84696916..000b16dc51 100644 --- a/packages/medusa/src/api/routes/store/customers/get-payment-methods.js +++ b/packages/medusa/src/api/routes/store/customers/get-payment-methods.js @@ -32,7 +32,7 @@ export default async (req, res) => { const paymentProviderService = req.scope.resolve("paymentProviderService") const customerService = req.scope.resolve("customerService") - let customer = await customerService.retrieve(id) + const customer = await customerService.retrieve(id) const store = await storeService.retrieve(["payment_providers"]) diff --git a/packages/medusa/src/api/routes/store/customers/list-orders.js b/packages/medusa/src/api/routes/store/customers/list-orders.js index 30cb695fd7..835b3b9275 100644 --- a/packages/medusa/src/api/routes/store/customers/list-orders.js +++ b/packages/medusa/src/api/routes/store/customers/list-orders.js @@ -32,7 +32,7 @@ export default async (req, res) => { try { const orderService = req.scope.resolve("orderService") - let selector = { + const selector = { customer_id: id, } diff --git a/packages/medusa/src/api/routes/store/customers/reset-password.js b/packages/medusa/src/api/routes/store/customers/reset-password.js index 93dba48351..e6eac1a229 100644 --- a/packages/medusa/src/api/routes/store/customers/reset-password.js +++ b/packages/medusa/src/api/routes/store/customers/reset-password.js @@ -24,9 +24,7 @@ import jwt from "jsonwebtoken" */ export default async (req, res) => { const schema = Validator.object().keys({ - email: Validator.string() - .email() - .required(), + email: Validator.string().email().required(), token: Validator.string().required(), password: Validator.string().required(), }) diff --git a/packages/medusa/src/api/routes/store/gift-cards/index.js b/packages/medusa/src/api/routes/store/gift-cards/index.js index a00c8f3bb1..6f1d2fa7fe 100644 --- a/packages/medusa/src/api/routes/store/gift-cards/index.js +++ b/packages/medusa/src/api/routes/store/gift-cards/index.js @@ -3,7 +3,7 @@ import middlewares from "../../../middlewares" const route = Router() -export default app => { +export default (app) => { app.use("/gift-cards", route) route.get("/:code", middlewares.wrap(require("./get-gift-card").default)) diff --git a/packages/medusa/src/api/routes/store/orders/index.js b/packages/medusa/src/api/routes/store/orders/index.js index e7aefc2571..e5e09c32ef 100644 --- a/packages/medusa/src/api/routes/store/orders/index.js +++ b/packages/medusa/src/api/routes/store/orders/index.js @@ -3,7 +3,7 @@ import middlewares from "../../../middlewares" const route = Router() -export default app => { +export default (app) => { app.use("/orders", route) /** diff --git a/packages/medusa/src/api/routes/store/products/get-product.js b/packages/medusa/src/api/routes/store/products/get-product.js index e2815c7d17..5fcfd1e7fe 100644 --- a/packages/medusa/src/api/routes/store/products/get-product.js +++ b/packages/medusa/src/api/routes/store/products/get-product.js @@ -23,7 +23,7 @@ export default async (req, res) => { const { id } = req.params const productService = req.scope.resolve("productService") - let product = await productService.retrieve(id, { + const product = await productService.retrieve(id, { relations: defaultRelations, }) diff --git a/packages/medusa/src/api/routes/store/products/index.js b/packages/medusa/src/api/routes/store/products/index.js index 642b81f8dc..fb0ba76fa5 100644 --- a/packages/medusa/src/api/routes/store/products/index.js +++ b/packages/medusa/src/api/routes/store/products/index.js @@ -3,7 +3,7 @@ import middlewares from "../../../middlewares" const route = Router() -export default app => { +export default (app) => { app.use("/products", route) route.get("/", middlewares.wrap(require("./list-products").default)) diff --git a/packages/medusa/src/api/routes/store/products/list-products.js b/packages/medusa/src/api/routes/store/products/list-products.js index fadbce82de..602b028a8c 100644 --- a/packages/medusa/src/api/routes/store/products/list-products.js +++ b/packages/medusa/src/api/routes/store/products/list-products.js @@ -50,7 +50,7 @@ export default async (req, res) => { take: limit, } - let products = await productService.list(selector, listConfig) + const products = await productService.list(selector, listConfig) res.json({ products, count: products.length, offset, limit }) } catch (error) { diff --git a/packages/medusa/src/api/routes/store/regions/index.js b/packages/medusa/src/api/routes/store/regions/index.js index b41ced688f..401905174f 100644 --- a/packages/medusa/src/api/routes/store/regions/index.js +++ b/packages/medusa/src/api/routes/store/regions/index.js @@ -3,7 +3,7 @@ import middlewares from "../../../middlewares" const route = Router() -export default app => { +export default (app) => { app.use("/regions", route) route.get("/", middlewares.wrap(require("./list-regions").default)) diff --git a/packages/medusa/src/api/routes/store/return-reasons/index.js b/packages/medusa/src/api/routes/store/return-reasons/index.js index 071d27e8cc..9ceb14eab7 100644 --- a/packages/medusa/src/api/routes/store/return-reasons/index.js +++ b/packages/medusa/src/api/routes/store/return-reasons/index.js @@ -3,7 +3,7 @@ import middlewares from "../../../middlewares" const route = Router() -export default app => { +export default (app) => { app.use("/return-reasons", route) /** diff --git a/packages/medusa/src/api/routes/store/return-reasons/list-reasons.js b/packages/medusa/src/api/routes/store/return-reasons/list-reasons.js index 563e5a893b..2c1f8664ed 100644 --- a/packages/medusa/src/api/routes/store/return-reasons/list-reasons.js +++ b/packages/medusa/src/api/routes/store/return-reasons/list-reasons.js @@ -24,7 +24,7 @@ export default async (req, res) => { try { const returnReasonService = req.scope.resolve("returnReasonService") - const query = { parent_return_reason_id: null} + const query = { parent_return_reason_id: null } const data = await returnReasonService.list(query, { select: defaultFields, relations: defaultRelations, diff --git a/packages/medusa/src/api/routes/store/returns/create-return.js b/packages/medusa/src/api/routes/store/returns/create-return.js index e04bf44037..90503dac43 100644 --- a/packages/medusa/src/api/routes/store/returns/create-return.js +++ b/packages/medusa/src/api/routes/store/returns/create-return.js @@ -99,7 +99,7 @@ export default async (req, res) => { case "started": { const { key, error } = await idempotencyKeyService.workStage( idempotencyKey.idempotency_key, - async manager => { + async (manager) => { const order = await orderService .withTransaction(manager) .retrieve(value.order_id, { @@ -152,7 +152,7 @@ export default async (req, res) => { case "return_requested": { const { key, error } = await idempotencyKeyService.workStage( idempotencyKey.idempotency_key, - async manager => { + async (manager) => { let ret = await returnService.withTransaction(manager).list( { idempotency_key: idempotencyKey.idempotency_key, diff --git a/packages/medusa/src/api/routes/store/returns/index.js b/packages/medusa/src/api/routes/store/returns/index.js index 0fbe2e6df3..1158a6cc41 100644 --- a/packages/medusa/src/api/routes/store/returns/index.js +++ b/packages/medusa/src/api/routes/store/returns/index.js @@ -3,7 +3,7 @@ import middlewares from "../../../middlewares" const route = Router() -export default app => { +export default (app) => { app.use("/returns", route) route.post("/", middlewares.wrap(require("./create-return").default)) diff --git a/packages/medusa/src/api/routes/store/shipping-options/index.js b/packages/medusa/src/api/routes/store/shipping-options/index.js index ed2b50692e..5ab1fe84cc 100644 --- a/packages/medusa/src/api/routes/store/shipping-options/index.js +++ b/packages/medusa/src/api/routes/store/shipping-options/index.js @@ -3,7 +3,7 @@ import middlewares from "../../../middlewares" const route = Router() -export default app => { +export default (app) => { app.use("/shipping-options", route) route.get("/", middlewares.wrap(require("./list-options").default)) diff --git a/packages/medusa/src/api/routes/store/shipping-options/list-options.js b/packages/medusa/src/api/routes/store/shipping-options/list-options.js index 69bff7ced5..ff9b139ec8 100644 --- a/packages/medusa/src/api/routes/store/shipping-options/list-options.js +++ b/packages/medusa/src/api/routes/store/shipping-options/list-options.js @@ -44,7 +44,7 @@ export default async (req, res) => { if (productIds.length) { const prods = await productService.list({ id: productIds }) - query.profile_id = prods.map(p => p.profile_id) + query.profile_id = prods.map((p) => p.profile_id) } const options = await shippingOptionService.list(query, { diff --git a/packages/medusa/src/api/routes/store/swaps/create-swap.js b/packages/medusa/src/api/routes/store/swaps/create-swap.js index 4345a0735e..eb115ca443 100644 --- a/packages/medusa/src/api/routes/store/swaps/create-swap.js +++ b/packages/medusa/src/api/routes/store/swaps/create-swap.js @@ -108,7 +108,7 @@ export default async (req, res) => { case "started": { const { key, error } = await idempotencyKeyService.workStage( idempotencyKey.idempotency_key, - async manager => { + async (manager) => { const order = await orderService .withTransaction(manager) .retrieve(value.order_id, { @@ -163,7 +163,7 @@ export default async (req, res) => { case "swap_created": { const { key, error } = await idempotencyKeyService.workStage( idempotencyKey.idempotency_key, - async manager => { + async (manager) => { const swaps = await swapService.list({ idempotency_key: idempotencyKey.idempotency_key, }) diff --git a/packages/medusa/src/api/routes/store/swaps/index.js b/packages/medusa/src/api/routes/store/swaps/index.js index 165040294c..cd02167a65 100644 --- a/packages/medusa/src/api/routes/store/swaps/index.js +++ b/packages/medusa/src/api/routes/store/swaps/index.js @@ -3,7 +3,7 @@ import middlewares from "../../../middlewares" const route = Router() -export default app => { +export default (app) => { app.use("/swaps", route) route.get( diff --git a/packages/medusa/src/api/routes/store/variants/get-variant.js b/packages/medusa/src/api/routes/store/variants/get-variant.js index de50e27555..bbdc15eb01 100644 --- a/packages/medusa/src/api/routes/store/variants/get-variant.js +++ b/packages/medusa/src/api/routes/store/variants/get-variant.js @@ -24,7 +24,7 @@ export default async (req, res) => { try { const variantService = req.scope.resolve("productVariantService") - let variant = await variantService.retrieve(id, { + const variant = await variantService.retrieve(id, { relations: defaultRelations, }) diff --git a/packages/medusa/src/api/routes/store/variants/index.js b/packages/medusa/src/api/routes/store/variants/index.js index b4ed48b30d..1f14b0be18 100644 --- a/packages/medusa/src/api/routes/store/variants/index.js +++ b/packages/medusa/src/api/routes/store/variants/index.js @@ -3,7 +3,7 @@ import middlewares from "../../../middlewares" const route = Router() -export default app => { +export default (app) => { app.use("/variants", route) route.get("/", middlewares.wrap(require("./list-variants").default)) diff --git a/packages/medusa/src/services/totals.js b/packages/medusa/src/services/totals.js index 1a075fc17e..2aa3a4fcf1 100644 --- a/packages/medusa/src/services/totals.js +++ b/packages/medusa/src/services/totals.js @@ -1,7 +1,6 @@ import _ from "lodash" import { BaseService } from "medusa-interfaces" import { MedusaError } from "medusa-core-utils" -import carts from "../api/routes/store/carts" /** * A service that calculates total and subtotals for orders, carts etc.. @@ -162,12 +161,12 @@ class TotalsService extends BaseService { if (order.claims && order.claims.length) { for (const c of order.claims) { - const claimItemIds = c.additional_items.map(el => el.id) + const claimItemIds = c.additional_items.map((el) => el.id) itemIds = [...itemIds, ...claimItemIds] } } - const refunds = lineItems.map(i => { + const refunds = lineItems.map((i) => { if (!itemIds.includes(i.id)) { throw new MedusaError( MedusaError.Types.INVALID_DATA,