feat(medusa, medusa-js, medusa-react): Implement Sales Channel retrieval (#1793)
This commit is contained in:
@@ -35,6 +35,7 @@ export * from "./routes/admin/products"
|
||||
export * from "./routes/admin/regions"
|
||||
export * from "./routes/admin/return-reasons"
|
||||
export * from "./routes/admin/returns"
|
||||
export * from "./routes/admin/sales-channels"
|
||||
export * from "./routes/admin/shipping-options"
|
||||
export * from "./routes/admin/shipping-profiles"
|
||||
export * from "./routes/admin/store"
|
||||
|
||||
@@ -20,6 +20,7 @@ import productTypesRoutes from "./product-types"
|
||||
import productRoutes from "./products"
|
||||
import regionRoutes from "./regions"
|
||||
import returnReasonRoutes from "./return-reasons"
|
||||
import salesChannelRoutes from "./sales-channels"
|
||||
import returnRoutes from "./returns"
|
||||
import shippingOptionRoutes from "./shipping-options"
|
||||
import shippingProfileRoutes from "./shipping-profiles"
|
||||
@@ -63,32 +64,33 @@ export default (app, container, config) => {
|
||||
middlewareService.usePostAuthentication(app)
|
||||
|
||||
appRoutes(route)
|
||||
productRoutes(route)
|
||||
batchRoutes(route)
|
||||
userRoutes(route)
|
||||
regionRoutes(route)
|
||||
shippingOptionRoutes(route)
|
||||
shippingProfileRoutes(route)
|
||||
discountRoutes(route)
|
||||
giftCardRoutes(route)
|
||||
orderRoutes(route)
|
||||
storeRoutes(route)
|
||||
uploadRoutes(route)
|
||||
customerRoutes(route)
|
||||
swapRoutes(route)
|
||||
returnRoutes(route)
|
||||
variantRoutes(route)
|
||||
draftOrderRoutes(route)
|
||||
collectionRoutes(route)
|
||||
customerGroupRoutes(route)
|
||||
customerRoutes(route)
|
||||
discountRoutes(route)
|
||||
draftOrderRoutes(route)
|
||||
giftCardRoutes(route)
|
||||
inviteRoutes(route)
|
||||
noteRoutes(route)
|
||||
notificationRoutes(route)
|
||||
returnReasonRoutes(route)
|
||||
orderRoutes(route)
|
||||
priceListRoutes(route)
|
||||
productRoutes(route)
|
||||
productTagRoutes(route)
|
||||
productTypesRoutes(route)
|
||||
noteRoutes(route)
|
||||
inviteRoutes(route)
|
||||
regionRoutes(route)
|
||||
returnReasonRoutes(route)
|
||||
returnRoutes(route)
|
||||
salesChannelRoutes(route)
|
||||
shippingOptionRoutes(route)
|
||||
shippingProfileRoutes(route)
|
||||
storeRoutes(route)
|
||||
swapRoutes(route)
|
||||
taxRateRoutes(route)
|
||||
customerGroupRoutes(route)
|
||||
priceListRoutes(route)
|
||||
uploadRoutes(route)
|
||||
userRoutes(route)
|
||||
variantRoutes(route)
|
||||
|
||||
return app
|
||||
}
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import { SalesChannelServiceMock } from "../../../../../services/__mocks__/sales-channel"
|
||||
|
||||
describe("GET /admin/sales-channels/:id", () => {
|
||||
describe("successfully get a sales channel", () => {
|
||||
let subject
|
||||
|
||||
beforeAll(async () => {
|
||||
subject = await request(
|
||||
"GET",
|
||||
`/admin/sales-channels/${IdMap.getId("sales_channel_1")}`,
|
||||
{
|
||||
adminSession: {
|
||||
jwt: {
|
||||
userId: IdMap.getId("admin_user"),
|
||||
},
|
||||
},
|
||||
flags: ["sales_channels"],
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
afterAll(() => {
|
||||
jest.clearAllMocks()
|
||||
})
|
||||
|
||||
it("calls the retrieve method from the sales channel service", () => {
|
||||
expect(SalesChannelServiceMock.retrieve).toHaveBeenCalledTimes(1)
|
||||
expect(SalesChannelServiceMock.retrieve).toHaveBeenCalledWith(
|
||||
IdMap.getId("sales_channel_1"),
|
||||
)
|
||||
})
|
||||
|
||||
it("returns the expected sales channel", () => {
|
||||
expect(subject.body.sales_channel).toEqual({
|
||||
id: IdMap.getId("sales_channel_1"),
|
||||
name: "sales channel 1 name",
|
||||
description: "sales channel 1 description",
|
||||
is_disabled: false,
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
import { Request, Response } from "express"
|
||||
import SalesChannelService from "../../../../services/sales-channel"
|
||||
|
||||
/**
|
||||
* @oas [get] /sales-channels/{id}
|
||||
* operationId: "GetSalesChannelsSalesChannel"
|
||||
* summary: "Retrieve a sales channel"
|
||||
* description: "Retrieves the sales channel."
|
||||
* x-authenticated: true
|
||||
* parameters:
|
||||
* - (path) id=* {string} The id of the Sales channel.
|
||||
* tags:
|
||||
* - Sales channel
|
||||
* responses:
|
||||
* 200:
|
||||
* description: OK
|
||||
* content:
|
||||
* application/json:
|
||||
* schema:
|
||||
* properties:
|
||||
* sales_channel:
|
||||
* $ref: "#/components/schemas/sales-channel"
|
||||
*/
|
||||
export default async (req: Request, res: Response): Promise<void> => {
|
||||
const { id } = req.params
|
||||
|
||||
const salesChannelService: SalesChannelService = req.scope.resolve(
|
||||
"salesChannelService"
|
||||
)
|
||||
|
||||
const salesChannel = await salesChannelService.retrieve(id)
|
||||
res.status(200).json({ sales_channel: salesChannel })
|
||||
}
|
||||
@@ -1,17 +1,22 @@
|
||||
/* eslint-disable @typescript-eslint/no-empty-function */
|
||||
import { Router } from "express"
|
||||
import { DeleteResponse, PaginatedResponse } from "../../../../types/common"
|
||||
import middlewares from "../../../middlewares"
|
||||
import "reflect-metadata"
|
||||
import { isFeatureFlagEnabled } from "../../../middlewares/feature-flag-enabled"
|
||||
import { SalesChannel } from "../../../../models/sales-channel"
|
||||
import { SalesChannel } from "../../../../models"
|
||||
import middlewares from "../../../middlewares"
|
||||
|
||||
const route = Router()
|
||||
|
||||
export default (app) => {
|
||||
app.use("/sales-channels", isFeatureFlagEnabled("sales_channels"), route)
|
||||
|
||||
route.get("/:id", (req, res) => {})
|
||||
const salesChannelRouter = Router({ mergeParams: true })
|
||||
route.use("/:id", salesChannelRouter)
|
||||
|
||||
salesChannelRouter.get(
|
||||
"/",
|
||||
middlewares.wrap(require("./get-sales-channel").default)
|
||||
)
|
||||
|
||||
route.get("/", (req, res) => {})
|
||||
|
||||
@@ -24,7 +29,7 @@ export default (app) => {
|
||||
return app
|
||||
}
|
||||
|
||||
export type AdminSalesChanenlRes = {
|
||||
export type AdminSalesChannelRes = {
|
||||
sales_channel: SalesChannel
|
||||
}
|
||||
|
||||
@@ -34,7 +39,7 @@ export type AdminSalesChannelListRes = PaginatedResponse & {
|
||||
sales_channels: SalesChannel[]
|
||||
}
|
||||
|
||||
// export * from './'
|
||||
export * from "./get-sales-channel"
|
||||
// export * from './'
|
||||
// export * from './'
|
||||
// export * from './'
|
||||
|
||||
Reference in New Issue
Block a user