chore: Refactor and improve abstract module service factory (#7688)

* chore: Refactor and improve abstract module service factory

* align naming

* clean up some template args and tests

* partially migrate modules

* partially migrate modules

* migrate more modules

* migrate last modules

* fix typings

* rename interface

* rename interface

* fixes

* fixes

* rm local plain tests
This commit is contained in:
Adrien de Peretti
2024-06-13 13:12:37 +02:00
committed by GitHub
parent c57223a3a2
commit d2a5201eeb
44 changed files with 590 additions and 519 deletions

View File

@@ -6,12 +6,12 @@ import {
RepositoryService,
} from "@medusajs/types"
import {
deduplicate,
InjectManager,
InjectTransactionManager,
MedusaContext,
MedusaError,
ModulesSdkUtils,
deduplicate,
} from "@medusajs/utils"
import { OrderChange } from "@models"
import { OrderChangeStatus } from "@types"
@@ -22,7 +22,7 @@ type InjectedDependencies = {
export default class OrderChangeService<
TEntity extends OrderChange = OrderChange
> extends ModulesSdkUtils.internalModuleServiceFactory<InjectedDependencies>(
> extends ModulesSdkUtils.MedusaInternalService<InjectedDependencies>(
OrderChange
)<TEntity> {
protected readonly orderChangeRepository_: RepositoryService<TEntity>

View File

@@ -76,24 +76,24 @@ import OrderService from "./order-service"
type InjectedDependencies = {
baseRepository: DAL.RepositoryService
orderService: OrderService<any>
addressService: ModulesSdkTypes.InternalModuleService<any>
lineItemService: ModulesSdkTypes.InternalModuleService<any>
shippingMethodAdjustmentService: ModulesSdkTypes.InternalModuleService<any>
shippingMethodService: ModulesSdkTypes.InternalModuleService<any>
lineItemAdjustmentService: ModulesSdkTypes.InternalModuleService<any>
lineItemTaxLineService: ModulesSdkTypes.InternalModuleService<any>
shippingMethodTaxLineService: ModulesSdkTypes.InternalModuleService<any>
transactionService: ModulesSdkTypes.InternalModuleService<any>
addressService: ModulesSdkTypes.IMedusaInternalService<any>
lineItemService: ModulesSdkTypes.IMedusaInternalService<any>
shippingMethodAdjustmentService: ModulesSdkTypes.IMedusaInternalService<any>
shippingMethodService: ModulesSdkTypes.IMedusaInternalService<any>
lineItemAdjustmentService: ModulesSdkTypes.IMedusaInternalService<any>
lineItemTaxLineService: ModulesSdkTypes.IMedusaInternalService<any>
shippingMethodTaxLineService: ModulesSdkTypes.IMedusaInternalService<any>
transactionService: ModulesSdkTypes.IMedusaInternalService<any>
orderChangeService: OrderChangeService<any>
orderChangeActionService: ModulesSdkTypes.InternalModuleService<any>
orderItemService: ModulesSdkTypes.InternalModuleService<any>
orderSummaryService: ModulesSdkTypes.InternalModuleService<any>
orderShippingMethodService: ModulesSdkTypes.InternalModuleService<any>
returnReasonService: ModulesSdkTypes.InternalModuleService<any>
returnService: ModulesSdkTypes.InternalModuleService<any>
orderChangeActionService: ModulesSdkTypes.IMedusaInternalService<any>
orderItemService: ModulesSdkTypes.IMedusaInternalService<any>
orderSummaryService: ModulesSdkTypes.IMedusaInternalService<any>
orderShippingMethodService: ModulesSdkTypes.IMedusaInternalService<any>
returnReasonService: ModulesSdkTypes.IMedusaInternalService<any>
returnService: ModulesSdkTypes.IMedusaInternalService<any>
}
const generateMethodForModels = [
const generateMethodForModels = {
Address,
LineItem,
LineItemAdjustment,
@@ -109,7 +109,7 @@ const generateMethodForModels = [
OrderShippingMethod,
ReturnReason,
Return,
]
}
export default class OrderModuleService<
TOrder extends Order = Order,
@@ -129,8 +129,7 @@ export default class OrderModuleService<
TReturnReason extends ReturnReason = ReturnReason,
TReturn extends Return = Return
>
extends ModulesSdkUtils.abstractModuleServiceFactory<
InjectedDependencies,
extends ModulesSdkUtils.MedusaService<
OrderTypes.OrderDTO,
{
Address: { dto: OrderTypes.OrderAddressDTO }
@@ -156,21 +155,21 @@ export default class OrderModuleService<
{
protected baseRepository_: DAL.RepositoryService
protected orderService_: OrderService<TOrder>
protected addressService_: ModulesSdkTypes.InternalModuleService<TAddress>
protected lineItemService_: ModulesSdkTypes.InternalModuleService<TLineItem>
protected shippingMethodAdjustmentService_: ModulesSdkTypes.InternalModuleService<TShippingMethodAdjustment>
protected shippingMethodService_: ModulesSdkTypes.InternalModuleService<TShippingMethod>
protected lineItemAdjustmentService_: ModulesSdkTypes.InternalModuleService<TLineItemAdjustment>
protected lineItemTaxLineService_: ModulesSdkTypes.InternalModuleService<TLineItemTaxLine>
protected shippingMethodTaxLineService_: ModulesSdkTypes.InternalModuleService<TShippingMethodTaxLine>
protected transactionService_: ModulesSdkTypes.InternalModuleService<TTransaction>
protected addressService_: ModulesSdkTypes.IMedusaInternalService<TAddress>
protected lineItemService_: ModulesSdkTypes.IMedusaInternalService<TLineItem>
protected shippingMethodAdjustmentService_: ModulesSdkTypes.IMedusaInternalService<TShippingMethodAdjustment>
protected shippingMethodService_: ModulesSdkTypes.IMedusaInternalService<TShippingMethod>
protected lineItemAdjustmentService_: ModulesSdkTypes.IMedusaInternalService<TLineItemAdjustment>
protected lineItemTaxLineService_: ModulesSdkTypes.IMedusaInternalService<TLineItemTaxLine>
protected shippingMethodTaxLineService_: ModulesSdkTypes.IMedusaInternalService<TShippingMethodTaxLine>
protected transactionService_: ModulesSdkTypes.IMedusaInternalService<TTransaction>
protected orderChangeService_: OrderChangeService<TOrderChange>
protected orderChangeActionService_: ModulesSdkTypes.InternalModuleService<TOrderChangeAction>
protected orderItemService_: ModulesSdkTypes.InternalModuleService<TOrderItem>
protected orderSummaryService_: ModulesSdkTypes.InternalModuleService<TOrderSummary>
protected orderShippingMethodService_: ModulesSdkTypes.InternalModuleService<TOrderShippingMethod>
protected returnReasonService_: ModulesSdkTypes.InternalModuleService<TReturnReason>
protected returnService_: ModulesSdkTypes.InternalModuleService<TReturn>
protected orderChangeActionService_: ModulesSdkTypes.IMedusaInternalService<TOrderChangeAction>
protected orderItemService_: ModulesSdkTypes.IMedusaInternalService<TOrderItem>
protected orderSummaryService_: ModulesSdkTypes.IMedusaInternalService<TOrderSummary>
protected orderShippingMethodService_: ModulesSdkTypes.IMedusaInternalService<TOrderShippingMethod>
protected returnReasonService_: ModulesSdkTypes.IMedusaInternalService<TReturnReason>
protected returnService_: ModulesSdkTypes.IMedusaInternalService<TReturn>
constructor(
{
@@ -553,6 +552,7 @@ export default class OrderModuleService<
return result
}
// @ts-ignore
createLineItems(
data: OrderTypes.CreateOrderLineItemForOrderDTO
): Promise<OrderTypes.OrderLineItemDTO[]>
@@ -670,6 +670,7 @@ export default class OrderModuleService<
return lineItems
}
// @ts-ignore
updateLineItems(
data: OrderTypes.UpdateOrderLineItemWithSelectorDTO[]
): Promise<OrderTypes.OrderLineItemDTO[]>
@@ -883,6 +884,7 @@ export default class OrderModuleService<
return await this.orderItemService_.update(toUpdate, sharedContext)
}
// @ts-ignore
async createAddresses(
data: OrderTypes.CreateOrderAddressDTO,
sharedContext?: Context
@@ -919,6 +921,7 @@ export default class OrderModuleService<
return await this.addressService_.create(data, sharedContext)
}
// @ts-ignore
async updateAddresses(
data: OrderTypes.UpdateOrderAddressDTO,
sharedContext?: Context
@@ -955,6 +958,7 @@ export default class OrderModuleService<
return await this.addressService_.update(data, sharedContext)
}
// @ts-ignore
async createShippingMethods(
data: OrderTypes.CreateOrderShippingMethodDTO
): Promise<OrderTypes.OrderShippingMethodDTO>
@@ -1059,6 +1063,7 @@ export default class OrderModuleService<
return sm.map((s) => s.shipping_method)
}
// @ts-ignore
async createLineItemAdjustments(
adjustments: OrderTypes.CreateOrderLineItemAdjustmentDTO[]
): Promise<OrderTypes.OrderLineItemAdjustmentDTO[]>
@@ -1228,6 +1233,7 @@ export default class OrderModuleService<
})
}
// @ts-ignore
async createShippingMethodAdjustments(
adjustments: OrderTypes.CreateOrderShippingMethodAdjustmentDTO[]
): Promise<OrderTypes.OrderShippingMethodAdjustmentDTO[]>
@@ -1302,6 +1308,7 @@ export default class OrderModuleService<
})
}
// @ts-ignore
createLineItemTaxLines(
taxLines: OrderTypes.CreateOrderLineItemTaxLineDTO[]
): Promise<OrderTypes.OrderLineItemTaxLineDTO[]>
@@ -1412,6 +1419,7 @@ export default class OrderModuleService<
})
}
// @ts-ignore
createShippingMethodTaxLines(
taxLines: OrderTypes.CreateOrderShippingMethodTaxLineDTO[]
): Promise<OrderTypes.OrderShippingMethodTaxLineDTO[]>
@@ -2319,6 +2327,7 @@ export default class OrderModuleService<
await this.orderSummaryService_.update(summaries, sharedContext)
}
// @ts-ignore
async createReturnReasons(
transactionData: OrderTypes.CreateOrderReturnReasonDTO,
sharedContext?: Context
@@ -2352,6 +2361,7 @@ export default class OrderModuleService<
)
}
// @ts-ignore
updateReturnReasons(
data: OrderTypes.UpdateOrderReturnReasonWithSelectorDTO[]
): Promise<OrderTypes.OrderReturnReasonDTO[]>

View File

@@ -19,7 +19,7 @@ type InjectedDependencies = {
export default class OrderService<
TEntity extends Order = Order
> extends ModulesSdkUtils.internalModuleServiceFactory<InjectedDependencies>(
> extends ModulesSdkUtils.MedusaInternalService<InjectedDependencies>(
Order
)<TEntity> {
protected readonly orderRepository_: RepositoryService<TEntity>