From b78e2862245b686ff848259c56cdd35c9ac722dd Mon Sep 17 00:00:00 2001 From: Shahed Nasser Date: Tue, 13 Aug 2024 09:38:56 +0300 Subject: [PATCH] chore(medusa,types): [10] Add request types to API routes (#8567) --- .../types/src/http/price-list/admin/responses.ts | 11 +++++++++++ .../types/src/http/product/admin/entitites.ts | 8 ++++++++ .../types/src/http/product/admin/responses.ts | 16 ++++++++++++++++ .../admin/price-lists/[id]/prices/batch/route.ts | 4 ++-- .../api/admin/price-lists/[id]/products/route.ts | 4 ++-- .../src/api/admin/price-lists/[id]/route.ts | 7 ++++--- .../medusa/src/api/admin/price-lists/route.ts | 5 +++-- .../api/admin/price-preferences/[id]/route.ts | 6 +++--- .../src/api/admin/price-preferences/route.ts | 4 ++-- .../api/admin/product-categories/[id]/route.ts | 4 ++-- .../src/api/admin/product-tags/[id]/route.ts | 7 ++++--- .../medusa/src/api/admin/product-tags/route.ts | 5 +++-- .../src/api/admin/product-types/[id]/route.ts | 7 ++++--- .../medusa/src/api/admin/product-types/route.ts | 5 +++-- .../inventory-items/[inventory_item_id]/route.ts | 7 ++++--- .../[variant_id]/inventory-items/route.ts | 3 ++- .../[id]/variants/inventory-items/batch/route.ts | 5 +++-- 17 files changed, 76 insertions(+), 32 deletions(-) diff --git a/packages/core/types/src/http/price-list/admin/responses.ts b/packages/core/types/src/http/price-list/admin/responses.ts index 99408d75e1..09cdc9b71b 100644 --- a/packages/core/types/src/http/price-list/admin/responses.ts +++ b/packages/core/types/src/http/price-list/admin/responses.ts @@ -1,4 +1,5 @@ import { DeleteResponse, PaginatedResponse } from "../../common" +import { AdminPrice } from "../../pricing" import { AdminPriceList } from "./entities" export interface AdminPriceListResponse { @@ -12,3 +13,13 @@ export interface AdminPriceListListResponse export interface AdminPriceListDeleteResponse extends DeleteResponse<"price_list"> {} + +export interface AdminPriceListBatchResponse { + created: AdminPrice[] + updated: AdminPrice[] + deleted: { + ids: string[] + object: "price" + deleted: boolean + } +} \ No newline at end of file diff --git a/packages/core/types/src/http/product/admin/entitites.ts b/packages/core/types/src/http/product/admin/entitites.ts index e18694d9ac..f440fd56dc 100644 --- a/packages/core/types/src/http/product/admin/entitites.ts +++ b/packages/core/types/src/http/product/admin/entitites.ts @@ -29,3 +29,11 @@ export interface AdminProduct tags?: AdminProductTag[] | null } export type AdminProductStatus = ProductStatus +export interface AdminProductVariantInventoryLink { + productService: { + variant_id: string + } + inventoryService: { + inventory_item_id: string + } +} \ No newline at end of file diff --git a/packages/core/types/src/http/product/admin/responses.ts b/packages/core/types/src/http/product/admin/responses.ts index 9f81655ceb..1b599b2cd8 100644 --- a/packages/core/types/src/http/product/admin/responses.ts +++ b/packages/core/types/src/http/product/admin/responses.ts @@ -4,6 +4,7 @@ import { AdminProduct, AdminProductOption, AdminProductVariant, + AdminProductVariantInventoryLink, } from "./entitites" import { AdminInventoryItem } from "../../inventory" @@ -59,3 +60,18 @@ export type AdminProductOptionListResponse = PaginatedResponse<{ export interface AdminProductOptionDeleteResponse extends DeleteResponse<"product_option", AdminProduct> {} + +export type AdminProductVariantInventoryResponse = AdminProductVariantInventoryLink | AdminProductVariantInventoryLink[] + +export interface AdminProductVariantInventoryBatchResponse { + created: AdminProductVariantInventoryResponse + updated: AdminProductVariantInventoryResponse + deleted: AdminProductVariantInventoryResponse +} + +export interface AdminProductVariantInventoryLinkDeleteResponse { + id: AdminProductVariantInventoryLink + object: "variant-inventory-item-link" + deleted: boolean + parent: AdminProductVariant +} \ No newline at end of file diff --git a/packages/medusa/src/api/admin/price-lists/[id]/prices/batch/route.ts b/packages/medusa/src/api/admin/price-lists/[id]/prices/batch/route.ts index 7b31cf5e65..e3194c9a4f 100644 --- a/packages/medusa/src/api/admin/price-lists/[id]/prices/batch/route.ts +++ b/packages/medusa/src/api/admin/price-lists/[id]/prices/batch/route.ts @@ -5,7 +5,7 @@ import { } from "../../../../../../types/routing" import { listPrices } from "../../../queries" import { adminPriceListPriceRemoteQueryFields } from "../../../query-config" -import { BatchMethodRequest } from "@medusajs/types" +import { BatchMethodRequest, HttpTypes } from "@medusajs/types" import { AdminCreatePriceListPriceType, AdminUpdatePriceListPriceType, @@ -19,7 +19,7 @@ export const POST = async ( AdminUpdatePriceListPriceType > >, - res: MedusaResponse + res: MedusaResponse ) => { const id = req.params.id const { diff --git a/packages/medusa/src/api/admin/price-lists/[id]/products/route.ts b/packages/medusa/src/api/admin/price-lists/[id]/products/route.ts index c754d1d3c3..b5d1b06b8a 100644 --- a/packages/medusa/src/api/admin/price-lists/[id]/products/route.ts +++ b/packages/medusa/src/api/admin/price-lists/[id]/products/route.ts @@ -1,5 +1,5 @@ import { batchPriceListPricesWorkflow } from "@medusajs/core-flows" -import { LinkMethodRequest } from "@medusajs/types" +import { HttpTypes, LinkMethodRequest } from "@medusajs/types" import { MedusaError } from "@medusajs/utils" import { AuthenticatedMedusaRequest, @@ -9,7 +9,7 @@ import { fetchPriceList, fetchPriceListPriceIdsForProduct } from "../../helpers" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const id = req.params.id const { add, remove = [] } = req.validatedBody diff --git a/packages/medusa/src/api/admin/price-lists/[id]/route.ts b/packages/medusa/src/api/admin/price-lists/[id]/route.ts index 04b4e13281..4c99816461 100644 --- a/packages/medusa/src/api/admin/price-lists/[id]/route.ts +++ b/packages/medusa/src/api/admin/price-lists/[id]/route.ts @@ -8,10 +8,11 @@ import { } from "../../../../types/routing" import { fetchPriceList } from "../helpers" import { AdminUpdatePriceListType } from "../validators" +import { HttpTypes } from "@medusajs/types" export const GET = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const price_list = await fetchPriceList( req.params.id, @@ -24,7 +25,7 @@ export const GET = async ( export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const id = req.params.id const workflow = updatePriceListsWorkflow(req.scope) @@ -44,7 +45,7 @@ export const POST = async ( export const DELETE = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const id = req.params.id const workflow = deletePriceListsWorkflow(req.scope) diff --git a/packages/medusa/src/api/admin/price-lists/route.ts b/packages/medusa/src/api/admin/price-lists/route.ts index 26c8cf3fc8..bd62179a34 100644 --- a/packages/medusa/src/api/admin/price-lists/route.ts +++ b/packages/medusa/src/api/admin/price-lists/route.ts @@ -9,10 +9,11 @@ import { } from "../../../types/routing" import { fetchPriceList, transformPriceList } from "./helpers" import { AdminCreatePriceListType } from "./validators" +import { HttpTypes } from "@medusajs/types" export const GET = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) @@ -37,7 +38,7 @@ export const GET = async ( export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const workflow = createPriceListsWorkflow(req.scope) const { result } = await workflow.run({ diff --git a/packages/medusa/src/api/admin/price-preferences/[id]/route.ts b/packages/medusa/src/api/admin/price-preferences/[id]/route.ts index 9693c68d43..ac0811a78f 100644 --- a/packages/medusa/src/api/admin/price-preferences/[id]/route.ts +++ b/packages/medusa/src/api/admin/price-preferences/[id]/route.ts @@ -12,7 +12,7 @@ import { refetchEntity } from "../../../utils/refetch-entity" export const GET = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const price_preference = await refetchEntity( "price_preference", @@ -26,7 +26,7 @@ export const GET = async ( export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const id = req.params.id const workflow = updatePricePreferencesWorkflow(req.scope) @@ -47,7 +47,7 @@ export const POST = async ( export const DELETE = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const id = req.params.id const workflow = deletePricePreferencesWorkflow(req.scope) diff --git a/packages/medusa/src/api/admin/price-preferences/route.ts b/packages/medusa/src/api/admin/price-preferences/route.ts index 2621ee661f..9e18fd3f71 100644 --- a/packages/medusa/src/api/admin/price-preferences/route.ts +++ b/packages/medusa/src/api/admin/price-preferences/route.ts @@ -8,7 +8,7 @@ import { createPricePreferencesWorkflow } from "@medusajs/core-flows" export const GET = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { rows: price_preferences, metadata } = await refetchEntities( "price_preference", @@ -27,7 +27,7 @@ export const GET = async ( export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const workflow = createPricePreferencesWorkflow(req.scope) const { result } = await workflow.run({ diff --git a/packages/medusa/src/api/admin/product-categories/[id]/route.ts b/packages/medusa/src/api/admin/product-categories/[id]/route.ts index c3aa1cc65a..25ef906faf 100644 --- a/packages/medusa/src/api/admin/product-categories/[id]/route.ts +++ b/packages/medusa/src/api/admin/product-categories/[id]/route.ts @@ -2,7 +2,7 @@ import { deleteProductCategoriesWorkflow, updateProductCategoriesWorkflow, } from "@medusajs/core-flows" -import { AdminProductCategoryResponse } from "@medusajs/types" +import { AdminProductCategoryResponse, HttpTypes } from "@medusajs/types" import { AuthenticatedMedusaRequest, MedusaResponse, @@ -57,7 +57,7 @@ export const POST = async ( export const DELETE = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const id = req.params.id diff --git a/packages/medusa/src/api/admin/product-tags/[id]/route.ts b/packages/medusa/src/api/admin/product-tags/[id]/route.ts index 2e0f46a7a1..bb9f013f1d 100644 --- a/packages/medusa/src/api/admin/product-tags/[id]/route.ts +++ b/packages/medusa/src/api/admin/product-tags/[id]/route.ts @@ -12,10 +12,11 @@ import { AdminUpdateProductTagType, } from "../validators" import { refetchEntity } from "../../../utils/refetch-entity" +import { HttpTypes } from "@medusajs/types" export const GET = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const productTag = await refetchEntity( "product_tag", @@ -29,7 +30,7 @@ export const GET = async ( export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { result } = await updateProductTagsWorkflow(req.scope).run({ input: { @@ -50,7 +51,7 @@ export const POST = async ( export const DELETE = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const id = req.params.id diff --git a/packages/medusa/src/api/admin/product-tags/route.ts b/packages/medusa/src/api/admin/product-tags/route.ts index eac4e1e4d0..bdfde06160 100644 --- a/packages/medusa/src/api/admin/product-tags/route.ts +++ b/packages/medusa/src/api/admin/product-tags/route.ts @@ -9,10 +9,11 @@ import { AdminGetProductTagsParamsType, } from "./validators" import { refetchEntities, refetchEntity } from "../../utils/refetch-entity" +import { HttpTypes } from "@medusajs/types" export const GET = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { rows: product_tags, metadata } = await refetchEntities( "product_tag", @@ -32,7 +33,7 @@ export const GET = async ( export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const input = [req.validatedBody] diff --git a/packages/medusa/src/api/admin/product-types/[id]/route.ts b/packages/medusa/src/api/admin/product-types/[id]/route.ts index 33cac51338..11cc36b88a 100644 --- a/packages/medusa/src/api/admin/product-types/[id]/route.ts +++ b/packages/medusa/src/api/admin/product-types/[id]/route.ts @@ -12,10 +12,11 @@ import { AdminGetProductTypeParamsType, AdminUpdateProductTypeType, } from "../validators" +import { HttpTypes } from "@medusajs/types" export const GET = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const productType = await refetchProductType( req.params.id, @@ -28,7 +29,7 @@ export const GET = async ( export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { result } = await updateProductTypesWorkflow(req.scope).run({ input: { @@ -48,7 +49,7 @@ export const POST = async ( export const DELETE = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const id = req.params.id diff --git a/packages/medusa/src/api/admin/product-types/route.ts b/packages/medusa/src/api/admin/product-types/route.ts index 2929738639..d2a2102cd8 100644 --- a/packages/medusa/src/api/admin/product-types/route.ts +++ b/packages/medusa/src/api/admin/product-types/route.ts @@ -13,10 +13,11 @@ import { AdminCreateProductTypeType, AdminGetProductTypesParamsType, } from "./validators" +import { HttpTypes } from "@medusajs/types" export const GET = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) const queryObject = remoteQueryObjectFromString({ @@ -40,7 +41,7 @@ export const GET = async ( export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const input = [req.validatedBody] diff --git a/packages/medusa/src/api/admin/products/[id]/variants/[variant_id]/inventory-items/[inventory_item_id]/route.ts b/packages/medusa/src/api/admin/products/[id]/variants/[variant_id]/inventory-items/[inventory_item_id]/route.ts index c21d86b1db..0e837f4b0a 100644 --- a/packages/medusa/src/api/admin/products/[id]/variants/[variant_id]/inventory-items/[inventory_item_id]/route.ts +++ b/packages/medusa/src/api/admin/products/[id]/variants/[variant_id]/inventory-items/[inventory_item_id]/route.ts @@ -6,10 +6,11 @@ import { } from "../../../../../../../../types/routing" import { refetchVariant } from "../../../../../helpers" import { AdminUpdateVariantInventoryItemType } from "../../../../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const variantId = req.params.variant_id const inventoryItemId = req.params.inventory_item_id @@ -35,7 +36,7 @@ export const POST = async ( export const DELETE = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const variantId = req.params.variant_id const inventoryItemId = req.params.inventory_item_id @@ -58,7 +59,7 @@ export const DELETE = async ( ) res.status(200).json({ - id: deleted, + id: deleted as unknown as HttpTypes.AdminProductVariantInventoryLink, object: "variant-inventory-item-link", deleted: true, parent, diff --git a/packages/medusa/src/api/admin/products/[id]/variants/[variant_id]/inventory-items/route.ts b/packages/medusa/src/api/admin/products/[id]/variants/[variant_id]/inventory-items/route.ts index 4e6c11a1cb..cf0a333048 100644 --- a/packages/medusa/src/api/admin/products/[id]/variants/[variant_id]/inventory-items/route.ts +++ b/packages/medusa/src/api/admin/products/[id]/variants/[variant_id]/inventory-items/route.ts @@ -6,10 +6,11 @@ import { } from "../../../../../../../types/routing" import { refetchVariant } from "../../../../helpers" import { AdminCreateVariantInventoryItemType } from "../../../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const variantId = req.params.variant_id diff --git a/packages/medusa/src/api/admin/products/[id]/variants/inventory-items/batch/route.ts b/packages/medusa/src/api/admin/products/[id]/variants/inventory-items/batch/route.ts index 76fba829a5..d4b5ad4af3 100644 --- a/packages/medusa/src/api/admin/products/[id]/variants/inventory-items/batch/route.ts +++ b/packages/medusa/src/api/admin/products/[id]/variants/inventory-items/batch/route.ts @@ -5,10 +5,11 @@ import { } from "../../../../../../../types/routing" import { buildBatchVariantInventoryData } from "../../../../helpers" import { AdminBatchVariantInventoryItemsType } from "../../../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { create = [], update = [], delete: toDelete = [] } = req.validatedBody @@ -24,5 +25,5 @@ export const POST = async ( created: result.created, updated: result.updated, deleted: result.deleted, - }) + } as unknown as HttpTypes.AdminProductVariantInventoryBatchResponse) }