76 lines
2.4 KiB
TypeScript
76 lines
2.4 KiB
TypeScript
import { defaultAdminDiscountsFields, defaultAdminDiscountsRelations } from "."
|
|
|
|
import DiscountService from "../../../../services/discount"
|
|
import { EntityManager } from "typeorm"
|
|
|
|
/**
|
|
* @oas [delete] /discounts/{id}/dynamic-codes/{code}
|
|
* operationId: "DeleteDiscountsDiscountDynamicCodesCode"
|
|
* summary: "Delete a dynamic code"
|
|
* description: "Deletes a dynamic code from a Discount."
|
|
* x-authenticated: true
|
|
* parameters:
|
|
* - (path) id=* {string} The ID of the Discount
|
|
* - (path) code=* {string} The ID of the Discount
|
|
* 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.discounts.deleteDynamicCode(discount_id, code)
|
|
* .then(({ discount }) => {
|
|
* console.log(discount.id);
|
|
* });
|
|
* - lang: Shell
|
|
* label: cURL
|
|
* source: |
|
|
* curl --location --request DELETE 'https://medusa-url.com/admin/discounts/{id}/dynamic-codes/{code}' \
|
|
* --header 'Authorization: Bearer {api_token}'
|
|
* security:
|
|
* - api_token: []
|
|
* - cookie_auth: []
|
|
* tags:
|
|
* - Discount
|
|
* responses:
|
|
* 200:
|
|
* description: OK
|
|
* content:
|
|
* application/json:
|
|
* schema:
|
|
* properties:
|
|
* discount:
|
|
* $ref: "#/components/schemas/discount"
|
|
* "400":
|
|
* $ref: "#/components/responses/400_error"
|
|
* "401":
|
|
* $ref: "#/components/responses/unauthorized"
|
|
* "404":
|
|
* $ref: "#/components/responses/not_found_error"
|
|
* "409":
|
|
* $ref: "#/components/responses/invalid_state_error"
|
|
* "422":
|
|
* $ref: "#/components/responses/invalid_request_error"
|
|
* "500":
|
|
* $ref: "#/components/responses/500_error"
|
|
*/
|
|
export default async (req, res) => {
|
|
const { discount_id, code } = req.params
|
|
|
|
const discountService: DiscountService = req.scope.resolve("discountService")
|
|
const manager: EntityManager = req.scope.resolve("manager")
|
|
await manager.transaction(async (transactionManager) => {
|
|
return await discountService
|
|
.withTransaction(transactionManager)
|
|
.deleteDynamicCode(discount_id, code)
|
|
})
|
|
|
|
const discount = await discountService.retrieve(discount_id, {
|
|
select: defaultAdminDiscountsFields,
|
|
relations: defaultAdminDiscountsRelations,
|
|
})
|
|
|
|
res.status(200).json({ discount })
|
|
}
|