@tsc_tech/medusa-plugin-restock
Version:
A starter for Medusa plugins.
79 lines • 6.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRestockSubscriptionWorkflow = void 0;
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
const validate_variant_out_of_stock_1 = require("./steps/validate-variant-out-of-stock");
const core_flows_1 = require("@medusajs/medusa/core-flows");
const create_restock_subscription_1 = require("./steps/create-restock-subscription");
const update_restock_subscription_1 = require("./steps/update-restock-subscription");
exports.createRestockSubscriptionWorkflow = (0, workflows_sdk_1.createWorkflow)("create-restock-subscription", ({ variant_id, sales_channel_id, customer, }) => {
const customerId = (0, workflows_sdk_1.transform)({
customer,
}, (data) => {
return data.customer.customer_id || "";
});
const retrievedCustomer = (0, workflows_sdk_1.when)("retrieve-customer-by-id", { customer }, ({ customer }) => {
return !customer.email;
}).then(() => {
// @ts-ignore
const { data } = (0, core_flows_1.useQueryGraphStep)({
entity: "customer",
fields: ["email"],
filters: { id: customerId },
options: {
throwIfKeyNotFound: true,
},
}).config({ name: "retrieve-customer" });
return data;
});
const email = (0, workflows_sdk_1.transform)({
retrievedCustomer,
customer,
}, (data) => {
return data.customer?.email ?? data.retrievedCustomer?.[0].email;
});
(0, validate_variant_out_of_stock_1.validateVariantOutOfStockStep)({
variant_id,
sales_channel_id,
});
// @ts-ignore
const { data: restockSubscriptions } = (0, core_flows_1.useQueryGraphStep)({
entity: "restock_subscription",
fields: ["*"],
filters: {
email,
variant_id,
sales_channel_id,
},
}).config({ name: "retrieve-subscriptions" });
(0, workflows_sdk_1.when)({ restockSubscriptions }, ({ restockSubscriptions }) => {
return restockSubscriptions.length === 0;
}).then(() => {
(0, create_restock_subscription_1.createRestockSubscriptionStep)({
variant_id,
sales_channel_id,
email,
customer_id: customer.customer_id,
});
});
(0, workflows_sdk_1.when)({ restockSubscriptions }, ({ restockSubscriptions }) => {
return restockSubscriptions.length > 0;
}).then(() => {
(0, update_restock_subscription_1.updateRestockSubscriptionStep)({
id: restockSubscriptions[0].id,
customer_id: customer.customer_id,
});
});
// @ts-ignore
const { data: restockSubscription } = (0, core_flows_1.useQueryGraphStep)({
entity: "restock_subscription",
fields: ["*"],
filters: {
email,
variant_id,
sales_channel_id,
},
}).config({ name: "retrieve-restock-subscription" });
return new workflows_sdk_1.WorkflowResponse(restockSubscription);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1yZXN0b2NrLXN1YnNjcmlwdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMkM7QUFDM0MseUZBQXNGO0FBQ3RGLDREQUFnRTtBQUNoRSxxRkFBb0Y7QUFDcEYscUZBQW9GO0FBV3ZFLFFBQUEsaUNBQWlDLEdBQUcsSUFBQSw4QkFBYyxFQUM3RCw2QkFBNkIsRUFDN0IsQ0FBQyxFQUNDLFVBQVUsRUFDVixnQkFBZ0IsRUFDaEIsUUFBUSxHQUMrQixFQUFFLEVBQUU7SUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBQSx5QkFBUyxFQUMxQjtRQUNFLFFBQVE7S0FDVCxFQUNELENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQ0YsQ0FBQztJQUNGLE1BQU0saUJBQWlCLEdBQUcsSUFBQSxvQkFBSSxFQUM1Qix5QkFBeUIsRUFDekIsRUFBRSxRQUFRLEVBQUUsRUFDWixDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtRQUNmLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQ3pCLENBQUMsQ0FDRixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDVixhQUFhO1FBQ2IsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7WUFDakMsTUFBTSxFQUFFLFVBQVU7WUFDbEIsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUU7WUFDM0IsT0FBTyxFQUFFO2dCQUNQLGtCQUFrQixFQUFFLElBQUk7YUFDekI7U0FDRixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUV6QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxLQUFLLEdBQUcsSUFBQSx5QkFBUyxFQUNyQjtRQUNFLGlCQUFpQjtRQUNqQixRQUFRO0tBQ1QsRUFDRCxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbkUsQ0FBQyxDQUNGLENBQUM7SUFFRixJQUFBLDZEQUE2QixFQUFDO1FBQzVCLFVBQVU7UUFDVixnQkFBZ0I7S0FDakIsQ0FBQyxDQUFDO0lBRUgsYUFBYTtJQUNiLE1BQU0sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQ3ZELE1BQU0sRUFBRSxzQkFBc0I7UUFDOUIsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQ2IsT0FBTyxFQUFFO1lBQ1AsS0FBSztZQUNMLFVBQVU7WUFDVixnQkFBZ0I7U0FDakI7S0FDRixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQztJQUU5QyxJQUFBLG9CQUFJLEVBQUMsRUFBRSxvQkFBb0IsRUFBRSxFQUFFLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxFQUFFLEVBQUU7UUFDMUQsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDWCxJQUFBLDJEQUE2QixFQUFDO1lBQzVCLFVBQVU7WUFDVixnQkFBZ0I7WUFDaEIsS0FBSztZQUNMLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsb0JBQUksRUFBQyxFQUFFLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLEVBQUUsRUFBRTtRQUMxRCxPQUFPLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNYLElBQUEsMkRBQTZCLEVBQUM7WUFDNUIsRUFBRSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDOUIsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsYUFBYTtJQUNiLE1BQU0sRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQ3RELE1BQU0sRUFBRSxzQkFBc0I7UUFDOUIsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQ2IsT0FBTyxFQUFFO1lBQ1AsS0FBSztZQUNMLFVBQVU7WUFDVixnQkFBZ0I7U0FDakI7S0FDRixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLCtCQUErQixFQUFFLENBQUMsQ0FBQztJQUVyRCxPQUFPLElBQUksZ0NBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQ0YsQ0FBQyJ9