fix(core-flows, types, medusa): fix batch delete types in workflows and routes (#8974)

- Fix the returned data of batch delete steps / workflows for deleted records to just be the array of IDs.
- Add a new type `BatchResponse` for API routes to have a different shape for deleted records
- Update batch delete helpers to return the expected shape for API routes
This commit is contained in:
Shahed Nasser
2024-09-04 18:22:48 +00:00
committed by GitHub
parent f063a69632
commit ee3580efdb
12 changed files with 48 additions and 40 deletions
@@ -33,7 +33,7 @@ export const deleteShippingOptionRulesStep = createStep(
await fulfillmentModule.deleteShippingOptionRules(ids)
return new StepResponse(null, shippingOptionRules)
return new StepResponse(ids, shippingOptionRules)
},
async (shippingOptionRules, { container }) => {
if (!shippingOptionRules?.length) {
@@ -54,11 +54,7 @@ export const batchProductVariantsWorkflow = createWorkflow(
return {
created: data.res[0],
updated: data.res[1],
deleted: {
ids: data.input.delete ?? [],
object: "product_variant",
deleted: true,
},
deleted: data.input.delete ?? [],
}
})
@@ -47,11 +47,7 @@ export const batchProductsWorkflow = createWorkflow(
return {
created: data.res[0],
updated: data.res[1],
deleted: {
ids: data.input.delete ?? [],
object: "product",
deleted: true,
},
deleted: data.input.delete ?? [],
}
})
)
@@ -22,11 +22,7 @@ export const deletePromotionRulesWorkflowStep = createStep(
}
return new StepResponse(
{
ids: data.data.rule_ids ?? [],
object: "promotion-rule",
deleted: true,
},
data.data.rule_ids ?? [],
transaction
)
},
+1 -5
View File
@@ -18,11 +18,7 @@ export type BatchMethodRequest<TCreate, TUpdate, TDelete = string> = {
export type BatchMethodResponse<T> = {
created: T[]
updated: T[]
deleted: {
ids: string[]
object: string
deleted: boolean
}
deleted: string[]
}
export type BatchWorkflowInput<
@@ -29,3 +29,13 @@ export type PaginatedResponse<T> = {
offset: number
count: number
} & T
export type BatchResponse<T> = {
created: T[]
updated: T[]
deleted: {
ids: string[]
object: string
deleted: boolean
}
}
@@ -1,5 +1,4 @@
import { BatchMethodResponse } from "../../../common"
import { DeleteResponse, DeleteResponseWithParent, PaginatedResponse } from "../../common"
import { BatchResponse, DeleteResponse, DeleteResponseWithParent, PaginatedResponse } from "../../common"
import {
AdminProduct,
AdminProductOption,
@@ -19,7 +18,7 @@ export type AdminProductListResponse = PaginatedResponse<{
export interface AdminProductDeleteResponse extends DeleteResponse<"product"> {}
export interface AdminBatchProductResponse
extends BatchMethodResponse<AdminProduct> {}
extends BatchResponse<AdminProduct> {}
export interface AdminProductVariantResponse {
variant: AdminProductVariant
@@ -45,10 +44,10 @@ export interface AdminImportProductResponse {
}
export interface AdminBatchProductVariantResponse
extends BatchMethodResponse<AdminProductVariant> {}
extends BatchResponse<AdminProductVariant> {}
export interface AdminBatchProductVariantInventoryItemResponse
extends BatchMethodResponse<AdminInventoryItem> {}
extends BatchResponse<AdminInventoryItem> {}
export interface AdminProductOptionResponse {
product_option: AdminProductOption
@@ -1,5 +1,4 @@
import { BatchMethodResponse } from "../../../common";
import { DeleteResponse, PaginatedResponse } from "../../common";
import { BatchResponse, DeleteResponse, PaginatedResponse } from "../../common";
import {
AdminPromotion,
AdminPromotionRule,
@@ -54,6 +53,6 @@ export type AdminRuleValueOptionsListResponse = {
values: AdminRuleValueOption[]
}
export type AdminPromotionRuleBatchResponse = BatchMethodResponse<AdminPromotionRule>
export type AdminPromotionRuleBatchResponse = BatchResponse<AdminPromotionRule>
export type AdminPromotionDeleteResponse = DeleteResponse<"promotion">
@@ -1,5 +1,4 @@
import { BatchMethodResponse } from "../../../common"
import { DeleteResponse, PaginatedResponse } from "../../common"
import { BatchResponse, DeleteResponse, PaginatedResponse } from "../../common"
import { AdminShippingOption, AdminShippingOptionRule } from "./entities"
export interface AdminShippingOptionResponse {
@@ -13,4 +12,4 @@ export type AdminShippingOptionListResponse = PaginatedResponse<{
export interface AdminShippingOptionDeleteResponse
extends DeleteResponse<"shipping_option"> {}
export type AdminUpdateShippingOptionRulesResponse = BatchMethodResponse<AdminShippingOptionRule>
export type AdminUpdateShippingOptionRulesResponse = BatchResponse<AdminShippingOptionRule>