feat(medusa): Support OrderEdit removal (#2204)

This commit is contained in:
Philip Korsholm
2022-09-16 08:39:40 +02:00
committed by GitHub
parent 6225aa57b8
commit 09627c01d3
13 changed files with 374 additions and 5 deletions
@@ -80,7 +80,7 @@ export default (app, container, config) => {
noteRoutes(route)
notificationRoutes(route)
orderRoutes(route, featureFlagRouter)
orderEditRoutes(route, featureFlagRouter)
orderEditRoutes(route)
priceListRoutes(route, featureFlagRouter)
productRoutes(route, featureFlagRouter)
productTagRoutes(route)
@@ -0,0 +1,43 @@
import { IdMap } from "medusa-test-utils"
import { request } from "../../../../../helpers/test-request"
import OrderEditingFeatureFlag from "../../../../../loaders/feature-flags/order-editing"
import { orderEditServiceMock } from "../../../../../services/__mocks__/order-edit"
describe("DELETE /admin/order-edits/:id", () => {
describe("deletes an order edit", () => {
const orderEditId = IdMap.getId("test-order-edit")
let subject
beforeAll(async () => {
subject = await request("DELETE", `/admin/order-edits/${orderEditId}`, {
adminSession: {
jwt: {
userId: IdMap.getId("admin_user"),
},
},
flags: [OrderEditingFeatureFlag],
})
})
afterAll(() => {
jest.clearAllMocks()
})
it("calls orderService retrieve", () => {
expect(orderEditServiceMock.delete).toHaveBeenCalledTimes(1)
expect(orderEditServiceMock.delete).toHaveBeenCalledWith(orderEditId)
})
it("returns 200", () => {
expect(subject.status).toEqual(200)
})
it("returns delete result", () => {
expect(subject.body).toEqual({
id: orderEditId,
object: "order_edit",
deleted: true,
})
})
})
})
@@ -0,0 +1,71 @@
import { EntityManager } from "typeorm"
import { OrderEditService } from "../../../../services"
/**
* @oas [delete] /order-edits/{id}
* operationId: "DeleteOrderEditsOrderEdit"
* summary: "Delete an Order Edit"
* description: "Deletes an Order Edit"
* x-authenticated: true
* parameters:
* - (path) id=* {string} The ID of the Note to delete.
* x-codeSamples:
* - lang: JavaScript
* label: JS Client
* source: |
* import Medusa from "@medusajs/medusa-js"
* const medusa = new Medusa({ baseUrl: MEDUSA_BACKEND_URL, maxRetries: 3 })
* // must be previously logged in or use api token
* medusa.admin.orderEdits.delete(edit_id)
* .then(({ id, object, deleted }) => {
* console.log(id);
* });
* - lang: Shell
* label: cURL
* source: |
* curl --location --request DELETE 'https://medusa-url.com/admin/order-edits/{id}' \
* --header 'Authorization: Bearer {api_token}'
* security:
* - api_token: []
* - cookie_auth: []
* tags:
* - OrderEdit
* responses:
* 200:
* description: OK
* content:
* application/json:
* schema:
* properties:
* id:
* type: string
* description: The ID of the deleted Order Edit.
* object:
* type: string
* description: The type of the object that was deleted.
* format: order_edit
* deleted:
* type: boolean
* description: Whether or not the Order Edit was deleted.
* default: true
* "400":
* $ref: "#/components/responses/400_error"
*/
export default async (req, res) => {
const { id } = req.params
const orderEditService: OrderEditService =
req.scope.resolve("orderEditService")
const manager: EntityManager = req.scope.resolve("manager")
await manager.transaction(async (transactionManager) => {
await orderEditService.withTransaction(transactionManager).delete(id)
})
res.status(200).send({
id,
object: "order_edit",
deleted: true,
})
}
@@ -8,6 +8,7 @@ import {
defaultOrderEditRelations,
} from "../../../../types/order-edit"
import { OrderEdit } from "../../../../models"
import { DeleteResponse } from "../../../../types/common"
const route = Router()
@@ -28,9 +29,12 @@ export default (app) => {
middlewares.wrap(require("./get-order-edit").default)
)
route.delete("/:id", middlewares.wrap(require("./delete-order-edit").default))
return app
}
export type AdminOrdersEditsRes = {
order_edit: OrderEdit
}
export type AdminOrderEditDeleteRes = DeleteResponse