fix(medusa): order retrieval missing relations + allow for expand (#2267)

**What**

Fix missing relation on the order retrieval endpoint as well as allow the expand fields

FIXES CORE-578
This commit is contained in:
Adrien de Peretti
2022-09-29 10:04:39 +00:00
committed by GitHub
parent 9a532de7bd
commit a2bb504e6e
5 changed files with 69 additions and 82 deletions
@@ -1,77 +1,7 @@
import { IdMap } from "medusa-test-utils"
import { request } from "../../../../../helpers/test-request"
import { OrderServiceMock } from "../../../../../services/__mocks__/order"
const defaultRelations = [
"customer",
"billing_address",
"shipping_address",
"discounts",
"discounts.rule",
"shipping_methods",
"payments",
"fulfillments",
"fulfillments.tracking_links",
"fulfillments.items",
"returns",
"returns.shipping_method",
"returns.shipping_method.tax_lines",
"returns.items",
"returns.items.reason",
"gift_cards",
"gift_card_transactions",
"claims",
"claims.return_order",
"claims.return_order.shipping_method",
"claims.shipping_methods",
"claims.shipping_address",
"claims.additional_items",
"claims.fulfillments",
"claims.fulfillments.tracking_links",
"claims.claim_items",
"claims.claim_items.item",
"claims.claim_items.images",
"swaps",
"swaps.return_order",
"swaps.payment",
"swaps.shipping_methods",
"swaps.shipping_address",
"swaps.additional_items",
"swaps.fulfillments",
"swaps.fulfillments.tracking_links",
]
const defaultFields = [
"id",
"status",
"fulfillment_status",
"payment_status",
"display_id",
"cart_id",
"draft_order_id",
"customer_id",
"email",
"region_id",
"currency_code",
"tax_rate",
"canceled_at",
"created_at",
"updated_at",
"metadata",
"items.refundable",
"swaps.additional_items.refundable",
"claims.additional_items.refundable",
"shipping_total",
"discount_total",
"tax_total",
"refunded_total",
"gift_card_total",
"subtotal",
"total",
"paid_total",
"refundable_amount",
"no_notification",
]
import { defaultAdminOrdersFields, defaultAdminOrdersRelations } from "../index"
describe("GET /admin/orders", () => {
describe("successfully gets an order", () => {
@@ -100,8 +30,8 @@ describe("GET /admin/orders", () => {
expect(OrderServiceMock.retrieve).toHaveBeenCalledWith(
IdMap.getId("test-order"),
{
select: defaultFields,
relations: defaultRelations,
select: defaultAdminOrdersFields,
relations: defaultAdminOrdersRelations,
}
)
})
@@ -3,7 +3,7 @@ import "reflect-metadata"
import { Order } from "../../../.."
import {
DeleteResponse,
EmptyQueryParams,
FindParams,
PaginatedResponse,
} from "../../../../types/common"
import middlewares, { transformQuery } from "../../../middlewares"
@@ -45,7 +45,7 @@ export default (app, featureFlagRouter: FlagRouter) => {
*/
route.get(
"/:id",
transformQuery(EmptyQueryParams, {
transformQuery(FindParams, {
defaultRelations: relations,
defaultFields: defaultAdminOrdersFields,
allowedFields: allowedAdminOrdersFields,
@@ -260,6 +260,7 @@ export const defaultAdminOrdersRelations = [
"claims",
"claims.return_order",
"claims.return_order.shipping_method",
"claims.return_order.shipping_method.tax_lines",
"claims.shipping_methods",
"claims.shipping_address",
"claims.additional_items",
@@ -271,8 +272,11 @@ export const defaultAdminOrdersRelations = [
// "claims.claim_items.tags",
"swaps",
"swaps.return_order",
"swaps.return_order.shipping_method",
"swaps.return_order.shipping_method.tax_lines",
"swaps.payment",
"swaps.shipping_methods",
"swaps.shipping_methods.tax_lines",
"swaps.shipping_address",
"swaps.additional_items",
"swaps.fulfillments",
@@ -1,7 +1,7 @@
import { Router } from "express"
import "reflect-metadata"
import { Product, ProductTag, ProductType } from "../../../.."
import { EmptyQueryParams, PaginatedResponse } from "../../../../types/common"
import { FindParams, PaginatedResponse } from "../../../../types/common"
import { PricedProduct } from "../../../../types/pricing"
import { FlagRouter } from "../../../../utils/flag-router"
import middlewares, { transformQuery } from "../../../middlewares"
@@ -70,7 +70,7 @@ export default (app, featureFlagRouter: FlagRouter) => {
)
route.get(
"/:id",
transformQuery(EmptyQueryParams, {
transformQuery(FindParams, {
defaultRelations: defaultAdminProductRelations,
defaultFields: defaultAdminProductFields,
allowedFields: allowedAdminProductFields,
@@ -1,13 +1,14 @@
import { Router } from "express"
import "reflect-metadata"
import { Cart, Order, Swap } from "../../../../"
import { DeleteResponse, EmptyQueryParams } from "../../../../types/common"
import { DeleteResponse, FindParams } from "../../../../types/common"
import middlewares, {
transformBody,
transformQuery,
} from "../../../middlewares"
import { StorePostCartsCartReq } from "./update-cart"
import { StorePostCartReq } from "./create-cart"
const route = Router()
export default (app, container) => {
@@ -28,7 +29,7 @@ export default (app, container) => {
route.get(
"/:id",
transformQuery(EmptyQueryParams, {
transformQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,