From 24985cf89d7483aa25668117204b0aa574605e57 Mon Sep 17 00:00:00 2001 From: Shahed Nasser Date: Mon, 12 Aug 2024 14:27:00 +0300 Subject: [PATCH] chore(medusa,types): [1] Add request types to API routes (#8558) Add request types as type arguments in API routes. This also includes adding / rearranging types under the `types` package. PR 1/n --- .../types/src/http/cart/store/entities.ts | 11 +++++++++++ .../core/types/src/http/cart/store/index.ts | 3 +++ .../http/cart/{store.ts => store/payloads.ts} | 12 +----------- .../types/src/http/cart/store/responses.ts | 19 +++++++++++++++++++ .../core/types/src/http/collection/store.ts | 4 ---- .../src/http/collection/store/entities.ts | 3 +++ .../types/src/http/collection/store/index.ts | 3 +++ .../src/http/collection/store/queries.ts | 3 +++ .../src/http/collection/store/responses.ts | 10 ++++++++++ .../api/store/carts/[id]/complete/route.ts | 3 ++- .../carts/[id]/line-items/[line_id]/route.ts | 4 ++-- .../api/store/carts/[id]/line-items/route.ts | 3 ++- .../api/store/carts/[id]/promotions/route.ts | 7 +++++-- .../medusa/src/api/store/carts/[id]/route.ts | 11 ++++++++--- .../carts/[id]/shipping-methods/route.ts | 3 ++- .../src/api/store/carts/[id]/taxes/route.ts | 3 ++- packages/medusa/src/api/store/carts/route.ts | 8 ++++++-- .../src/api/store/collections/[id]/route.ts | 3 ++- .../medusa/src/api/store/collections/route.ts | 3 ++- 19 files changed, 86 insertions(+), 30 deletions(-) create mode 100644 packages/core/types/src/http/cart/store/entities.ts create mode 100644 packages/core/types/src/http/cart/store/index.ts rename packages/core/types/src/http/cart/{store.ts => store/payloads.ts} (72%) create mode 100644 packages/core/types/src/http/cart/store/responses.ts delete mode 100644 packages/core/types/src/http/collection/store.ts create mode 100644 packages/core/types/src/http/collection/store/entities.ts create mode 100644 packages/core/types/src/http/collection/store/index.ts create mode 100644 packages/core/types/src/http/collection/store/queries.ts create mode 100644 packages/core/types/src/http/collection/store/responses.ts diff --git a/packages/core/types/src/http/cart/store/entities.ts b/packages/core/types/src/http/cart/store/entities.ts new file mode 100644 index 0000000000..45152338b0 --- /dev/null +++ b/packages/core/types/src/http/cart/store/entities.ts @@ -0,0 +1,11 @@ +import { + BaseCart, + BaseCartAddress, + BaseCartLineItem, + BaseCartShippingMethod, +} from "../common" + +export interface StoreCart extends BaseCart {} +export interface StoreCartLineItem extends BaseCartLineItem {} +export interface StoreCartAddress extends BaseCartAddress {} +export interface StoreCartShippingMethod extends BaseCartShippingMethod {} \ No newline at end of file diff --git a/packages/core/types/src/http/cart/store/index.ts b/packages/core/types/src/http/cart/store/index.ts new file mode 100644 index 0000000000..ba78c783ea --- /dev/null +++ b/packages/core/types/src/http/cart/store/index.ts @@ -0,0 +1,3 @@ +export * from "./entities" +export * from "./payloads" +export * from "./responses" \ No newline at end of file diff --git a/packages/core/types/src/http/cart/store.ts b/packages/core/types/src/http/cart/store/payloads.ts similarity index 72% rename from packages/core/types/src/http/cart/store.ts rename to packages/core/types/src/http/cart/store/payloads.ts index 5ab2c38d12..558aa49a10 100644 --- a/packages/core/types/src/http/cart/store.ts +++ b/packages/core/types/src/http/cart/store/payloads.ts @@ -1,14 +1,4 @@ -import { - BaseCart, - BaseCartAddress, - BaseCartLineItem, - BaseCartShippingMethod, -} from "./common" - -export interface StoreCart extends BaseCart {} -export interface StoreCartLineItem extends BaseCartLineItem {} -export interface StoreCartAddress extends BaseCartAddress {} -export interface StoreCartShippingMethod extends BaseCartShippingMethod {} +import { StoreCartAddress, StoreCartLineItem } from "./entities" export interface StoreCreateCart { region_id?: string diff --git a/packages/core/types/src/http/cart/store/responses.ts b/packages/core/types/src/http/cart/store/responses.ts new file mode 100644 index 0000000000..f517335db5 --- /dev/null +++ b/packages/core/types/src/http/cart/store/responses.ts @@ -0,0 +1,19 @@ +import { StoreOrder } from "../../order" +import { StoreCart } from "./entities" + +export interface StoreCartResponse { + cart: StoreCart +} + +export type StoreCompleteCartResponse = { + type: "cart" + cart: StoreCart + error: { + message: string + name: string + type: string + } +} | { + type: "order" + order: StoreOrder +} \ No newline at end of file diff --git a/packages/core/types/src/http/collection/store.ts b/packages/core/types/src/http/collection/store.ts deleted file mode 100644 index f9f1cd55c7..0000000000 --- a/packages/core/types/src/http/collection/store.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { BaseCollection, BaseCollectionListParams } from "./common" - -export interface StoreCollection extends BaseCollection {} -export interface StoreCollectionFilters extends BaseCollectionListParams {} diff --git a/packages/core/types/src/http/collection/store/entities.ts b/packages/core/types/src/http/collection/store/entities.ts new file mode 100644 index 0000000000..0d99e0fd60 --- /dev/null +++ b/packages/core/types/src/http/collection/store/entities.ts @@ -0,0 +1,3 @@ +import { BaseCollection, BaseCollectionListParams } from "../common" + +export interface StoreCollection extends BaseCollection {} diff --git a/packages/core/types/src/http/collection/store/index.ts b/packages/core/types/src/http/collection/store/index.ts new file mode 100644 index 0000000000..bedb8f98bc --- /dev/null +++ b/packages/core/types/src/http/collection/store/index.ts @@ -0,0 +1,3 @@ +export * from "./entities" +export * from "./queries" +export * from "./responses" \ No newline at end of file diff --git a/packages/core/types/src/http/collection/store/queries.ts b/packages/core/types/src/http/collection/store/queries.ts new file mode 100644 index 0000000000..c50377b2f0 --- /dev/null +++ b/packages/core/types/src/http/collection/store/queries.ts @@ -0,0 +1,3 @@ +import { BaseCollectionListParams } from "../common"; + +export interface StoreCollectionFilters extends BaseCollectionListParams {} diff --git a/packages/core/types/src/http/collection/store/responses.ts b/packages/core/types/src/http/collection/store/responses.ts new file mode 100644 index 0000000000..89da32b08b --- /dev/null +++ b/packages/core/types/src/http/collection/store/responses.ts @@ -0,0 +1,10 @@ +import { StoreCollection } from "." +import { PaginatedResponse } from "../../common" + +export interface StoreCollectionResponse { + collection: StoreCollection +} + +export type StoreCollectionListResponse = PaginatedResponse<{ + collections: StoreCollection[] +}> diff --git a/packages/medusa/src/api/store/carts/[id]/complete/route.ts b/packages/medusa/src/api/store/carts/[id]/complete/route.ts index 3728f1b3c0..d0d571c1e0 100644 --- a/packages/medusa/src/api/store/carts/[id]/complete/route.ts +++ b/packages/medusa/src/api/store/carts/[id]/complete/route.ts @@ -6,10 +6,11 @@ import { refetchOrder } from "../../../orders/helpers" import { refetchCart } from "../../helpers" import { defaultStoreCartFields } from "../../query-config" import { StoreCompleteCartType } from "../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: MedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const cart_id = req.params.id diff --git a/packages/medusa/src/api/store/carts/[id]/line-items/[line_id]/route.ts b/packages/medusa/src/api/store/carts/[id]/line-items/[line_id]/route.ts index 1244c030cf..a12d2cad32 100644 --- a/packages/medusa/src/api/store/carts/[id]/line-items/[line_id]/route.ts +++ b/packages/medusa/src/api/store/carts/[id]/line-items/[line_id]/route.ts @@ -2,7 +2,7 @@ import { deleteLineItemsWorkflow, updateLineItemInCartWorkflow, } from "@medusajs/core-flows" -import { DeleteResponse } from "@medusajs/types" +import { DeleteResponse, HttpTypes } from "@medusajs/types" import { MedusaError } from "@medusajs/utils" import { MedusaRequest, MedusaResponse } from "../../../../../../types/routing" import { prepareListQuery } from "../../../../../../utils/get-query-config" @@ -11,7 +11,7 @@ import { StoreUpdateCartLineItemType } from "../../../validators" export const POST = async ( req: MedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const cart = await refetchCart( req.params.id, diff --git a/packages/medusa/src/api/store/carts/[id]/line-items/route.ts b/packages/medusa/src/api/store/carts/[id]/line-items/route.ts index dd0275a180..f071e9d45e 100644 --- a/packages/medusa/src/api/store/carts/[id]/line-items/route.ts +++ b/packages/medusa/src/api/store/carts/[id]/line-items/route.ts @@ -2,10 +2,11 @@ import { addToCartWorkflow } from "@medusajs/core-flows" import { MedusaRequest, MedusaResponse } from "../../../../../types/routing" import { refetchCart } from "../../helpers" import { StoreAddCartLineItemType } from "../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: MedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const cart = await refetchCart( req.params.id, diff --git a/packages/medusa/src/api/store/carts/[id]/promotions/route.ts b/packages/medusa/src/api/store/carts/[id]/promotions/route.ts index 3078b4a375..00ee082df4 100644 --- a/packages/medusa/src/api/store/carts/[id]/promotions/route.ts +++ b/packages/medusa/src/api/store/carts/[id]/promotions/route.ts @@ -6,10 +6,11 @@ import { StoreAddCartPromotionsType, StoreRemoveCartPromotionsType, } from "../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: MedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const workflow = updateCartPromotionsWorkflow(req.scope) const payload = req.validatedBody @@ -33,7 +34,9 @@ export const POST = async ( export const DELETE = async ( req: MedusaRequest, - res: MedusaResponse + res: MedusaResponse<{ + cart: HttpTypes.StoreCart + }> ) => { const workflow = updateCartPromotionsWorkflow(req.scope) const payload = req.validatedBody diff --git a/packages/medusa/src/api/store/carts/[id]/route.ts b/packages/medusa/src/api/store/carts/[id]/route.ts index e74184558b..edea5fdac9 100644 --- a/packages/medusa/src/api/store/carts/[id]/route.ts +++ b/packages/medusa/src/api/store/carts/[id]/route.ts @@ -1,10 +1,13 @@ import { updateCartWorkflow } from "@medusajs/core-flows" -import { AdditionalData, UpdateCartDataDTO } from "@medusajs/types" +import { AdditionalData, HttpTypes, UpdateCartDataDTO } from "@medusajs/types" import { MedusaRequest, MedusaResponse } from "../../../../types/routing" import { refetchCart } from "../helpers" -export const GET = async (req: MedusaRequest, res: MedusaResponse) => { +export const GET = async ( + req: MedusaRequest, + res: MedusaResponse +) => { const cart = await refetchCart( req.params.id, req.scope, @@ -16,7 +19,9 @@ export const GET = async (req: MedusaRequest, res: MedusaResponse) => { export const POST = async ( req: MedusaRequest, - res: MedusaResponse + res: MedusaResponse<{ + cart: HttpTypes.StoreCart + }> ) => { const workflow = updateCartWorkflow(req.scope) diff --git a/packages/medusa/src/api/store/carts/[id]/shipping-methods/route.ts b/packages/medusa/src/api/store/carts/[id]/shipping-methods/route.ts index 371fb6e7a4..8bfe40e0e7 100644 --- a/packages/medusa/src/api/store/carts/[id]/shipping-methods/route.ts +++ b/packages/medusa/src/api/store/carts/[id]/shipping-methods/route.ts @@ -2,10 +2,11 @@ import { addShippingMethodToWorkflow } from "@medusajs/core-flows" import { MedusaRequest, MedusaResponse } from "../../../../../types/routing" import { refetchCart } from "../../helpers" import { StoreAddCartShippingMethodsType } from "../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: MedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const workflow = addShippingMethodToWorkflow(req.scope) const payload = req.validatedBody diff --git a/packages/medusa/src/api/store/carts/[id]/taxes/route.ts b/packages/medusa/src/api/store/carts/[id]/taxes/route.ts index 93213f514a..798790c698 100644 --- a/packages/medusa/src/api/store/carts/[id]/taxes/route.ts +++ b/packages/medusa/src/api/store/carts/[id]/taxes/route.ts @@ -2,10 +2,11 @@ import { updateTaxLinesWorkflow } from "@medusajs/core-flows" import { MedusaRequest, MedusaResponse } from "../../../../../types/routing" import { refetchCart } from "../../helpers" import { StoreCalculateCartTaxesType } from "../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: MedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const workflow = updateTaxLinesWorkflow(req.scope) diff --git a/packages/medusa/src/api/store/carts/route.ts b/packages/medusa/src/api/store/carts/route.ts index 714da3cbbc..7dfbafec33 100644 --- a/packages/medusa/src/api/store/carts/route.ts +++ b/packages/medusa/src/api/store/carts/route.ts @@ -1,5 +1,9 @@ import { createCartWorkflow } from "@medusajs/core-flows" -import { AdditionalData, CreateCartWorkflowInputDTO } from "@medusajs/types" +import { + AdditionalData, + CreateCartWorkflowInputDTO, + HttpTypes, +} from "@medusajs/types" import { AuthenticatedMedusaRequest, MedusaResponse, @@ -8,7 +12,7 @@ import { refetchCart } from "./helpers" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const workflowInput = { ...req.validatedBody, diff --git a/packages/medusa/src/api/store/collections/[id]/route.ts b/packages/medusa/src/api/store/collections/[id]/route.ts index 468364593b..e9a418ca68 100644 --- a/packages/medusa/src/api/store/collections/[id]/route.ts +++ b/packages/medusa/src/api/store/collections/[id]/route.ts @@ -1,3 +1,4 @@ +import { HttpTypes } from "@medusajs/types" import { AuthenticatedMedusaRequest, MedusaResponse, @@ -6,7 +7,7 @@ import { refetchCollection } from "../helpers" export const GET = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const collection = await refetchCollection( req.params.id, diff --git a/packages/medusa/src/api/store/collections/route.ts b/packages/medusa/src/api/store/collections/route.ts index 0833224084..8e22f0b459 100644 --- a/packages/medusa/src/api/store/collections/route.ts +++ b/packages/medusa/src/api/store/collections/route.ts @@ -1,3 +1,4 @@ +import { HttpTypes } from "@medusajs/types" import { AuthenticatedMedusaRequest, MedusaResponse, @@ -10,7 +11,7 @@ import { export const GET = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)