From 7bc7c50eeff8bd0b2d25c5315bffa31e299dd041 Mon Sep 17 00:00:00 2001 From: Shahed Nasser Date: Wed, 2 Oct 2024 10:28:22 +0300 Subject: [PATCH] fix(types, medusa): http types fixes (#9334) * fix(types, medusa): http types fixes * fix build error * remove return fields * more fixes * fix cart payload types --- .../types/src/http/cart/store/entities.ts | 19 ++++- .../types/src/http/cart/store/payloads.ts | 69 +++++++++++++++++-- .../src/http/collection/store/entities.ts | 5 +- .../src/http/customer-group/admin/entities.ts | 5 +- .../types/src/http/customer/admin/entities.ts | 1 + .../types/src/http/customer/store/entities.ts | 4 +- .../types/src/http/order/admin/responses.ts | 2 +- .../types/src/http/order/store/entities.ts | 29 +++++++- .../core/types/src/http/product/common.ts | 10 ++- .../types/src/http/product/store/entitites.ts | 2 +- .../types/src/http/product/store/queries.ts | 2 +- .../types/src/http/return/store/entities.ts | 2 +- .../http/shipping-option/admin/payloads.ts | 2 +- .../mark-as-delivered/route.ts | 3 +- .../src/api/admin/products/export/route.ts | 2 +- .../promotions/[id]/buy-rules/batch/route.ts | 8 +-- .../promotions/[id]/rules/batch/route.ts | 8 +-- .../[id]/target-rules/batch/route.ts | 8 +-- .../[id]/rules/batch/route.ts | 8 +-- .../src/api/store/customers/query-config.ts | 1 - .../src/api/store/orders/query-config.ts | 2 - .../src/api/store/products/validators.ts | 3 - 22 files changed, 141 insertions(+), 54 deletions(-) diff --git a/packages/core/types/src/http/cart/store/entities.ts b/packages/core/types/src/http/cart/store/entities.ts index d2c8b705e5..5a5b291349 100644 --- a/packages/core/types/src/http/cart/store/entities.ts +++ b/packages/core/types/src/http/cart/store/entities.ts @@ -6,6 +6,10 @@ import { BaseCartAddress, BaseCartLineItem, BaseCartShippingMethod, + BaseLineItemAdjustment, + BaseLineItemTaxLine, + BaseShippingMethodAdjustment, + BaseShippingMethodTaxLine, } from "../common" export interface StoreCart extends Omit { @@ -20,6 +24,19 @@ export interface StoreCartLineItem extends Omit } export interface StoreUpdateCart { region_id?: string - shipping_address?: StoreCartAddress - billing_address?: StoreCartAddress + shipping_address?: StoreAddAddress | string + billing_address?: StoreAddAddress | string email?: string sales_channel_id?: string metadata?: Record @@ -40,3 +38,60 @@ export interface StoreAddCartShippingMethods { export interface StoreCompleteCart { idempotency_key?: string } + +export interface StoreAddAddress { + /** + * The first name of the address. + */ + first_name?: string + + /** + * The last name of the address. + */ + last_name?: string + + /** + * The phone number of the address. + */ + phone?: string + + /** + * The company of the address. + */ + company?: string + + /** + * The first address line of the address. + */ + address_1?: string + + /** + * The second address line of the address. + */ + address_2?: string + + /** + * The city of the address. + */ + city?: string + + /** + * The country code of the address. + */ + country_code?: string + + /** + * The province/state of the address. + */ + province?: string + + /** + * The postal code of the address. + */ + postal_code?: string + + /** + * Holds custom data in key-value pairs. + */ + metadata?: Record | null +} \ No newline at end of file diff --git a/packages/core/types/src/http/collection/store/entities.ts b/packages/core/types/src/http/collection/store/entities.ts index d955ef6c95..bf2062ef1b 100644 --- a/packages/core/types/src/http/collection/store/entities.ts +++ b/packages/core/types/src/http/collection/store/entities.ts @@ -1,3 +1,6 @@ +import { StoreProduct } from "../../product" import { BaseCollection } from "../common" -export interface StoreCollection extends BaseCollection {} +export interface StoreCollection extends Omit { + products?: StoreProduct[] +} diff --git a/packages/core/types/src/http/customer-group/admin/entities.ts b/packages/core/types/src/http/customer-group/admin/entities.ts index 01bed97327..a47270f877 100644 --- a/packages/core/types/src/http/customer-group/admin/entities.ts +++ b/packages/core/types/src/http/customer-group/admin/entities.ts @@ -1,3 +1,6 @@ +import { AdminCustomer } from "../../customer/admin" import { BaseCustomerGroup } from "../common" -export interface AdminCustomerGroup extends BaseCustomerGroup {} +export interface AdminCustomerGroup extends BaseCustomerGroup { + customers: AdminCustomer[] +} diff --git a/packages/core/types/src/http/customer/admin/entities.ts b/packages/core/types/src/http/customer/admin/entities.ts index 8cd83ca2df..c3c25b4e98 100644 --- a/packages/core/types/src/http/customer/admin/entities.ts +++ b/packages/core/types/src/http/customer/admin/entities.ts @@ -4,5 +4,6 @@ import { BaseCustomer, BaseCustomerAddress } from "../common" export interface AdminCustomer extends BaseCustomer { has_account: boolean groups?: AdminCustomerGroup[] + addresses: AdminCustomerAddress[] } export interface AdminCustomerAddress extends BaseCustomerAddress {} diff --git a/packages/core/types/src/http/customer/store/entities.ts b/packages/core/types/src/http/customer/store/entities.ts index fbb37295b7..9177b45b29 100644 --- a/packages/core/types/src/http/customer/store/entities.ts +++ b/packages/core/types/src/http/customer/store/entities.ts @@ -3,5 +3,7 @@ import { BaseCustomerAddress, } from "../common" -export interface StoreCustomer extends BaseCustomer {} +export interface StoreCustomer extends Omit { + addresses: StoreCustomerAddress[] +} export interface StoreCustomerAddress extends BaseCustomerAddress {} \ No newline at end of file diff --git a/packages/core/types/src/http/order/admin/responses.ts b/packages/core/types/src/http/order/admin/responses.ts index 7289276ee9..75c031ca83 100644 --- a/packages/core/types/src/http/order/admin/responses.ts +++ b/packages/core/types/src/http/order/admin/responses.ts @@ -22,5 +22,5 @@ export interface AdminDraftOrderResponse { } export type AdminDraftOrderListResponse = PaginatedResponse<{ - draft_orders: AdminOrder + draft_orders: AdminOrder[] }> diff --git a/packages/core/types/src/http/order/store/entities.ts b/packages/core/types/src/http/order/store/entities.ts index fe95b94ff0..37ca0f4e45 100644 --- a/packages/core/types/src/http/order/store/entities.ts +++ b/packages/core/types/src/http/order/store/entities.ts @@ -6,11 +6,17 @@ import { BaseOrder, BaseOrderAddress, BaseOrderFulfillment, + BaseOrderItemDetail, BaseOrderLineItem, + BaseOrderLineItemAdjustment, + BaseOrderLineItemTaxLine, + BaseOrderShippingDetail, BaseOrderShippingMethod, + BaseOrderShippingMethodAdjustment, + BaseOrderShippingMethodTaxLine, } from "../common" -export interface StoreOrder extends Omit { +export interface StoreOrder extends Omit { shipping_address?: StoreOrderAddress | null billing_address?: StoreOrderAddress | null items: StoreOrderLineItem[] | null @@ -22,9 +28,28 @@ export interface StoreOrder extends Omit { export interface StoreOrderLineItem extends Omit { variant?: StoreProductVariant product?: StoreProduct + tax_lines?: (BaseOrderLineItemTaxLine & { + item: StoreOrderLineItem + })[] + adjustments?: (BaseOrderLineItemAdjustment & { + item: StoreOrderLineItem + })[] + detail: BaseOrderItemDetail & { + item: StoreOrderLineItem + } } export interface StoreOrderAddress extends BaseOrderAddress { country?: StoreRegionCountry } -export interface StoreOrderShippingMethod extends BaseOrderShippingMethod {} +export interface StoreOrderShippingMethod extends BaseOrderShippingMethod { + tax_lines?: (BaseOrderShippingMethodTaxLine & { + shipping_method: StoreOrderShippingMethod + })[] + adjustments?: (BaseOrderShippingMethodAdjustment & { + shipping_method: StoreOrderShippingMethod + })[] + detail?: BaseOrderShippingDetail & { + shipping_method: StoreOrderShippingMethod + } +} export interface StoreOrderFulfillment extends BaseOrderFulfillment {} \ No newline at end of file diff --git a/packages/core/types/src/http/product/common.ts b/packages/core/types/src/http/product/common.ts index 883cb632e5..e6f209841d 100644 --- a/packages/core/types/src/http/product/common.ts +++ b/packages/core/types/src/http/product/common.ts @@ -136,7 +136,11 @@ export interface BaseProductVariantParams BaseFilterable { q?: string id?: string | string[] - sku?: string | string[] - product_id?: string | string[] - options?: Record + options?: { + value: string + option_id: string + } + created_at?: OperatorMap + updated_at?: OperatorMap + deleted_at?: OperatorMap } diff --git a/packages/core/types/src/http/product/store/entitites.ts b/packages/core/types/src/http/product/store/entitites.ts index 918a3c0417..ed14e21f6d 100644 --- a/packages/core/types/src/http/product/store/entitites.ts +++ b/packages/core/types/src/http/product/store/entitites.ts @@ -11,7 +11,7 @@ import { ProductStatus, } from "../common" -export interface StoreProduct extends Omit { +export interface StoreProduct extends Omit { collection?: StoreCollection | null categories?: StoreProductCategory[] | null variants: StoreProductVariant[] | null diff --git a/packages/core/types/src/http/product/store/queries.ts b/packages/core/types/src/http/product/store/queries.ts index be284bef10..522503fc02 100644 --- a/packages/core/types/src/http/product/store/queries.ts +++ b/packages/core/types/src/http/product/store/queries.ts @@ -11,6 +11,6 @@ export interface StoreProductParams extends Omit province?: string } diff --git a/packages/core/types/src/http/return/store/entities.ts b/packages/core/types/src/http/return/store/entities.ts index ced7961dff..d0f1ad2a92 100644 --- a/packages/core/types/src/http/return/store/entities.ts +++ b/packages/core/types/src/http/return/store/entities.ts @@ -1,6 +1,6 @@ import { BaseReturn, BaseReturnItem } from "../common"; -export interface StoreReturn extends BaseReturn { +export interface StoreReturn extends Omit { items: StoreReturnItem[] } export interface StoreReturnItem extends BaseReturnItem {} diff --git a/packages/core/types/src/http/shipping-option/admin/payloads.ts b/packages/core/types/src/http/shipping-option/admin/payloads.ts index 969a7496e2..c0297dde6b 100644 --- a/packages/core/types/src/http/shipping-option/admin/payloads.ts +++ b/packages/core/types/src/http/shipping-option/admin/payloads.ts @@ -40,7 +40,7 @@ export interface AdminCreateShippingOption { export interface AdminUpdateShippingOptionRule extends AdminCreateShippingOptionRule { - id?: string + id: string } export interface AdminUpdateShippingOptionPriceWithCurrency { diff --git a/packages/medusa/src/api/admin/orders/[id]/fulfillments/[fulfillment_id]/mark-as-delivered/route.ts b/packages/medusa/src/api/admin/orders/[id]/fulfillments/[fulfillment_id]/mark-as-delivered/route.ts index dc3cccbc65..7b8e92c88a 100644 --- a/packages/medusa/src/api/admin/orders/[id]/fulfillments/[fulfillment_id]/mark-as-delivered/route.ts +++ b/packages/medusa/src/api/admin/orders/[id]/fulfillments/[fulfillment_id]/mark-as-delivered/route.ts @@ -5,10 +5,9 @@ import { MedusaResponse, } from "../../../../../../../types/routing" import { refetchEntity } from "../../../../../../utils/refetch-entity" -import { AdminMarkOrderFulfillmentDeliveredType } from "../../../../validators" export const POST = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest, res: MedusaResponse ) => { const { id: orderId, fulfillment_id: fulfillmentId } = req.params diff --git a/packages/medusa/src/api/admin/products/export/route.ts b/packages/medusa/src/api/admin/products/export/route.ts index a61a3f5327..1709130e7e 100644 --- a/packages/medusa/src/api/admin/products/export/route.ts +++ b/packages/medusa/src/api/admin/products/export/route.ts @@ -7,7 +7,7 @@ import { remapKeysForProduct } from "../helpers" import { exportProductsWorkflow } from "@medusajs/core-flows" export const POST = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest, res: MedusaResponse ) => { const selectFields = remapKeysForProduct(req.remoteQueryConfig.fields ?? []) diff --git a/packages/medusa/src/api/admin/promotions/[id]/buy-rules/batch/route.ts b/packages/medusa/src/api/admin/promotions/[id]/buy-rules/batch/route.ts index c4e42c7d3a..b791504ad8 100644 --- a/packages/medusa/src/api/admin/promotions/[id]/buy-rules/batch/route.ts +++ b/packages/medusa/src/api/admin/promotions/[id]/buy-rules/batch/route.ts @@ -4,18 +4,14 @@ import { MedusaResponse, } from "../../../../../../types/routing" import { BatchMethodRequest, HttpTypes } from "@medusajs/framework/types" -import { - AdminCreatePromotionRuleType, - AdminUpdatePromotionRuleType, -} from "../../../validators" import { RuleType } from "@medusajs/framework/utils" import { refetchBatchRules } from "../../../helpers" export const POST = async ( req: AuthenticatedMedusaRequest< BatchMethodRequest< - AdminCreatePromotionRuleType, - AdminUpdatePromotionRuleType + HttpTypes.AdminCreatePromotionRule, + HttpTypes.AdminUpdatePromotionRule > >, res: MedusaResponse diff --git a/packages/medusa/src/api/admin/promotions/[id]/rules/batch/route.ts b/packages/medusa/src/api/admin/promotions/[id]/rules/batch/route.ts index e1369d3ea9..7d13383de2 100644 --- a/packages/medusa/src/api/admin/promotions/[id]/rules/batch/route.ts +++ b/packages/medusa/src/api/admin/promotions/[id]/rules/batch/route.ts @@ -4,18 +4,14 @@ import { MedusaResponse, } from "../../../../../../types/routing" import { BatchMethodRequest, HttpTypes } from "@medusajs/framework/types" -import { - AdminCreatePromotionRuleType, - AdminUpdatePromotionRuleType, -} from "../../../validators" import { RuleType } from "@medusajs/framework/utils" import { refetchBatchRules } from "../../../helpers" export const POST = async ( req: AuthenticatedMedusaRequest< BatchMethodRequest< - AdminCreatePromotionRuleType, - AdminUpdatePromotionRuleType + HttpTypes.AdminCreatePromotionRule, + HttpTypes.AdminUpdatePromotionRule > >, res: MedusaResponse diff --git a/packages/medusa/src/api/admin/promotions/[id]/target-rules/batch/route.ts b/packages/medusa/src/api/admin/promotions/[id]/target-rules/batch/route.ts index 51dd72de1d..a986689a95 100644 --- a/packages/medusa/src/api/admin/promotions/[id]/target-rules/batch/route.ts +++ b/packages/medusa/src/api/admin/promotions/[id]/target-rules/batch/route.ts @@ -4,18 +4,14 @@ import { MedusaResponse, } from "../../../../../../types/routing" import { BatchMethodRequest, HttpTypes } from "@medusajs/framework/types" -import { - AdminCreatePromotionRuleType, - AdminUpdatePromotionRuleType, -} from "../../../validators" import { RuleType } from "@medusajs/framework/utils" import { refetchBatchRules } from "../../../helpers" export const POST = async ( req: AuthenticatedMedusaRequest< BatchMethodRequest< - AdminCreatePromotionRuleType, - AdminUpdatePromotionRuleType + HttpTypes.AdminCreatePromotionRule, + HttpTypes.AdminUpdatePromotionRule > >, res: MedusaResponse diff --git a/packages/medusa/src/api/admin/shipping-options/[id]/rules/batch/route.ts b/packages/medusa/src/api/admin/shipping-options/[id]/rules/batch/route.ts index 1af620273b..c33ee37bb8 100644 --- a/packages/medusa/src/api/admin/shipping-options/[id]/rules/batch/route.ts +++ b/packages/medusa/src/api/admin/shipping-options/[id]/rules/batch/route.ts @@ -3,18 +3,14 @@ import { MedusaResponse, } from "../../../../../../types/routing" import { BatchMethodRequest, HttpTypes } from "@medusajs/framework/types" -import { - AdminCreateShippingOptionRuleType, - AdminUpdateShippingOptionRuleType, -} from "../../../validators" import { refetchBatchRules } from "../../../helpers" import { batchShippingOptionRulesWorkflow } from "@medusajs/core-flows" export const POST = async ( req: AuthenticatedMedusaRequest< BatchMethodRequest< - AdminCreateShippingOptionRuleType, - AdminUpdateShippingOptionRuleType + HttpTypes.AdminCreateShippingOptionRule, + HttpTypes.AdminUpdateShippingOptionRule > >, res: MedusaResponse diff --git a/packages/medusa/src/api/store/customers/query-config.ts b/packages/medusa/src/api/store/customers/query-config.ts index 92b3df7885..b6715b4424 100644 --- a/packages/medusa/src/api/store/customers/query-config.ts +++ b/packages/medusa/src/api/store/customers/query-config.ts @@ -7,7 +7,6 @@ const defaultStoreCustomersFields = [ "phone", "metadata", "has_account", - "created_by", "deleted_at", "created_at", "updated_at", diff --git a/packages/medusa/src/api/store/orders/query-config.ts b/packages/medusa/src/api/store/orders/query-config.ts index cd1efbf35b..188d8f1bb6 100644 --- a/packages/medusa/src/api/store/orders/query-config.ts +++ b/packages/medusa/src/api/store/orders/query-config.ts @@ -3,7 +3,6 @@ export const defaultStoreOrderFields = [ "id", "status", - "version", "summary", "display_id", "total", @@ -16,7 +15,6 @@ export const defaultStoreOrderFields = [ export const defaultStoreRetrieveOrderFields = [ "id", "status", - "version", "summary", "currency_code", "display_id", diff --git a/packages/medusa/src/api/store/products/validators.ts b/packages/medusa/src/api/store/products/validators.ts index bb6c3dd89d..f5bb825730 100644 --- a/packages/medusa/src/api/store/products/validators.ts +++ b/packages/medusa/src/api/store/products/validators.ts @@ -1,7 +1,6 @@ import { z } from "zod" import { GetProductsParams, - ProductStatusEnum, transformProductParams, } from "../../utils/common-validators" import { @@ -32,7 +31,6 @@ export const StoreGetProductVariantsParams = createFindParams({ z.object({ q: z.string().optional(), id: z.union([z.string(), z.array(z.string())]).optional(), - status: ProductStatusEnum.array().optional(), options: z.object({ value: z.string(), option_id: z.string() }).optional(), created_at: createOperatorMap().optional(), updated_at: createOperatorMap().optional(), @@ -58,7 +56,6 @@ export const StoreGetProductsParams = createFindParams({ variants: z .object({ - status: ProductStatusEnum.array().optional(), options: z .object({ value: z.string(), option_id: z.string() }) .optional(),