fix(dashboard, js-sdk, types, medusa): separate between delete response with and without parent (#8852)

- Separate the previous `DeleteResponse` to `DeleteResponse` and `DeleteResponseWithParent`, as not every API route's delete response returns a parent. This ensures more accurate types shown in OAS / documentation.
- Use `DeleteResponse` or `DeleteResponseWithParent` in response API routes based on what they return
- Remove direct usage of `DeleteResponse` in API route, and instead create a type in the `type` package specific for the route / domain.
- Use the new types in the `js-sdk` and `dashboard`.
This commit is contained in:
Shahed Nasser
2024-08-30 10:15:02 +03:00
committed by GitHub
parent 9f495fd853
commit 0ee5c2d501
57 changed files with 145 additions and 106 deletions
@@ -10,7 +10,7 @@ import {
import { refetchApiKey } from "../helpers"
import { AdminUpdateApiKeyType } from "../validators"
import { MedusaError } from "@medusajs/utils"
import { DeleteResponse, HttpTypes } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
export const GET = async (
req: AuthenticatedMedusaRequest,
@@ -54,7 +54,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"api_key">>
res: MedusaResponse<HttpTypes.AdminApiKeyDeleteResponse>
) => {
const id = req.params.id
@@ -10,7 +10,7 @@ import {
import { refetchCampaign } from "../helpers"
import { AdminUpdateCampaignType } from "../validators"
import { MedusaError } from "@medusajs/utils"
import { AdditionalData, DeleteResponse, HttpTypes } from "@medusajs/types"
import { AdditionalData, HttpTypes } from "@medusajs/types"
export const GET = async (
req: AuthenticatedMedusaRequest,
@@ -59,7 +59,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"campaign">>
res: MedusaResponse<HttpTypes.AdminCampaignDeleteResponse>
) => {
const id = req.params.id
const deleteCampaigns = deleteCampaignsWorkflow(req.scope)
@@ -10,7 +10,7 @@ import {
import { MedusaError } from "@medusajs/utils"
import { refetchCustomerGroup } from "../helpers"
import { AdminUpdateCustomerGroupType } from "../validators"
import { DeleteResponse, HttpTypes } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
export const GET = async (
req: AuthenticatedMedusaRequest,
@@ -53,7 +53,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"customer_group">>
res: MedusaResponse<HttpTypes.AdminCustomerGroupDeleteResponse>
) => {
const id = req.params.id
const deleteCustomerGroups = deleteCustomerGroupsWorkflow(req.scope)
@@ -13,7 +13,7 @@ import {
} from "@medusajs/utils"
import { AdminCreateCustomerAddressType } from "../../../validators"
import { refetchCustomer } from "../../../helpers"
import { AdditionalData, DeleteResponse, HttpTypes } from "@medusajs/types"
import { AdditionalData, HttpTypes } from "@medusajs/types"
export const GET = async (
req: AuthenticatedMedusaRequest,
@@ -61,7 +61,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"customer_address">>
res: MedusaResponse<HttpTypes.AdminCustomerAddressDeleteResponse>
) => {
const id = req.params.address_id
const deleteAddress = deleteCustomerAddressesWorkflow(req.scope)
@@ -2,7 +2,7 @@ import {
deleteCustomersWorkflow,
updateCustomersWorkflow,
} from "@medusajs/core-flows"
import { AdditionalData, DeleteResponse, HttpTypes } from "@medusajs/types"
import { AdditionalData, HttpTypes } from "@medusajs/types"
import { MedusaError } from "@medusajs/utils"
import {
AuthenticatedMedusaRequest,
@@ -55,7 +55,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"customer">>
res: MedusaResponse<HttpTypes.AdminCustomerDeleteResponse>
) => {
const id = req.params.id
const deleteCustomers = deleteCustomersWorkflow(req.scope)
@@ -2,7 +2,7 @@ import {
cancelBeginOrderExchangeWorkflow,
confirmExchangeRequestWorkflow,
} from "@medusajs/core-flows"
import { DeleteResponse, HttpTypes } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
import {
ContainerRegistrationKeys,
remoteQueryObjectFromString,
@@ -66,7 +66,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"exchange">>
res: MedusaResponse<HttpTypes.AdminExchangeDeleteResponse>
) => {
const { id } = req.params
@@ -5,7 +5,7 @@ import {
import {
AdminFulfillmentSetResponse,
AdminServiceZoneResponse,
DeleteResponse,
HttpTypes,
IFulfillmentModuleService,
} from "@medusajs/types"
import {
@@ -94,7 +94,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"service_zone">>
res: MedusaResponse<HttpTypes.AdminServiceZoneDeleteResponse>
) => {
const { id, zone_id } = req.params
@@ -125,6 +125,6 @@ export const DELETE = async (
id: zone_id,
object: "service_zone",
deleted: true,
parent: fulfillmentSet,
parent: fulfillmentSet as unknown as HttpTypes.AdminFulfillmentSet,
})
}
@@ -11,11 +11,11 @@ import {
} from "@medusajs/core-flows"
import { refetchInventoryItem } from "../../../helpers"
import { AdminUpdateInventoryLocationLevelType } from "../../../validators"
import { DeleteResponse, HttpTypes } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
export const DELETE = async (
req: MedusaRequest,
res: MedusaResponse<DeleteResponse<"inventory-level">>
res: MedusaResponse<HttpTypes.AdminInventoryLevelDeleteResponse>
) => {
const { id, location_id } = req.params
@@ -9,7 +9,7 @@ import {
AdminUpdateInventoryItemType,
} from "../validators"
import { refetchInventoryItem } from "../helpers"
import { DeleteResponse, HttpTypes } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
export const GET = async (
req: MedusaRequest<AdminGetInventoryItemParamsType>,
@@ -59,7 +59,7 @@ export const POST = async (
export const DELETE = async (
req: MedusaRequest,
res: MedusaResponse<DeleteResponse<"inventory_item">>
res: MedusaResponse<HttpTypes.AdminInventoryItemDeleteResponse>
) => {
const id = req.params.id
const deleteInventoryItems = deleteInventoryItemWorkflow(req.scope)
@@ -6,7 +6,7 @@ import { MedusaError } from "@medusajs/utils"
import { deleteInvitesWorkflow } from "@medusajs/core-flows"
import { refetchInvite } from "../helpers"
import { DeleteResponse, HttpTypes } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
export const GET = async (
req: AuthenticatedMedusaRequest,
@@ -31,7 +31,7 @@ export const GET = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"invite">>
res: MedusaResponse<HttpTypes.AdminInviteDeleteResponse>
) => {
const { id } = req.params
const workflow = deleteInvitesWorkflow(req.scope)
@@ -1,5 +1,5 @@
import { cancelBeginOrderEditWorkflow } from "@medusajs/core-flows"
import { DeleteResponse } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
import {
AuthenticatedMedusaRequest,
MedusaResponse,
@@ -7,7 +7,7 @@ import {
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"order-edit">>
res: MedusaResponse<HttpTypes.AdminOrderEditDeleteResponse>
) => {
const { id } = req.params
@@ -1,5 +1,5 @@
import { deleteOrderPaymentCollections } from "@medusajs/core-flows"
import { DeleteResponse } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
import {
AuthenticatedMedusaRequest,
MedusaResponse,
@@ -7,7 +7,7 @@ import {
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"payment-collection">>
res: MedusaResponse<HttpTypes.AdminDeletePaymentCollectionResponse>
) => {
const { id } = req.params
@@ -16,7 +16,7 @@ import {
AdminGetPromotionParamsType,
AdminUpdatePromotionType,
} from "../validators"
import { AdditionalData, DeleteResponse, HttpTypes } from "@medusajs/types"
import { AdditionalData, HttpTypes } from "@medusajs/types"
export const GET = async (
req: AuthenticatedMedusaRequest<AdminGetPromotionParamsType>,
@@ -71,7 +71,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"promotion">>
res: MedusaResponse<HttpTypes.AdminPromotionDeleteResponse>
) => {
const id = req.params.id
const deletePromotions = deletePromotionsWorkflow(req.scope)
@@ -2,7 +2,7 @@ import {
deleteReturnReasonsWorkflow,
updateRefundReasonsWorkflow,
} from "@medusajs/core-flows"
import { DeleteResponse, RefundReasonResponse } from "@medusajs/types"
import { HttpTypes, RefundReasonResponse } from "@medusajs/types"
import {
AuthenticatedMedusaRequest,
MedusaResponse,
@@ -51,7 +51,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"refund_reason">>
res: MedusaResponse<HttpTypes.AdminRefundReasonDeleteResponse>
) => {
const { id } = req.params
const input = { ids: [id] }
@@ -9,7 +9,7 @@ import {
} from "../../../../types/routing"
import { refetchRegion } from "../helpers"
import { AdminGetRegionParamsType, AdminUpdateRegionType } from "../validators"
import { DeleteResponse, HttpTypes } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
export const GET = async (
req: AuthenticatedMedusaRequest<AdminGetRegionParamsType>,
@@ -53,7 +53,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"region">>
res: MedusaResponse<HttpTypes.AdminRegionDeleteResponse>
) => {
const id = req.params.id
@@ -10,7 +10,7 @@ import { MedusaError } from "@medusajs/utils"
import { deleteReservationsWorkflow } from "@medusajs/core-flows"
import { updateReservationsWorkflow } from "@medusajs/core-flows"
import { refetchReservation } from "../helpers"
import { DeleteResponse, HttpTypes } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
export const GET = async (
req: AuthenticatedMedusaRequest<AdminGetReservationParamsType>,
@@ -55,7 +55,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"reservation">>
res: MedusaResponse<HttpTypes.AdminReservationDeleteResponse>
) => {
const id = req.params.id
@@ -4,7 +4,7 @@ import {
} from "@medusajs/core-flows"
import {
AdminReturnReasonResponse,
DeleteResponse,
HttpTypes,
UpdateOrderReturnReasonDTO,
} from "@medusajs/types"
import {
@@ -69,7 +69,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"return_reason">>
res: MedusaResponse<HttpTypes.AdminReturnReasonDeleteResponse>
) => {
const { id } = req.params
@@ -13,7 +13,7 @@ import {
MedusaResponse,
} from "../../../../../types/routing"
import { AdminPostReceiveReturnsReqSchemaType } from "../../validators"
import { DeleteResponse, HttpTypes } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReceiveReturnsReqSchemaType>,
@@ -56,7 +56,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"return">>
res: MedusaResponse<HttpTypes.AdminReturnDeleteResponse>
) => {
const { id } = req.params
@@ -2,7 +2,7 @@ import {
cancelReturnRequestWorkflow,
confirmReturnRequestWorkflow,
} from "@medusajs/core-flows"
import { DeleteResponse, HttpTypes } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
import {
ContainerRegistrationKeys,
remoteQueryObjectFromString,
@@ -49,7 +49,7 @@ export const POST = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"return">>
res: MedusaResponse<HttpTypes.AdminReturnDeleteResponse>
) => {
const { id } = req.params
@@ -4,11 +4,11 @@ import {
MedusaResponse,
} from "../../../../../../types/routing"
import { refetchTaxRate } from "../../../helpers"
import { DeleteResponse } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"tax_rate_rule">>
res: MedusaResponse<HttpTypes.AdminTaxRateRuleDeleteResponse>
) => {
await deleteTaxRateRulesWorkflow(req.scope).run({
input: { ids: [req.params.rule_id] },
@@ -3,7 +3,7 @@ import {
MedusaResponse,
} from "../../../../types/routing"
import { deleteFilesWorkflow } from "@medusajs/core-flows"
import { DeleteResponse, HttpTypes } from "@medusajs/types"
import { HttpTypes } from "@medusajs/types"
import { ContainerRegistrationKeys, MedusaError } from "@medusajs/utils"
import { remoteQueryObjectFromString } from "@medusajs/utils"
@@ -33,7 +33,7 @@ export const GET = async (
export const DELETE = async (
req: AuthenticatedMedusaRequest,
res: MedusaResponse<DeleteResponse<"file">>
res: MedusaResponse<HttpTypes.AdminFileDeleteResponse>
) => {
const id = req.params.id