Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: do not pass additional_data to service (#9532)
Fixes: FRMW-2743 This PR extracts and removes the `additional_data` from the workflow input before calling the steps and hence the `additional_data` is not passed down to the service layer. However, this bug has made me discover one inconsistency in the input structure of certain workflows. ✅ **Following is the input structure of the `updateProductsWorkflow`**. Here, we accept the `products` and the `additional_data` as two separate top-level properties. ```ts // Shape export type UpdateProductsWorkflowInputSelector = { selector: ProductTypes.FilterableProductProps update: Omit<ProductTypes.UpdateProductDTO, "variants"> & { sales_channels?: { id: string }[] variants?: UpdateProductVariantWorkflowInputDTO[] } } & AdditionalData // Calling the workflow const { result } = await updateProductsWorkflow(req.scope).run({ input: { selector: { id: req.params.id }, update, additional_data, }, }) ``` ❌ **Following in the input structure of the `updateCartWorflow`**. In this case, we are accepting the cart properties at the top-level, hence the `additional_data` is merged within those properties, increasing the chance of passing it down to the service layer by mistake. ```ts // Shape WorkflowData<UpdateCartWorkflowInputDTO & AdditionalData> // Calling the workflow await workflow.run({ input: { ...req.validatedBody // Additional data is part of the validatedBody, id: req.params.id, }, }) ``` Ideally, the input of `updateCartWorkflow` should look as follows. ```ts WorkflowData<{ cart: UpdateCartWorkflowInputDTO } & AdditionalData> ```
- Loading branch information