UNPKG

@inflightit/api-plugin-orders

Version:
39 lines (35 loc) 1.34 kB
import { decodeOrderItemOpaqueId, decodeOrderOpaqueId } from "../../xforms/id.js"; /** * @name Mutation/cancelOrderItem * @method * @memberof Payments/GraphQL * @summary resolver for the cancelOrderItem GraphQL mutation * @param {Object} parentResult - unused * @param {Object} args.input - an object of all mutation arguments that were sent by the client * @param {String} args.input.orderId - The order ID * @param {String} args.input.itemId - The ID of the item to cancel * @param {Number} args.input.cancelQuantity - Quantity to cancel. Must be equal to or less than the item quantity. * @param {String} [args.input.reason] - Optional free text reason for cancel * @param {String} [args.input.clientMutationId] - An optional string identifying the mutation call * @param {Object} context - an object containing the per-request state * @returns {Promise<Object>} CancelOrderItemPayload */ export default async function cancelOrderItem(parentResult, { input }, context) { const { clientMutationId = null, cancelQuantity, itemId, orderId, reason } = input; const { order } = await context.mutations.cancelOrderItem(context, { cancelQuantity, itemId: decodeOrderItemOpaqueId(itemId), orderId: decodeOrderOpaqueId(orderId), reason }); return { clientMutationId, order }; }