From 578e5182dda73e81927e6059054ee46b5e3d1848 Mon Sep 17 00:00:00 2001 From: Shahed Nasser Date: Tue, 13 Aug 2024 09:36:56 +0300 Subject: [PATCH] chore(medusa,types): [3] Add request types to API routes (#8560) * chore(medusa,types): [3] Add request types to API routes * more types --- .../src/http/order/{store.ts => store/entities.ts} | 5 +---- packages/core/types/src/http/order/store/index.ts | 3 +++ packages/core/types/src/http/order/store/queries.ts | 3 +++ packages/core/types/src/http/order/store/responses.ts | 8 ++++++++ packages/core/types/src/http/payment/common.ts | 1 + packages/core/types/src/http/payment/store/entities.ts | 9 +++++++++ packages/core/types/src/http/payment/store/index.ts | 3 +++ .../src/http/payment/{store.ts => store/queries.ts} | 9 +-------- .../core/types/src/http/payment/store/responses.ts | 10 ++++++++++ packages/medusa/src/api/store/orders/[id]/route.ts | 3 ++- packages/medusa/src/api/store/orders/route.ts | 3 ++- .../payment-collections/[id]/payment-sessions/route.ts | 3 ++- .../medusa/src/api/store/payment-collections/route.ts | 3 ++- .../medusa/src/api/store/payment-providers/route.ts | 3 ++- 14 files changed, 49 insertions(+), 17 deletions(-) rename packages/core/types/src/http/order/{store.ts => store/entities.ts} (77%) create mode 100644 packages/core/types/src/http/order/store/index.ts create mode 100644 packages/core/types/src/http/order/store/queries.ts create mode 100644 packages/core/types/src/http/order/store/responses.ts create mode 100644 packages/core/types/src/http/payment/store/entities.ts create mode 100644 packages/core/types/src/http/payment/store/index.ts rename packages/core/types/src/http/payment/{store.ts => store/queries.ts} (54%) create mode 100644 packages/core/types/src/http/payment/store/responses.ts diff --git a/packages/core/types/src/http/order/store.ts b/packages/core/types/src/http/order/store/entities.ts similarity index 77% rename from packages/core/types/src/http/order/store.ts rename to packages/core/types/src/http/order/store/entities.ts index 372a927140..10c586da28 100644 --- a/packages/core/types/src/http/order/store.ts +++ b/packages/core/types/src/http/order/store/entities.ts @@ -1,14 +1,11 @@ import { BaseOrder, BaseOrderAddress, - BaseOrderFilters, BaseOrderLineItem, BaseOrderShippingMethod, -} from "./common" +} from "../common" export interface StoreOrder extends BaseOrder {} export interface StoreOrderLineItem extends BaseOrderLineItem {} export interface StoreOrderAddress extends BaseOrderAddress {} export interface StoreOrderShippingMethod extends BaseOrderShippingMethod {} - -export interface StoreOrderFilters extends BaseOrderFilters {} diff --git a/packages/core/types/src/http/order/store/index.ts b/packages/core/types/src/http/order/store/index.ts new file mode 100644 index 0000000000..bedb8f98bc --- /dev/null +++ b/packages/core/types/src/http/order/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/order/store/queries.ts b/packages/core/types/src/http/order/store/queries.ts new file mode 100644 index 0000000000..bd5dfccf1a --- /dev/null +++ b/packages/core/types/src/http/order/store/queries.ts @@ -0,0 +1,3 @@ +import { BaseOrderFilters } from "../common"; + +export interface StoreOrderFilters extends BaseOrderFilters {} diff --git a/packages/core/types/src/http/order/store/responses.ts b/packages/core/types/src/http/order/store/responses.ts new file mode 100644 index 0000000000..de0b7ab039 --- /dev/null +++ b/packages/core/types/src/http/order/store/responses.ts @@ -0,0 +1,8 @@ +import { PaginatedResponse } from "../../common"; +import { StoreOrder } from "./entities"; + +export interface StoreOrderResponse { + order: StoreOrder +} + +export type StoreOrderListResponse = PaginatedResponse<{ orders: StoreOrder[] }> diff --git a/packages/core/types/src/http/payment/common.ts b/packages/core/types/src/http/payment/common.ts index 94eb49b8b8..bf65e4cbd7 100644 --- a/packages/core/types/src/http/payment/common.ts +++ b/packages/core/types/src/http/payment/common.ts @@ -17,6 +17,7 @@ export type BasePaymentCollectionStatus = */ export type BasePaymentSessionStatus = | "authorized" + | "captured" | "pending" | "requires_more" | "error" diff --git a/packages/core/types/src/http/payment/store/entities.ts b/packages/core/types/src/http/payment/store/entities.ts new file mode 100644 index 0000000000..6e40cab856 --- /dev/null +++ b/packages/core/types/src/http/payment/store/entities.ts @@ -0,0 +1,9 @@ +import { + BasePaymentCollection, + BasePaymentProvider, + BasePaymentSession, +} from "../common" + +export interface StorePaymentProvider extends BasePaymentProvider {} +export interface StorePaymentCollection extends BasePaymentCollection {} +export interface StorePaymentSession extends BasePaymentSession {} \ No newline at end of file diff --git a/packages/core/types/src/http/payment/store/index.ts b/packages/core/types/src/http/payment/store/index.ts new file mode 100644 index 0000000000..bedb8f98bc --- /dev/null +++ b/packages/core/types/src/http/payment/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/payment/store.ts b/packages/core/types/src/http/payment/store/queries.ts similarity index 54% rename from packages/core/types/src/http/payment/store.ts rename to packages/core/types/src/http/payment/store/queries.ts index 93cc94ffc2..f573eda2b2 100644 --- a/packages/core/types/src/http/payment/store.ts +++ b/packages/core/types/src/http/payment/store/queries.ts @@ -1,15 +1,8 @@ import { - BasePaymentCollection, BasePaymentCollectionFilters, - BasePaymentProvider, BasePaymentProviderFilters, - BasePaymentSession, BasePaymentSessionFilters, -} from "./common" - -export interface StorePaymentProvider extends BasePaymentProvider {} -export interface StorePaymentCollection extends BasePaymentCollection {} -export interface StorePaymentSession extends BasePaymentSession {} +} from "../common" export interface StorePaymentProviderFilters extends BasePaymentProviderFilters {} diff --git a/packages/core/types/src/http/payment/store/responses.ts b/packages/core/types/src/http/payment/store/responses.ts new file mode 100644 index 0000000000..6ac98e36fa --- /dev/null +++ b/packages/core/types/src/http/payment/store/responses.ts @@ -0,0 +1,10 @@ +import { PaginatedResponse } from "../../common"; +import { StorePaymentCollection, StorePaymentProvider } from "./entities"; + +export interface StorePaymentCollectionResponse { + payment_collection: StorePaymentCollection +} + +export type StorePaymentProviderListResponse = PaginatedResponse<{ + payment_providers: StorePaymentProvider[] +}> \ No newline at end of file diff --git a/packages/medusa/src/api/store/orders/[id]/route.ts b/packages/medusa/src/api/store/orders/[id]/route.ts index 217e87cbea..e46db3dac4 100644 --- a/packages/medusa/src/api/store/orders/[id]/route.ts +++ b/packages/medusa/src/api/store/orders/[id]/route.ts @@ -1,3 +1,4 @@ +import { HttpTypes } from "@medusajs/types" import { MedusaRequest, MedusaResponse } from "../../../../types/routing" import { refetchOrder } from "../helpers" import { StoreGetOrdersParamsType } from "../validators" @@ -5,7 +6,7 @@ import { StoreGetOrdersParamsType } from "../validators" // TODO: Do we want to apply some sort of authentication here? My suggestion is that we do export const GET = async ( req: MedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const order = await refetchOrder( req.params.id, diff --git a/packages/medusa/src/api/store/orders/route.ts b/packages/medusa/src/api/store/orders/route.ts index e0593d7444..53e7e2a92c 100644 --- a/packages/medusa/src/api/store/orders/route.ts +++ b/packages/medusa/src/api/store/orders/route.ts @@ -7,10 +7,11 @@ import { MedusaResponse, } from "../../../types/routing" import { AdminGetOrdersParamsType } from "../../admin/draft-orders/validators" +import { HttpTypes } from "@medusajs/types" export const GET = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/store/payment-collections/[id]/payment-sessions/route.ts b/packages/medusa/src/api/store/payment-collections/[id]/payment-sessions/route.ts index e11e455267..490a8b3642 100644 --- a/packages/medusa/src/api/store/payment-collections/[id]/payment-sessions/route.ts +++ b/packages/medusa/src/api/store/payment-collections/[id]/payment-sessions/route.ts @@ -5,10 +5,11 @@ import { } from "../../../../../types/routing" import { StoreCreatePaymentSessionType } from "../../validators" import { refetchPaymentCollection } from "../../helpers" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const collectionId = req.params.id const { context = {}, data, provider_id } = req.body diff --git a/packages/medusa/src/api/store/payment-collections/route.ts b/packages/medusa/src/api/store/payment-collections/route.ts index f1ddc9c628..84eb5dfb82 100644 --- a/packages/medusa/src/api/store/payment-collections/route.ts +++ b/packages/medusa/src/api/store/payment-collections/route.ts @@ -8,10 +8,11 @@ import { MedusaResponse, } from "../../../types/routing" import { StoreCreatePaymentCollectionType } from "./validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) const { cart_id } = req.body diff --git a/packages/medusa/src/api/store/payment-providers/route.ts b/packages/medusa/src/api/store/payment-providers/route.ts index a9897aef31..54ae2888c7 100644 --- a/packages/medusa/src/api/store/payment-providers/route.ts +++ b/packages/medusa/src/api/store/payment-providers/route.ts @@ -8,11 +8,12 @@ import { remoteQueryObjectFromString, } from "@medusajs/utils" import { StoreGetPaymentProvidersParamsType } from "./validators" +import { HttpTypes } from "@medusajs/types" // TODO: Add more fields to provider, such as default name and maybe logo. export const GET = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { if (!req.filterableFields.region_id) { throw new MedusaError(