chore(feature-flags): Remove OrderEditing feature flag (#3006)
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
|
||||
describe("POST /admin/order-edits/:id/cancel", () => {
|
||||
@@ -17,8 +16,7 @@ describe("POST /admin/order-edits/:id/cancel", () => {
|
||||
jwt: {
|
||||
userId: IdMap.getId("admin_user"),
|
||||
},
|
||||
},
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
}
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
|
||||
describe("POST /admin/order-edits/:id/confirm", () => {
|
||||
@@ -18,7 +17,6 @@ describe("POST /admin/order-edits/:id/confirm", () => {
|
||||
userId: "admin_user",
|
||||
},
|
||||
},
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
|
||||
describe("POST /admin/order-edits", () => {
|
||||
@@ -20,7 +19,6 @@ describe("POST /admin/order-edits", () => {
|
||||
userId: IdMap.getId("admin_user"),
|
||||
},
|
||||
},
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
|
||||
describe("DELETE /admin/order-edits/:id/items/:item_id", () => {
|
||||
@@ -16,7 +15,6 @@ describe("DELETE /admin/order-edits/:id/items/:item_id", () => {
|
||||
userId: IdMap.getId("admin_user"),
|
||||
},
|
||||
},
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
-2
@@ -1,6 +1,5 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
|
||||
describe("DELETE /admin/order-edits/:id/changes/:change_id", () => {
|
||||
@@ -19,7 +18,6 @@ describe("DELETE /admin/order-edits/:id/changes/:change_id", () => {
|
||||
userId: IdMap.getId("admin_user"),
|
||||
},
|
||||
},
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
|
||||
describe("DELETE /admin/order-edits/:id", () => {
|
||||
@@ -15,7 +14,6 @@ describe("DELETE /admin/order-edits/:id", () => {
|
||||
userId: IdMap.getId("admin_user"),
|
||||
},
|
||||
},
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
import {
|
||||
defaultOrderEditFields,
|
||||
defaultOrderEditRelations,
|
||||
defaultOrderEditRelations
|
||||
} from "../../../../../types/order-edit"
|
||||
|
||||
describe("GET /admin/order-edits/:id", () => {
|
||||
@@ -19,7 +18,6 @@ describe("GET /admin/order-edits/:id", () => {
|
||||
userId: IdMap.getId("admin_user"),
|
||||
},
|
||||
},
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
import {
|
||||
defaultOrderEditFields,
|
||||
defaultOrderEditRelations,
|
||||
defaultOrderEditRelations
|
||||
} from "../../../../../types/order-edit"
|
||||
|
||||
describe("GET /admin/order-edits", () => {
|
||||
@@ -18,7 +17,6 @@ describe("GET /admin/order-edits", () => {
|
||||
userId: IdMap.getId("admin_user"),
|
||||
},
|
||||
},
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
|
||||
describe("GET /admin/order-edits/:id", () => {
|
||||
describe("successfully requests an order edit confirmation", () => {
|
||||
@@ -19,7 +18,6 @@ describe("GET /admin/order-edits/:id", () => {
|
||||
userId: IdMap.getId("admin_user"),
|
||||
},
|
||||
},
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
payload: {
|
||||
payment_collection_description: "PayCol description",
|
||||
},
|
||||
|
||||
-2
@@ -1,6 +1,5 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
|
||||
describe("POST /admin/order-edits/:id/items/:item_id", () => {
|
||||
@@ -22,7 +21,6 @@ describe("POST /admin/order-edits/:id/items/:item_id", () => {
|
||||
userId: IdMap.getId("admin_user"),
|
||||
},
|
||||
},
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
@@ -1,33 +1,27 @@
|
||||
import { Router } from "express"
|
||||
|
||||
import middlewares, {
|
||||
transformBody,
|
||||
transformQuery,
|
||||
} from "../../../middlewares"
|
||||
import { OrderEdit } from "../../../../models"
|
||||
import { DeleteResponse, PaginatedResponse } from "../../../../types/common"
|
||||
import { isFeatureFlagEnabled } from "../../../middlewares/feature-flag-enabled"
|
||||
import OrderEditingFeatureFlag from "../../../../loaders/feature-flags/order-editing"
|
||||
import {
|
||||
defaultOrderEditFields,
|
||||
defaultOrderEditRelations,
|
||||
} from "../../../../types/order-edit"
|
||||
import { OrderEdit } from "../../../../models"
|
||||
import { AdminPostOrderEditsOrderEditReq } from "./update-order-edit"
|
||||
import { AdminPostOrderEditsReq } from "./create-order-edit"
|
||||
import middlewares, {
|
||||
transformBody,
|
||||
transformQuery,
|
||||
} from "../../../middlewares"
|
||||
import { AdminPostOrderEditsEditLineItemsReq } from "./add-line-item"
|
||||
import { AdminPostOrderEditsEditLineItemsLineItemReq } from "./update-order-edit-line-item"
|
||||
import { GetOrderEditsParams } from "./list-order-edit"
|
||||
import { AdminPostOrderEditsReq } from "./create-order-edit"
|
||||
import { GetOrderEditsOrderEditParams } from "./get-order-edit"
|
||||
import { GetOrderEditsParams } from "./list-order-edit"
|
||||
import { AdminPostOrderEditsRequestConfirmationReq } from "./request-confirmation"
|
||||
import { AdminPostOrderEditsOrderEditReq } from "./update-order-edit"
|
||||
import { AdminPostOrderEditsEditLineItemsLineItemReq } from "./update-order-edit-line-item"
|
||||
|
||||
const route = Router()
|
||||
|
||||
export default (app) => {
|
||||
app.use(
|
||||
"/order-edits",
|
||||
isFeatureFlagEnabled(OrderEditingFeatureFlag.key),
|
||||
route
|
||||
)
|
||||
app.use("/order-edits", route)
|
||||
|
||||
route.post(
|
||||
"/",
|
||||
@@ -117,10 +111,10 @@ export type AdminOrderEditItemChangeDeleteRes = {
|
||||
deleted: boolean
|
||||
}
|
||||
|
||||
export * from "./update-order-edit"
|
||||
export * from "./update-order-edit-line-item"
|
||||
export * from "./add-line-item"
|
||||
export * from "./create-order-edit"
|
||||
export * from "./get-order-edit"
|
||||
export * from "./list-order-edit"
|
||||
export * from "./add-line-item"
|
||||
export * from "./request-confirmation"
|
||||
export * from "./update-order-edit"
|
||||
export * from "./update-order-edit-line-item"
|
||||
|
||||
@@ -4,21 +4,15 @@ import middlewares, {
|
||||
transformBody,
|
||||
transformQuery,
|
||||
} from "../../../middlewares"
|
||||
import OrderEditingFeatureFlag from "../../../../loaders/feature-flags/order-editing"
|
||||
import { isFeatureFlagEnabled } from "../../../middlewares/feature-flag-enabled"
|
||||
|
||||
import { PaymentCollection } from "../../../../models"
|
||||
import { GetPaymentCollectionsParams } from "./get-payment-collection"
|
||||
import { AdminUpdatePaymentCollectionsReq } from "./update-payment-collection"
|
||||
import { PaymentCollection } from "../../../../models"
|
||||
|
||||
const route = Router()
|
||||
|
||||
export default (app, container) => {
|
||||
app.use(
|
||||
"/payment-collections",
|
||||
isFeatureFlagEnabled(OrderEditingFeatureFlag.key),
|
||||
route
|
||||
)
|
||||
app.use("/payment-collections", route)
|
||||
|
||||
route.get(
|
||||
"/:id",
|
||||
|
||||
@@ -4,17 +4,15 @@ import middlewares, {
|
||||
transformBody,
|
||||
transformQuery,
|
||||
} from "../../../middlewares"
|
||||
import OrderEditingFeatureFlag from "../../../../loaders/feature-flags/order-editing"
|
||||
import { isFeatureFlagEnabled } from "../../../middlewares/feature-flag-enabled"
|
||||
|
||||
import { Payment, Refund } from "../../../../models"
|
||||
import { GetPaymentsParams } from "./get-payment"
|
||||
import { AdminPostPaymentRefundsReq } from "./refund-payment"
|
||||
import { Payment, Refund } from "../../../../models"
|
||||
|
||||
const route = Router()
|
||||
|
||||
export default (app, container) => {
|
||||
app.use("/payments", isFeatureFlagEnabled(OrderEditingFeatureFlag.key), route)
|
||||
app.use("/payments", route)
|
||||
|
||||
route.get(
|
||||
"/:id",
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
|
||||
describe("GET /store/order-edits/:id/complete", () => {
|
||||
describe("successfully complete an order edit", () => {
|
||||
@@ -12,9 +11,6 @@ describe("GET /store/order-edits/:id/complete", () => {
|
||||
subject = await request(
|
||||
"POST",
|
||||
`/store/order-edits/${orderEditId}/complete`,
|
||||
{
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
@@ -44,7 +40,6 @@ describe("GET /store/order-edits/:id/complete", () => {
|
||||
"POST",
|
||||
`/store/order-edits/${orderEditId}/complete`,
|
||||
{
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
clientSession: {
|
||||
jwt: {
|
||||
user: IdMap.getId("lebron"),
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
|
||||
describe("GET /store/order-edits/:id/decline", () => {
|
||||
describe("successfully decline an order edit", () => {
|
||||
@@ -18,7 +17,6 @@ describe("GET /store/order-edits/:id/decline", () => {
|
||||
`/store/order-edits/${orderEditId}/decline`,
|
||||
{
|
||||
payload,
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
|
||||
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
|
||||
import {
|
||||
defaultStoreOrderEditFields,
|
||||
defaultStoreOrderEditRelations,
|
||||
defaultStoreOrderEditRelations
|
||||
} from "../../../../../types/order-edit"
|
||||
|
||||
describe("GET /store/order-edits/:id", () => {
|
||||
@@ -13,9 +12,7 @@ describe("GET /store/order-edits/:id", () => {
|
||||
let subject
|
||||
|
||||
beforeAll(async () => {
|
||||
subject = await request("GET", `/store/order-edits/${orderEditId}`, {
|
||||
flags: [OrderEditingFeatureFlag],
|
||||
})
|
||||
subject = await request("GET", `/store/order-edits/${orderEditId}`)
|
||||
})
|
||||
|
||||
afterAll(() => {
|
||||
|
||||
@@ -1,26 +1,20 @@
|
||||
import { Router } from "express"
|
||||
import middlewares, {
|
||||
transformBody,
|
||||
transformQuery,
|
||||
} from "../../../middlewares"
|
||||
import { OrderEdit } from "../../../../models"
|
||||
import { FindParams } from "../../../../types/common"
|
||||
import { isFeatureFlagEnabled } from "../../../middlewares/feature-flag-enabled"
|
||||
import OrderEditingFeatureFlag from "../../../../loaders/feature-flags/order-editing"
|
||||
import {
|
||||
defaultStoreOrderEditFields,
|
||||
defaultStoreOrderEditRelations,
|
||||
} from "../../../../types/order-edit"
|
||||
import { OrderEdit } from "../../../../models"
|
||||
import middlewares, {
|
||||
transformBody,
|
||||
transformQuery,
|
||||
} from "../../../middlewares"
|
||||
import { StorePostOrderEditsOrderEditDecline } from "./decline-order-edit"
|
||||
|
||||
const route = Router()
|
||||
|
||||
export default (app) => {
|
||||
app.use(
|
||||
"/order-edits",
|
||||
isFeatureFlagEnabled(OrderEditingFeatureFlag.key),
|
||||
route
|
||||
)
|
||||
app.use("/order-edits", route)
|
||||
|
||||
route.get(
|
||||
"/:id",
|
||||
|
||||
@@ -5,23 +5,16 @@ import middlewares, {
|
||||
transformQuery,
|
||||
} from "../../../middlewares"
|
||||
|
||||
import OrderEditingFeatureFlag from "../../../../loaders/feature-flags/order-editing"
|
||||
import { isFeatureFlagEnabled } from "../../../middlewares/feature-flag-enabled"
|
||||
|
||||
import { StorePostPaymentCollectionsBatchSessionsReq } from "./manage-batch-payment-sessions"
|
||||
import { GetPaymentCollectionsParams } from "./get-payment-collection"
|
||||
import { PaymentCollection, PaymentSession } from "../../../../models"
|
||||
import { StorePaymentCollectionSessionsReq } from "./manage-payment-session"
|
||||
import { StorePostPaymentCollectionsBatchSessionsAuthorizeReq } from "./authorize-batch-payment-sessions"
|
||||
import { GetPaymentCollectionsParams } from "./get-payment-collection"
|
||||
import { StorePostPaymentCollectionsBatchSessionsReq } from "./manage-batch-payment-sessions"
|
||||
import { StorePaymentCollectionSessionsReq } from "./manage-payment-session"
|
||||
|
||||
const route = Router()
|
||||
|
||||
export default (app, container) => {
|
||||
app.use(
|
||||
"/payment-collections",
|
||||
isFeatureFlagEnabled(OrderEditingFeatureFlag.key),
|
||||
route
|
||||
)
|
||||
app.use("/payment-collections", route)
|
||||
|
||||
route.get(
|
||||
"/:id",
|
||||
@@ -86,8 +79,8 @@ export type StorePaymentCollectionsSessionRes = {
|
||||
payment_session: PaymentSession
|
||||
}
|
||||
|
||||
export * from "./get-payment-collection"
|
||||
export * from "./manage-payment-session"
|
||||
export * from "./manage-batch-payment-sessions"
|
||||
export * from "./refresh-payment-session"
|
||||
export * from "./authorize-batch-payment-sessions"
|
||||
export * from "./get-payment-collection"
|
||||
export * from "./manage-batch-payment-sessions"
|
||||
export * from "./manage-payment-session"
|
||||
export * from "./refresh-payment-session"
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import glob from "glob"
|
||||
import path from "path"
|
||||
|
||||
import { isDefined } from "medusa-core-utils"
|
||||
import { trackFeatureFlag } from "medusa-telemetry"
|
||||
import { FlagSettings } from "../../types/feature-flags"
|
||||
import { Logger } from "../../types/global"
|
||||
import { isDefined } from "medusa-core-utils"
|
||||
import { FlagRouter } from "../../utils/flag-router"
|
||||
|
||||
const isTruthy = (val: string | boolean | undefined): boolean => {
|
||||
|
||||
@@ -2,7 +2,7 @@ import { FlagSettings } from "../../types/feature-flags"
|
||||
|
||||
const OrderEditingFeatureFlag: FlagSettings = {
|
||||
key: "order_editing",
|
||||
default_val: false,
|
||||
default_val: true,
|
||||
env_key: "MEDUSA_FF_ORDER_EDITING",
|
||||
description: "[WIP] Enable the order editing feature",
|
||||
}
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm"
|
||||
|
||||
import OrderEditingFeatureFlag from "../loaders/feature-flags/order-editing"
|
||||
|
||||
export const featureFlag = OrderEditingFeatureFlag.key
|
||||
|
||||
export class orderEditing1663059812399 implements MigrationInterface {
|
||||
name = "orderEditing1663059812399"
|
||||
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm"
|
||||
|
||||
import OrderEditingFeatureFlag from "../loaders/feature-flags/order-editing"
|
||||
|
||||
export const featureFlag = OrderEditingFeatureFlag.key
|
||||
|
||||
export class lineItemOriginalItemRelation1663059812400
|
||||
implements MigrationInterface
|
||||
{
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm"
|
||||
|
||||
import OrderEditingFeatureFlag from "../loaders/feature-flags/order-editing"
|
||||
|
||||
export const featureFlag = OrderEditingFeatureFlag.key
|
||||
|
||||
export class paymentCollection1664880666982 implements MigrationInterface {
|
||||
name = "paymentCollection1664880666982"
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ export * from "./address"
|
||||
export * from "./analytics-config"
|
||||
export * from "./batch-job"
|
||||
export * from "./cart"
|
||||
export * from "./product-category"
|
||||
export * from "./claim-image"
|
||||
export * from "./claim-item"
|
||||
export * from "./claim-order"
|
||||
@@ -45,6 +44,7 @@ export * from "./payment-provider"
|
||||
export * from "./payment-session"
|
||||
export * from "./price-list"
|
||||
export * from "./product"
|
||||
export * from "./product-category"
|
||||
export * from "./product-collection"
|
||||
export * from "./product-option"
|
||||
export * from "./product-option-value"
|
||||
@@ -61,7 +61,6 @@ export * from "./region"
|
||||
export * from "./return"
|
||||
export * from "./return-item"
|
||||
export * from "./return-reason"
|
||||
export * from "./sales-channel-location"
|
||||
export * from "./sales-channel"
|
||||
export * from "./sales-channel-location"
|
||||
export * from "./shipping-method"
|
||||
|
||||
@@ -6,42 +6,35 @@ import {
|
||||
Index,
|
||||
JoinColumn,
|
||||
ManyToOne,
|
||||
OneToMany,
|
||||
OneToMany
|
||||
} from "typeorm"
|
||||
|
||||
import { BaseEntity } from "../interfaces"
|
||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||
import { generateEntityId } from "../utils"
|
||||
import { DbAwareColumn } from "../utils/db-aware-column"
|
||||
import { FeatureFlagColumn } from "../utils/feature-flag-decorators"
|
||||
import { Cart } from "./cart"
|
||||
import { ClaimOrder } from "./claim-order"
|
||||
import { DbAwareColumn } from "../utils/db-aware-column"
|
||||
import { LineItemAdjustment } from "./line-item-adjustment"
|
||||
import { LineItemTaxLine } from "./line-item-tax-line"
|
||||
import { Order } from "./order"
|
||||
import { OrderEdit } from "./order-edit"
|
||||
import { ProductVariant } from "./product-variant"
|
||||
import { Swap } from "./swap"
|
||||
import { generateEntityId } from "../utils"
|
||||
import {
|
||||
FeatureFlagClassDecorators,
|
||||
FeatureFlagColumn,
|
||||
FeatureFlagDecorators,
|
||||
} from "../utils/feature-flag-decorators"
|
||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||
import OrderEditingFeatureFlag from "../loaders/feature-flags/order-editing"
|
||||
import { OrderEdit } from "./order-edit"
|
||||
|
||||
@Check(`"fulfilled_quantity" <= "quantity"`)
|
||||
@Check(`"shipped_quantity" <= "fulfilled_quantity"`)
|
||||
@Check(`"returned_quantity" <= "quantity"`)
|
||||
@Check(`"quantity" > 0`)
|
||||
@FeatureFlagClassDecorators(OrderEditingFeatureFlag.key, [
|
||||
Index(
|
||||
"unique_li_original_item_id_order_edit_id",
|
||||
["order_edit_id", "original_item_id"],
|
||||
{
|
||||
unique: true,
|
||||
where: "WHERE original_item_id IS NOT NULL AND order_edit_id IS NOT NULL",
|
||||
}
|
||||
),
|
||||
])
|
||||
@Index(
|
||||
"unique_li_original_item_id_order_edit_id",
|
||||
["order_edit_id", "original_item_id"],
|
||||
{
|
||||
unique: true,
|
||||
where: "original_item_id IS NOT NULL AND order_edit_id IS NOT NULL",
|
||||
}
|
||||
)
|
||||
@Entity()
|
||||
export class LineItem extends BaseEntity {
|
||||
@Index()
|
||||
@@ -84,25 +77,14 @@ export class LineItem extends BaseEntity {
|
||||
})
|
||||
adjustments: LineItemAdjustment[]
|
||||
|
||||
@FeatureFlagColumn(OrderEditingFeatureFlag.key, {
|
||||
nullable: true,
|
||||
type: "varchar",
|
||||
})
|
||||
@Column({ nullable: true, type: "varchar" })
|
||||
original_item_id?: string | null
|
||||
|
||||
@FeatureFlagColumn(OrderEditingFeatureFlag.key, {
|
||||
nullable: true,
|
||||
type: "varchar",
|
||||
})
|
||||
@Column({ nullable: true, type: "varchar" })
|
||||
order_edit_id?: string | null
|
||||
|
||||
@FeatureFlagDecorators(OrderEditingFeatureFlag.key, [
|
||||
ManyToOne(
|
||||
() => OrderEdit,
|
||||
(orderEdit) => orderEdit.items
|
||||
),
|
||||
JoinColumn({ name: "order_edit_id" }),
|
||||
])
|
||||
@ManyToOne(() => OrderEdit, (orderEdit) => orderEdit.items)
|
||||
@JoinColumn({ name: "order_edit_id" })
|
||||
order_edit?: OrderEdit | null
|
||||
|
||||
@Column()
|
||||
|
||||
@@ -2,18 +2,17 @@ import {
|
||||
AfterLoad,
|
||||
BeforeInsert,
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
JoinColumn,
|
||||
ManyToOne,
|
||||
OneToMany,
|
||||
OneToOne
|
||||
OneToOne,
|
||||
} from "typeorm"
|
||||
|
||||
import { BaseEntity } from "../interfaces"
|
||||
import OrderEditingFeatureFlag from "../loaders/feature-flags/order-editing"
|
||||
import { generateEntityId } from "../utils"
|
||||
import { resolveDbType } from "../utils/db-aware-column"
|
||||
import { FeatureFlagEntity } from "../utils/feature-flag-decorators"
|
||||
|
||||
import { LineItem, Order, OrderItemChange, PaymentCollection } from "."
|
||||
|
||||
@@ -25,7 +24,7 @@ export enum OrderEditStatus {
|
||||
CANCELED = "canceled",
|
||||
}
|
||||
|
||||
@FeatureFlagEntity(OrderEditingFeatureFlag.key)
|
||||
@Entity()
|
||||
export class OrderEdit extends BaseEntity {
|
||||
@Index()
|
||||
@Column()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import {
|
||||
BeforeInsert,
|
||||
Column,
|
||||
Entity,
|
||||
JoinColumn,
|
||||
ManyToOne,
|
||||
OneToOne,
|
||||
@@ -8,12 +9,10 @@ import {
|
||||
} from "typeorm"
|
||||
|
||||
import { SoftDeletableEntity } from "../interfaces"
|
||||
import OrderEditingFeatureFlag from "../loaders/feature-flags/order-editing"
|
||||
import { FeatureFlagEntity } from "../utils/feature-flag-decorators"
|
||||
import { generateEntityId } from "../utils"
|
||||
import { DbAwareColumn } from "../utils/db-aware-column"
|
||||
import { OrderEdit } from "./order-edit"
|
||||
import { LineItem } from "./line-item"
|
||||
import { OrderEdit } from "./order-edit"
|
||||
|
||||
export enum OrderEditItemChangeType {
|
||||
ITEM_ADD = "item_add",
|
||||
@@ -21,9 +20,9 @@ export enum OrderEditItemChangeType {
|
||||
ITEM_UPDATE = "item_update",
|
||||
}
|
||||
|
||||
@FeatureFlagEntity(OrderEditingFeatureFlag.key)
|
||||
@Unique(["order_edit_id", "original_line_item_id"])
|
||||
@Unique(["order_edit_id", "line_item_id"])
|
||||
@Entity()
|
||||
export class OrderItemChange extends SoftDeletableEntity {
|
||||
@DbAwareColumn({
|
||||
type: "enum",
|
||||
|
||||
@@ -21,8 +21,10 @@ import {
|
||||
FeatureFlagDecorators,
|
||||
} from "../utils/feature-flag-decorators"
|
||||
|
||||
import { Address } from "./address"
|
||||
import { BaseEntity } from "../interfaces/models/base-entity"
|
||||
import { generateEntityId } from "../utils/generate-entity-id"
|
||||
import { manualAutoIncrement } from "../utils/manual-auto-increment"
|
||||
import { Address } from "./address"
|
||||
import { Cart } from "./cart"
|
||||
import { ClaimOrder } from "./claim-order"
|
||||
import { Currency } from "./currency"
|
||||
@@ -33,6 +35,7 @@ import { Fulfillment } from "./fulfillment"
|
||||
import { GiftCard } from "./gift-card"
|
||||
import { GiftCardTransaction } from "./gift-card-transaction"
|
||||
import { LineItem } from "./line-item"
|
||||
import { OrderEdit } from "./order-edit"
|
||||
import { Payment } from "./payment"
|
||||
import { Refund } from "./refund"
|
||||
import { Region } from "./region"
|
||||
@@ -40,10 +43,6 @@ import { Return } from "./return"
|
||||
import { SalesChannel } from "./sales-channel"
|
||||
import { ShippingMethod } from "./shipping-method"
|
||||
import { Swap } from "./swap"
|
||||
import { generateEntityId } from "../utils/generate-entity-id"
|
||||
import { manualAutoIncrement } from "../utils/manual-auto-increment"
|
||||
import { OrderEdit } from "./order-edit"
|
||||
import OrderEditingFeatureFlag from "../loaders/feature-flags/order-editing"
|
||||
|
||||
export enum OrderStatus {
|
||||
PENDING = "pending",
|
||||
@@ -211,12 +210,7 @@ export class Order extends BaseEntity {
|
||||
@JoinColumn({ name: "draft_order_id" })
|
||||
draft_order: DraftOrder
|
||||
|
||||
@FeatureFlagDecorators(OrderEditingFeatureFlag.key, [
|
||||
OneToMany(
|
||||
() => OrderEdit,
|
||||
(oe) => oe.order
|
||||
),
|
||||
])
|
||||
@OneToMany(() => OrderEdit, (oe) => oe.order)
|
||||
edits: OrderEdit[]
|
||||
|
||||
@OneToMany(() => LineItem, (lineItem) => lineItem.order, {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import {
|
||||
BeforeInsert,
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
JoinColumn,
|
||||
JoinTable,
|
||||
@@ -8,13 +9,10 @@ import {
|
||||
ManyToOne,
|
||||
} from "typeorm"
|
||||
|
||||
import { SoftDeletableEntity } from "../interfaces/models/soft-deletable-entity"
|
||||
import { DbAwareColumn } from "../utils/db-aware-column"
|
||||
import { generateEntityId } from "../utils"
|
||||
import { Currency, Payment, PaymentSession, Region } from "."
|
||||
|
||||
import OrderEditingFeatureFlag from "../loaders/feature-flags/order-editing"
|
||||
import { FeatureFlagEntity } from "../utils/feature-flag-decorators"
|
||||
import { SoftDeletableEntity } from "../interfaces/models/soft-deletable-entity"
|
||||
import { generateEntityId } from "../utils"
|
||||
import { DbAwareColumn } from "../utils/db-aware-column"
|
||||
|
||||
export enum PaymentCollectionStatus {
|
||||
NOT_PAID = "not_paid",
|
||||
@@ -28,7 +26,7 @@ export enum PaymentCollectionType {
|
||||
ORDER_EDIT = "order_edit",
|
||||
}
|
||||
|
||||
@FeatureFlagEntity(OrderEditingFeatureFlag.key)
|
||||
@Entity()
|
||||
export class PaymentCollection extends SoftDeletableEntity {
|
||||
@DbAwareColumn({ type: "enum", enum: PaymentCollectionType })
|
||||
type: PaymentCollectionType
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
import { BeforeInsert, Column, Entity, Index, JoinColumn, ManyToOne, Unique, } from "typeorm"
|
||||
import {
|
||||
BeforeInsert,
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
JoinColumn,
|
||||
ManyToOne,
|
||||
Unique,
|
||||
} from "typeorm"
|
||||
|
||||
import { BaseEntity } from "../interfaces"
|
||||
import { Cart } from "./cart"
|
||||
import { DbAwareColumn, resolveDbType } from "../utils/db-aware-column"
|
||||
import { generateEntityId } from "../utils"
|
||||
import { FeatureFlagDecorators } from "../utils/feature-flag-decorators"
|
||||
import OrderEditingFeatureFlag from "../loaders/feature-flags/order-editing"
|
||||
import { DbAwareColumn, resolveDbType } from "../utils/db-aware-column"
|
||||
import { Cart } from "./cart"
|
||||
|
||||
export enum PaymentSessionStatus {
|
||||
AUTHORIZED = "authorized",
|
||||
@@ -16,8 +22,10 @@ export enum PaymentSessionStatus {
|
||||
}
|
||||
|
||||
@Unique("OneSelected", ["cart_id", "is_selected"])
|
||||
// TODO: This uniq constraint should be updated once the order edit flag is dropped and should add a where clause on cart_id is not null
|
||||
@Unique("UniqPaymentSessionCartIdProviderId", ["cart_id", "provider_id"])
|
||||
@Index("UniqPaymentSessionCartIdProviderId", ["cart_id", "provider_id"], {
|
||||
unique: true,
|
||||
where: "cart_id IS NOT NULL",
|
||||
})
|
||||
@Entity()
|
||||
export class PaymentSession extends BaseEntity {
|
||||
@Index()
|
||||
@@ -47,14 +55,10 @@ export class PaymentSession extends BaseEntity {
|
||||
@Column({ nullable: true })
|
||||
idempotency_key: string
|
||||
|
||||
@FeatureFlagDecorators(OrderEditingFeatureFlag.key, [
|
||||
Column({ type: "integer", nullable: true }),
|
||||
])
|
||||
@Column({ type: "integer", nullable: true })
|
||||
amount: number
|
||||
|
||||
@FeatureFlagDecorators(OrderEditingFeatureFlag.key, [
|
||||
Column({ type: resolveDbType("timestamptz"), nullable: true }),
|
||||
])
|
||||
@Column({ type: resolveDbType("timestamptz"), nullable: true })
|
||||
payment_authorized_at: Date
|
||||
|
||||
@BeforeInsert()
|
||||
|
||||
@@ -10,11 +10,9 @@ import {
|
||||
|
||||
import { BaseEntity } from "../interfaces/models/base-entity"
|
||||
import { DbAwareColumn } from "../utils/db-aware-column"
|
||||
import { Order } from "./order"
|
||||
import { generateEntityId } from "../utils/generate-entity-id"
|
||||
import { Order } from "./order"
|
||||
import { Payment } from "./payment"
|
||||
import { FeatureFlagDecorators } from "../utils/feature-flag-decorators"
|
||||
import OrderEditingFeatureFlag from "../loaders/feature-flags/order-editing"
|
||||
|
||||
export enum RefundReason {
|
||||
DISCOUNT = "discount",
|
||||
@@ -30,20 +28,16 @@ export class Refund extends BaseEntity {
|
||||
@Column({ nullable: true })
|
||||
order_id: string
|
||||
|
||||
@FeatureFlagDecorators(OrderEditingFeatureFlag.key, [
|
||||
Index(),
|
||||
Column({ nullable: true }),
|
||||
])
|
||||
@Index()
|
||||
@Column({ nullable: true })
|
||||
payment_id: string
|
||||
|
||||
@ManyToOne(() => Order, (order) => order.payments)
|
||||
@JoinColumn({ name: "order_id" })
|
||||
order: Order
|
||||
|
||||
@FeatureFlagDecorators(OrderEditingFeatureFlag.key, [
|
||||
OneToOne(() => Payment, { nullable: true }),
|
||||
JoinColumn({ name: "payment_id" }),
|
||||
])
|
||||
@OneToOne(() => Payment, { nullable: true })
|
||||
@JoinColumn({ name: "payment_id" })
|
||||
payment: Payment
|
||||
|
||||
@Column({ type: "int" })
|
||||
|
||||
@@ -4,7 +4,6 @@ import LineItemService from "../line-item"
|
||||
import { PricingServiceMock } from "../__mocks__/pricing"
|
||||
import { ProductVariantServiceMock } from "../__mocks__/product-variant"
|
||||
import { RegionServiceMock } from "../__mocks__/region"
|
||||
|
||||
;[true, false].forEach((isTaxInclusiveEnabled) => {
|
||||
describe(`tax inclusive flag set to: ${isTaxInclusiveEnabled}`, () => {
|
||||
describe("LineItemService", () => {
|
||||
@@ -428,6 +427,7 @@ describe("LineItemService", () => {
|
||||
thumbnail: "",
|
||||
variant_id: IdMap.getId("test-variant"),
|
||||
quantity: 1,
|
||||
order_edit_id: null,
|
||||
allow_discounts: undefined,
|
||||
is_giftcard: undefined,
|
||||
metadata: {},
|
||||
@@ -464,6 +464,7 @@ describe("LineItemService", () => {
|
||||
variant_id: IdMap.getId("test-variant"),
|
||||
quantity: 1,
|
||||
allow_discounts: undefined,
|
||||
order_edit_id: null,
|
||||
is_giftcard: undefined,
|
||||
metadata: {},
|
||||
should_merge: true,
|
||||
@@ -585,6 +586,7 @@ describe("LineItemService", () => {
|
||||
variant_id: IdMap.getId("test-variant"),
|
||||
quantity: 1,
|
||||
allow_discounts: undefined,
|
||||
order_edit_id: null,
|
||||
is_giftcard: undefined,
|
||||
metadata: {},
|
||||
should_merge: true,
|
||||
@@ -621,6 +623,7 @@ describe("LineItemService", () => {
|
||||
quantity: 1,
|
||||
allow_discounts: undefined,
|
||||
is_giftcard: undefined,
|
||||
order_edit_id: null,
|
||||
metadata: {},
|
||||
should_merge: true,
|
||||
includes_tax: false,
|
||||
|
||||
@@ -3,7 +3,6 @@ import { EntityManager, In } from "typeorm"
|
||||
import { DeepPartial } from "typeorm/common/DeepPartial"
|
||||
|
||||
import { TransactionBaseService } from "../interfaces"
|
||||
import OrderEditingFeatureFlag from "../loaders/feature-flags/order-editing"
|
||||
import TaxInclusivePricingFeatureFlag from "../loaders/feature-flags/tax-inclusive-pricing"
|
||||
import {
|
||||
LineItem,
|
||||
@@ -70,6 +69,7 @@ class LineItemService extends TransactionBaseService {
|
||||
taxProviderService,
|
||||
featureFlagRouter,
|
||||
}: InjectedDependencies) {
|
||||
// eslint-disable-next-line prefer-rest-params
|
||||
super(arguments[0])
|
||||
|
||||
this.manager_ = manager
|
||||
@@ -348,9 +348,7 @@ class LineItemService extends TransactionBaseService {
|
||||
rawLineItem.includes_tax = unitPriceIncludesTax
|
||||
}
|
||||
|
||||
if (this.featureFlagRouter_.isFeatureEnabled(OrderEditingFeatureFlag.key)) {
|
||||
rawLineItem.order_edit_id = context.order_edit_id || null
|
||||
}
|
||||
rawLineItem.order_edit_id = context.order_edit_id || null
|
||||
|
||||
const lineItemRepo = transactionManager.getCustomRepository(
|
||||
this.lineItemRepository_
|
||||
|
||||
@@ -1,18 +1,12 @@
|
||||
import { isDefined, MedusaError } from "medusa-core-utils"
|
||||
import { BasePaymentService } from "medusa-interfaces"
|
||||
import { EntityManager } from "typeorm"
|
||||
import {
|
||||
AbstractPaymentService,
|
||||
PaymentContext,
|
||||
PaymentSessionResponse,
|
||||
TransactionBaseService,
|
||||
} from "../interfaces"
|
||||
import { EntityManager } from "typeorm"
|
||||
import { PaymentSessionRepository } from "../repositories/payment-session"
|
||||
import { PaymentRepository } from "../repositories/payment"
|
||||
import { RefundRepository } from "../repositories/refund"
|
||||
import { PaymentProviderRepository } from "../repositories/payment-provider"
|
||||
import { buildQuery, isString } from "../utils"
|
||||
import { FindConfig, Selector } from "../types/common"
|
||||
import {
|
||||
Cart,
|
||||
Payment,
|
||||
@@ -21,12 +15,17 @@ import {
|
||||
PaymentSessionStatus,
|
||||
Refund,
|
||||
} from "../models"
|
||||
import { FlagRouter } from "../utils/flag-router"
|
||||
import OrderEditingFeatureFlag from "../loaders/feature-flags/order-editing"
|
||||
import PaymentService from "./payment"
|
||||
import { PaymentRepository } from "../repositories/payment"
|
||||
import { PaymentProviderRepository } from "../repositories/payment-provider"
|
||||
import { PaymentSessionRepository } from "../repositories/payment-session"
|
||||
import { RefundRepository } from "../repositories/refund"
|
||||
import { FindConfig, Selector } from "../types/common"
|
||||
import { Logger } from "../types/global"
|
||||
import { CreatePaymentInput, PaymentSessionInput } from "../types/payment"
|
||||
import { buildQuery, isString } from "../utils"
|
||||
import { FlagRouter } from "../utils/flag-router"
|
||||
import { CustomerService } from "./index"
|
||||
import PaymentService from "./payment"
|
||||
|
||||
type PaymentProviderKey = `pp_${string}` | "systemPaymentProviderService"
|
||||
type InjectedDependencies = {
|
||||
@@ -414,10 +413,7 @@ export default class PaymentProviderService extends TransactionBaseService {
|
||||
session.data = data
|
||||
session.status = status
|
||||
|
||||
if (
|
||||
this.featureFlagRouter_.isFeatureEnabled(OrderEditingFeatureFlag.key) &&
|
||||
status === PaymentSessionStatus.AUTHORIZED
|
||||
) {
|
||||
if (status === PaymentSessionStatus.AUTHORIZED) {
|
||||
session.payment_authorized_at = new Date()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user