Merge branch 'develop' into feat/disabling-of-notification

This commit is contained in:
--list
2021-07-02 12:11:45 +02:00
27 changed files with 583 additions and 70 deletions
@@ -9,6 +9,9 @@ export default () => {
let statusCode = 500
switch (err.name) {
case MedusaError.Types.DUPLICATE_ERROR:
statusCode = 409
break
case MedusaError.Types.NOT_ALLOWED:
case MedusaError.Types.INVALID_DATA:
statusCode = 400
@@ -1,6 +1,7 @@
import { IdMap } from "medusa-test-utils"
import { request } from "../../../../../helpers/test-request"
import { CustomerServiceMock } from "../../../../../services/__mocks__/customer"
import { defaultFields, defaultRelations } from "../"
describe("POST /store/customers", () => {
describe("successfully creates a customer", () => {
@@ -34,7 +35,7 @@ describe("POST /store/customers", () => {
expect(CustomerServiceMock.retrieve).toHaveBeenCalledTimes(1)
expect(CustomerServiceMock.retrieve).toHaveBeenCalledWith(
IdMap.getId("lebron"),
{ relations: ["shipping_addresses"] }
{ relations: defaultRelations, select: defaultFields }
)
})
@@ -1,5 +1,6 @@
import { IdMap } from "medusa-test-utils"
import { request } from "../../../../../helpers/test-request"
import { defaultFields, defaultRelations } from "../"
import { CustomerServiceMock } from "../../../../../services/__mocks__/customer"
describe("POST /store/customers/:id", () => {
@@ -42,7 +43,7 @@ describe("POST /store/customers/:id", () => {
expect(CustomerServiceMock.retrieve).toHaveBeenCalledTimes(1)
expect(CustomerServiceMock.retrieve).toHaveBeenCalledWith(
IdMap.getId("lebron"),
{ relations: ["shipping_addresses"] }
{ relations: defaultRelations, select: defaultFields }
)
})
@@ -1,4 +1,5 @@
import { Validator, MedusaError } from "medusa-core-utils"
import { defaultRelations, defaultFields } from "./"
/**
* @oas [post] /customers/{id}/addresses
@@ -45,7 +46,8 @@ export default async (req, res) => {
let customer = await customerService.addAddress(id, value.address)
customer = await customerService.retrieve(id, {
relations: ["shipping_addresses"],
relations: defaultRelations,
select: defaultFields,
})
res.status(200).json({ customer })
@@ -1,6 +1,7 @@
import jwt from "jsonwebtoken"
import { Validator, MedusaError } from "medusa-core-utils"
import config from "../../../../config"
import { defaultRelations, defaultFields } from "./"
/**
* @oas [post] /customers
@@ -40,6 +41,7 @@ export default async (req, res) => {
if (error) {
throw new MedusaError(MedusaError.Types.INVALID_DATA, error.details)
}
try {
const customerService = req.scope.resolve("customerService")
let customer = await customerService.create(value)
@@ -50,7 +52,8 @@ export default async (req, res) => {
})
customer = await customerService.retrieve(customer.id, {
relations: ["shipping_addresses"],
relations: defaultRelations,
select: defaultFields,
})
res.status(200).json({ customer })
@@ -1,3 +1,5 @@
import { defaultRelations, defaultFields } from "./"
/**
* @oas [delete] /customers/{id}/addresses/{address_id}
* operationId: DeleteCustomersCustomerAddressesAddress
@@ -25,7 +27,8 @@ export default async (req, res) => {
try {
await customerService.removeAddress(id, address_id)
customer = await customerService.retrieve(id, {
relations: ["shipping_addresses"],
relations: defaultRelations,
select: defaultFields,
})
res.json({ customer })
@@ -1,3 +1,5 @@
import { defaultRelations, defaultFields } from "./"
/**
* @oas [get] /customers/{id}
* operationId: GetCustomersCustomer
@@ -22,7 +24,8 @@ export default async (req, res) => {
try {
const customerService = req.scope.resolve("customerService")
const customer = await customerService.retrieve(id, {
relations: ["shipping_addresses"],
relations: defaultRelations,
select: defaultFields,
})
res.json({ customer })
} catch (err) {
@@ -57,3 +57,39 @@ export default (app, container) => {
return app
}
export const defaultRelations = ["shipping_addresses"]
export const defaultFields = [
"id",
"email",
"first_name",
"last_name",
"billing_address_id",
"phone",
"has_account",
"created_at",
"updated_at",
"deleted_at",
"metadata",
]
export const allowedRelations = [
"shipping_addresses",
"billing_address",
"orders",
]
export const allowedFields = [
"id",
"email",
"first_name",
"last_name",
"billing_address_id",
"phone",
"has_account",
"created_at",
"updated_at",
"deleted_at",
"metadata",
]
@@ -1,4 +1,5 @@
import { Validator, MedusaError } from "medusa-core-utils"
import { defaultRelations, defaultFields } from "./"
/**
* @oas [post] /customers/{id}/addresses/{address_id}
@@ -50,7 +51,8 @@ export default async (req, res) => {
)
customer = await customerService.retrieve(id, {
relations: ["shipping_addresses"],
relations: defaultRelations,
select: defaultFields,
})
res.json({ customer })
@@ -1,4 +1,5 @@
import { Validator, MedusaError } from "medusa-core-utils"
import { defaultRelations, defaultFields } from "./"
/**
* @oas [post] /customers/{id}
@@ -24,6 +25,9 @@ import { Validator, MedusaError } from "medusa-core-utils"
* phone:
* description: "The Customer's phone number."
* type: string
* metadata:
* description: "Metadata about the customer."
* type: object
* tags:
* - Customer
* responses:
@@ -44,6 +48,7 @@ export default async (req, res) => {
last_name: Validator.string().optional(),
password: Validator.string().optional(),
phone: Validator.string().optional(),
metadata: Validator.object().optional(),
})
const { value, error } = schema.validate(req.body)
@@ -56,7 +61,8 @@ export default async (req, res) => {
let customer = await customerService.update(id, value)
customer = await customerService.retrieve(customer.id, {
relations: ["shipping_addresses"],
relations: defaultRelations,
select: defaultFields,
})
res.status(200).json({ customer })