feat(medusa,types): add fulfillment provider list api (#7124)

* feat(medusa,types): add fulfillment provider list api

* chore: remove timestamps
This commit is contained in:
Riqwan Thamir authored and GitHub committed 2024-04-22 19:35:33 +02:00
1 parent 0df523594f
commit 38c971f111
11 files changed
+178 -2

No files matched your search

@@ -0,0 +1,23 @@
import { MiddlewareRoute } from "../../../types/middlewares"
import { authenticate } from "../../../utils/authenticate-middleware"
import { validateAndTransformQuery } from "../../utils/validate-query"
import * as QueryConfig from "./query-config"
import { AdminFulfillmentProvidersParams } from "./validators"
export const adminFulfillmentProvidersRoutesMiddlewares: MiddlewareRoute[] = [
{
method: "ALL",
matcher: "/admin/fulfillment-providers*",
middlewares: [authenticate("admin", ["session", "bearer", "api-key"])],
},
{
method: ["GET"],
matcher: "/admin/fulfillment-providers",
middlewares: [
validateAndTransformQuery(
AdminFulfillmentProvidersParams,
QueryConfig.listTransformQueryConfig
),
],
},
]
@@ -0,0 +1,11 @@
export const defaultAdminFulfillmentProvidersFields = ["id", "is_enabled"]
export const retrieveTransformQueryConfig = {
defaults: defaultAdminFulfillmentProvidersFields,
isList: false,
}
export const listTransformQueryConfig = {
...retrieveTransformQueryConfig,
isList: true,
}
@@ -0,0 +1,35 @@
import {
ContainerRegistrationKeys,
remoteQueryObjectFromString,
} from "@medusajs/utils"
import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "../../../types/routing"
import { AdminFulfillmentProvidersParamsType } from "./validators"
export const GET = async (
req: AuthenticatedMedusaRequest<AdminFulfillmentProvidersParamsType>,
res: MedusaResponse
) => {
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)
const queryObject = remoteQueryObjectFromString({
entryPoint: "fulfillment_provider",
variables: {
filters: req.filterableFields,
...req.remoteQueryConfig.pagination,
},
fields: req.remoteQueryConfig.fields,
})
const { rows: fulfillment_providers, metadata } = await remoteQuery(
queryObject
)
res.json({
fulfillment_providers,
count: metadata.count,
offset: metadata.skip,
limit: metadata.take,
})
}
@@ -0,0 +1,7 @@
import { z } from "zod"
import { createSelectParams } from "../../utils/validators"
export type AdminFulfillmentProvidersParamsType = z.infer<
typeof AdminFulfillmentProvidersParams
>
export const AdminFulfillmentProvidersParams = createSelectParams()
@@ -6,6 +6,7 @@ import { adminCurrencyRoutesMiddlewares } from "./admin/currencies/middlewares"
import { adminCustomerGroupRoutesMiddlewares } from "./admin/customer-groups/middlewares"
import { adminCustomerRoutesMiddlewares } from "./admin/customers/middlewares"
import { adminDraftOrderRoutesMiddlewares } from "./admin/draft-orders/middlewares"
import { adminFulfillmentProvidersRoutesMiddlewares } from "./admin/fulfillment-providers/middlewares"
import { adminFulfillmentSetsRoutesMiddlewares } from "./admin/fulfillment-sets/middlewares"
import { adminFulfillmentsRoutesMiddlewares } from "./admin/fulfillments/middlewares"
import { adminInventoryRoutesMiddlewares } from "./admin/inventory-items/middlewares"
@@ -78,5 +79,6 @@ export const config: MiddlewaresConfig = {
...adminReservationRoutesMiddlewares,
...adminShippingProfilesMiddlewares,
...adminFulfillmentsRoutesMiddlewares,
...adminFulfillmentProvidersRoutesMiddlewares,
],
}