Feat: admin return reason list (#8482)
* feat: add missing endpoints to return reason sdk * add return reason list route * add return reason query hooks * fix update return reasons in order modules service * fix store/return-reasons middleware * add missing tests for /return-resasons/:id
This commit is contained in:
@@ -2,15 +2,18 @@ import {
|
||||
BigNumberInput,
|
||||
Context,
|
||||
DAL,
|
||||
FilterableOrderReturnReasonProps,
|
||||
FindConfig,
|
||||
InternalModuleDeclaration,
|
||||
IOrderModuleService,
|
||||
ModulesSdkTypes,
|
||||
OrderDTO,
|
||||
OrderReturnReasonDTO,
|
||||
OrderTypes,
|
||||
RestoreReturn,
|
||||
SoftDeleteReturn,
|
||||
UpdateOrderItemWithSelectorDTO,
|
||||
UpdateOrderReturnReasonDTO,
|
||||
} from "@medusajs/types"
|
||||
import {
|
||||
BigNumber,
|
||||
@@ -68,6 +71,7 @@ import {
|
||||
UpdateOrderLineItemTaxLineDTO,
|
||||
UpdateOrderShippingMethodTaxLineDTO,
|
||||
} from "@types"
|
||||
import { UpdateReturnReasonDTO } from "src/types/return-reason"
|
||||
import {
|
||||
applyChangesToOrder,
|
||||
ApplyOrderChangeDTO,
|
||||
@@ -3250,6 +3254,56 @@ export default class OrderModuleService<
|
||||
)
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
updateReturnReasons(
|
||||
id: string,
|
||||
data: UpdateOrderReturnReasonDTO,
|
||||
sharedContext?: Context
|
||||
): Promise<OrderReturnReasonDTO>
|
||||
updateReturnReasons(
|
||||
selector: FilterableOrderReturnReasonProps,
|
||||
data: Partial<UpdateOrderReturnReasonDTO>,
|
||||
sharedContext?: Context
|
||||
): Promise<OrderReturnReasonDTO[]>
|
||||
|
||||
@InjectManager("baseRepository_")
|
||||
async updateReturnReasons(
|
||||
idOrSelector: string | FilterableOrderReturnReasonProps,
|
||||
data: UpdateOrderReturnReasonDTO,
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
): Promise<OrderReturnReasonDTO[] | OrderReturnReasonDTO> {
|
||||
let normalizedInput: UpdateReturnReasonDTO[] = []
|
||||
if (isString(idOrSelector)) {
|
||||
// Check if the return reason exists in the first place
|
||||
await this.returnReasonService_.retrieve(idOrSelector, {}, sharedContext)
|
||||
normalizedInput = [{ id: idOrSelector, ...data }]
|
||||
} else {
|
||||
const reasons = await this.returnReasonService_.list(
|
||||
idOrSelector,
|
||||
{},
|
||||
sharedContext
|
||||
)
|
||||
|
||||
normalizedInput = reasons.map((reason) => ({
|
||||
id: reason.id,
|
||||
...data,
|
||||
}))
|
||||
}
|
||||
|
||||
const reasons = await this.returnReasonService_.update(
|
||||
normalizedInput,
|
||||
sharedContext
|
||||
)
|
||||
|
||||
const updatedReturnReasons = await this.baseRepository_.serialize<
|
||||
OrderReturnReasonDTO[]
|
||||
>(reasons)
|
||||
|
||||
return isString(idOrSelector)
|
||||
? updatedReturnReasons[0]
|
||||
: updatedReturnReasons
|
||||
}
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
async createExchange_(
|
||||
data: OrderTypes.CreateOrderExchangeDTO,
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
import { UpdateOrderReturnReasonDTO } from "@medusajs/types"
|
||||
|
||||
export type UpdateReturnReasonDTO = UpdateOrderReturnReasonDTO & {
|
||||
id: string
|
||||
}
|
||||
Reference in New Issue
Block a user