From 571a3d16711c29e4207182485b7aabdd836b627a Mon Sep 17 00:00:00 2001 From: Shahed Nasser Date: Tue, 13 Aug 2024 10:00:36 +0300 Subject: [PATCH] chore(medusa,types): [7] Add request types to API routes (#8564) Add request types as type arguments in API routes. This also includes adding / rearranging types under the `types` package. PR 7/n --- .../types/src/http/exchange/admin/entities.ts | 3 ++ .../types/src/http/exchange/admin/index.ts | 2 ++ .../src/http/exchange/admin/responses.ts | 31 +++++++++++++++++++ .../core/types/src/http/exchange/common.ts | 23 ++++++++++++++ .../core/types/src/http/exchange/index.ts | 1 + packages/core/types/src/http/index.ts | 1 + .../types/src/http/order/admin/responses.ts | 10 +++++- .../src/api/admin/draft-orders/[id]/route.ts | 6 +++- .../src/api/admin/draft-orders/route.ts | 9 ++++-- .../api/admin/exchanges/[id]/cancel/route.ts | 5 +-- .../[id]/inbound/items/[action_id]/route.ts | 5 +-- .../exchanges/[id]/inbound/items/route.ts | 3 +- .../shipping-method/[action_id]/route.ts | 5 +-- .../[id]/inbound/shipping-method/route.ts | 3 +- .../[id]/outbound/items/[action_id]/route.ts | 5 +-- .../exchanges/[id]/outbound/items/route.ts | 3 +- .../shipping-method/[action_id]/route.ts | 5 +-- .../[id]/outbound/shipping-method/route.ts | 3 +- .../api/admin/exchanges/[id]/request/route.ts | 5 +-- .../medusa/src/api/admin/exchanges/route.ts | 5 +-- 20 files changed, 110 insertions(+), 23 deletions(-) create mode 100644 packages/core/types/src/http/exchange/admin/entities.ts create mode 100644 packages/core/types/src/http/exchange/admin/index.ts create mode 100644 packages/core/types/src/http/exchange/admin/responses.ts create mode 100644 packages/core/types/src/http/exchange/common.ts create mode 100644 packages/core/types/src/http/exchange/index.ts diff --git a/packages/core/types/src/http/exchange/admin/entities.ts b/packages/core/types/src/http/exchange/admin/entities.ts new file mode 100644 index 0000000000..a6e411eadb --- /dev/null +++ b/packages/core/types/src/http/exchange/admin/entities.ts @@ -0,0 +1,3 @@ +import { BaseExchange } from "../common"; + +export interface AdminExchange extends BaseExchange {} \ No newline at end of file diff --git a/packages/core/types/src/http/exchange/admin/index.ts b/packages/core/types/src/http/exchange/admin/index.ts new file mode 100644 index 0000000000..57fa23181b --- /dev/null +++ b/packages/core/types/src/http/exchange/admin/index.ts @@ -0,0 +1,2 @@ +export * from "./entities" +export * from "./responses" \ No newline at end of file diff --git a/packages/core/types/src/http/exchange/admin/responses.ts b/packages/core/types/src/http/exchange/admin/responses.ts new file mode 100644 index 0000000000..c6046a252f --- /dev/null +++ b/packages/core/types/src/http/exchange/admin/responses.ts @@ -0,0 +1,31 @@ +import { OrderDTO } from "../../../order"; +import { PaginatedResponse } from "../../common"; +import { AdminReturn } from "../../return"; +import { AdminExchange } from "./entities"; + +export interface AdminExchangeResponse { + exchange: AdminExchange +} + +export type AdminExchangeListResponse = PaginatedResponse<{ + exchanges: AdminExchange +}> + +export interface AdminExchangeOrderResponse { + order: OrderDTO + exchange: AdminExchange +} + +export interface AdminExchangePreviewResponse { + order_preview: OrderDTO + exchange: AdminExchange +} + +export interface AdminExchangeRequestResponse extends AdminExchangePreviewResponse { + return: AdminReturn +} + +export interface AdminExchangeReturnResponse { + order_preview: OrderDTO + return: AdminReturn +} \ No newline at end of file diff --git a/packages/core/types/src/http/exchange/common.ts b/packages/core/types/src/http/exchange/common.ts new file mode 100644 index 0000000000..6b29484ca9 --- /dev/null +++ b/packages/core/types/src/http/exchange/common.ts @@ -0,0 +1,23 @@ +import { BaseOrder } from "../order/common"; +import { AdminBaseReturnItem, AdminReturn } from "../return"; + +export interface BaseExchangeItem { + id: string + exchange_id: string + order_id: string + item_id: string + quantity: number + metadata?: Record + created_at: string | null + updated_at: string | null +} + +export interface BaseExchange extends Omit { + order_id: string + return_items: AdminBaseReturnItem[] + additional_items: BaseExchangeItem[] + no_notification?: boolean + difference_due?: number + return?: AdminReturn + return_id?: string +} \ No newline at end of file diff --git a/packages/core/types/src/http/exchange/index.ts b/packages/core/types/src/http/exchange/index.ts new file mode 100644 index 0000000000..99595b00b3 --- /dev/null +++ b/packages/core/types/src/http/exchange/index.ts @@ -0,0 +1 @@ +export * from "./admin" \ No newline at end of file diff --git a/packages/core/types/src/http/index.ts b/packages/core/types/src/http/index.ts index 738dfbaf28..18abc25e4b 100644 --- a/packages/core/types/src/http/index.ts +++ b/packages/core/types/src/http/index.ts @@ -6,6 +6,7 @@ export * from "./collection" export * from "./common" export * from "./currency" export * from "./customer" +export * from "./exchange" export * from "./file" export * from "./fulfillment" export * from "./fulfillment-provider" diff --git a/packages/core/types/src/http/order/admin/responses.ts b/packages/core/types/src/http/order/admin/responses.ts index a5278d8ee3..c206790a7e 100644 --- a/packages/core/types/src/http/order/admin/responses.ts +++ b/packages/core/types/src/http/order/admin/responses.ts @@ -11,4 +11,12 @@ export type AdminOrderListResponse = PaginatedResponse<{ export interface AdminOrderPreviewResponse { order: AdminOrderPreview -} \ No newline at end of file +} + +export interface AdminDraftOrderResponse { + draft_order: AdminOrder +} + +export type AdminDraftOrderListResponse = PaginatedResponse<{ + draft_orders: AdminOrder +}> \ No newline at end of file diff --git a/packages/medusa/src/api/admin/draft-orders/[id]/route.ts b/packages/medusa/src/api/admin/draft-orders/[id]/route.ts index de454869c3..50e38204a3 100644 --- a/packages/medusa/src/api/admin/draft-orders/[id]/route.ts +++ b/packages/medusa/src/api/admin/draft-orders/[id]/route.ts @@ -2,8 +2,12 @@ import { MedusaError } from "@medusajs/utils" import { MedusaRequest, MedusaResponse } from "../../../../types/routing" import { refetchOrder } from "../helpers" import { defaultAdminOrderFields } from "../query-config" +import { HttpTypes } from "@medusajs/types" -export const GET = async (req: MedusaRequest, res: MedusaResponse) => { +export const GET = async ( + req: MedusaRequest, + res: MedusaResponse +) => { const draftOrder = await refetchOrder( req.params.id, req.scope, diff --git a/packages/medusa/src/api/admin/draft-orders/route.ts b/packages/medusa/src/api/admin/draft-orders/route.ts index 747ae18e7f..42dd540586 100644 --- a/packages/medusa/src/api/admin/draft-orders/route.ts +++ b/packages/medusa/src/api/admin/draft-orders/route.ts @@ -11,9 +11,12 @@ import { } from "../../../types/routing" import { AdminCreateDraftOrderType } from "./validators" import { refetchOrder } from "./helpers" -import { AdditionalData, CreateOrderDTO } from "@medusajs/types" +import { AdditionalData, CreateOrderDTO, HttpTypes } from "@medusajs/types" -export const GET = async (req: MedusaRequest, res: MedusaResponse) => { +export const GET = async ( + req: MedusaRequest, + res: MedusaResponse +) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) const queryObject = remoteQueryObjectFromString({ @@ -40,7 +43,7 @@ export const GET = async (req: MedusaRequest, res: MedusaResponse) => { export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const input = req.validatedBody const workflowInput = { diff --git a/packages/medusa/src/api/admin/exchanges/[id]/cancel/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/cancel/route.ts index f0723af9fe..1f86326a28 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/cancel/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/cancel/route.ts @@ -4,10 +4,11 @@ import { MedusaResponse, } from "../../../../../types/routing" import { AdminPostCancelExchangeReqSchemaType } from "../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { id } = req.params @@ -19,5 +20,5 @@ export const POST = async ( }, }) - res.status(200).json({ exchange: result }) + res.status(200).json({ exchange: result as HttpTypes.AdminExchange }) } diff --git a/packages/medusa/src/api/admin/exchanges/[id]/inbound/items/[action_id]/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/inbound/items/[action_id]/route.ts index 1e6a7bcc68..0536c93067 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/inbound/items/[action_id]/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/inbound/items/[action_id]/route.ts @@ -12,10 +12,11 @@ import { } from "../../../../../../../types/routing" import { defaultAdminDetailsReturnFields } from "../../../../../returns/query-config" import { AdminPostExchangesRequestItemsReturnActionReqSchemaType } from "../../../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { id, action_id } = req.params @@ -62,7 +63,7 @@ export const POST = async ( export const DELETE = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/exchanges/[id]/inbound/items/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/inbound/items/route.ts index 13934bc0a1..a72fd089d3 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/inbound/items/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/inbound/items/route.ts @@ -10,10 +10,11 @@ import { } from "../../../../../../types/routing" import { defaultAdminDetailsReturnFields } from "../../../../returns/query-config" import { AdminPostExchangesReturnRequestItemsReqSchemaType } from "../../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { id } = req.params diff --git a/packages/medusa/src/api/admin/exchanges/[id]/inbound/shipping-method/[action_id]/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/inbound/shipping-method/[action_id]/route.ts index 31cca8372b..895e4b38f1 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/inbound/shipping-method/[action_id]/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/inbound/shipping-method/[action_id]/route.ts @@ -12,10 +12,11 @@ import { } from "../../../../../../../types/routing" import { defaultAdminDetailsReturnFields } from "../../../../../returns/query-config" import { AdminPostExchangesShippingActionReqSchemaType } from "../../../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { id, action_id } = req.params @@ -64,7 +65,7 @@ export const POST = async ( export const DELETE = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/exchanges/[id]/inbound/shipping-method/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/inbound/shipping-method/route.ts index 6fb23b9094..e0617f7e21 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/inbound/shipping-method/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/inbound/shipping-method/route.ts @@ -10,10 +10,11 @@ import { } from "../../../../../../types/routing" import { defaultAdminDetailsReturnFields } from "../../../../returns/query-config" import { AdminPostReturnsShippingReqSchemaType } from "../../../../returns/validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { id } = req.params diff --git a/packages/medusa/src/api/admin/exchanges/[id]/outbound/items/[action_id]/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/outbound/items/[action_id]/route.ts index e010dbadd6..a999b78349 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/outbound/items/[action_id]/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/outbound/items/[action_id]/route.ts @@ -11,10 +11,11 @@ import { MedusaResponse, } from "../../../../../../../types/routing" import { AdminPostExhangesItemsActionReqSchemaType } from "../../../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { id, action_id } = req.params @@ -49,7 +50,7 @@ export const POST = async ( export const DELETE = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/exchanges/[id]/outbound/items/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/outbound/items/route.ts index 25680a3856..bdb0109af0 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/outbound/items/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/outbound/items/route.ts @@ -9,10 +9,11 @@ import { MedusaResponse, } from "../../../../../../types/routing" import { AdminPostExchangesAddItemsReqSchemaType } from "../../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { id } = req.params diff --git a/packages/medusa/src/api/admin/exchanges/[id]/outbound/shipping-method/[action_id]/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/outbound/shipping-method/[action_id]/route.ts index 09030e29bf..2f4a095853 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/outbound/shipping-method/[action_id]/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/outbound/shipping-method/[action_id]/route.ts @@ -11,10 +11,11 @@ import { MedusaResponse, } from "../../../../../../../types/routing" import { AdminPostExchangesShippingActionReqSchemaType } from "../../../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { id, action_id } = req.params @@ -49,7 +50,7 @@ export const POST = async ( export const DELETE = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/exchanges/[id]/outbound/shipping-method/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/outbound/shipping-method/route.ts index 39e53f86a8..cfae276f21 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/outbound/shipping-method/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/outbound/shipping-method/route.ts @@ -8,10 +8,11 @@ import { MedusaResponse, } from "../../../../../../types/routing" import { AdminPostExchangesShippingReqSchemaType } from "../../../validators" +import { HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { id } = req.params diff --git a/packages/medusa/src/api/admin/exchanges/[id]/request/route.ts b/packages/medusa/src/api/admin/exchanges/[id]/request/route.ts index 155b6acf6e..1b83cbb92c 100644 --- a/packages/medusa/src/api/admin/exchanges/[id]/request/route.ts +++ b/packages/medusa/src/api/admin/exchanges/[id]/request/route.ts @@ -11,10 +11,11 @@ import { MedusaResponse, } from "../../../../../types/routing" import { defaultAdminDetailsReturnFields } from "../../../returns/query-config" +import { DeleteResponse, HttpTypes } from "@medusajs/types" export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const { id } = req.params @@ -62,7 +63,7 @@ export const POST = async ( export const DELETE = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse> ) => { const { id } = req.params diff --git a/packages/medusa/src/api/admin/exchanges/route.ts b/packages/medusa/src/api/admin/exchanges/route.ts index c45735c3ee..f43800541e 100644 --- a/packages/medusa/src/api/admin/exchanges/route.ts +++ b/packages/medusa/src/api/admin/exchanges/route.ts @@ -10,10 +10,11 @@ import { MedusaResponse, } from "../../../types/routing" import { AdminPostOrderExchangesReqSchemaType } 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) @@ -40,7 +41,7 @@ export const GET = async ( export const POST = async ( req: AuthenticatedMedusaRequest, - res: MedusaResponse + res: MedusaResponse ) => { const input = req.validatedBody as AdminPostOrderExchangesReqSchemaType const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)