@tsc_tech/medusa-plugin-wishlist
Version:
A starter for Medusa plugins.
106 lines • 8.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.POST = POST;
exports.GET = GET;
const wishlist_1 = require("../../../modules/wishlist");
const utils_1 = require("@medusajs/framework/utils");
async function POST(req, res) {
const { region_id, variant_id } = req.body;
const customer_id = req.auth_context.actor_id;
if (!region_id) {
return res.status(400).send({ message: "region_id is required" });
}
if (!variant_id) {
return res.status(400).send({ message: "variant_id is required" });
}
const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
const { data: region } = await query.graph({
entity: "region",
filters: {
id: region_id,
},
fields: ["*"],
});
if (region && region.length === 0) {
return res.status(400).send({ message: "invalid parameters region" });
}
let wishlist;
// first check if wishlist exist
const { data: wishlistExist } = await query.graph({
entity: "wishlists",
filters: {
customer_id: customer_id,
region_id: region_id,
},
fields: ["*", "items.*"],
});
if (wishlistExist && wishlistExist.length > 0) {
wishlist = wishlistExist[0];
}
else {
//create new wishlist
wishlist = await wishlistService.createWishlists({
customer_id,
region_id,
});
}
//add item in to wishlistItem but check if item already exist then delete it
const wishlistItemExist = await wishlistService.listWishlistItems({
variant_id,
wishlist_id: wishlist.id,
});
if (wishlistItemExist && wishlistItemExist.length > 0) {
await wishlistService.deleteWishlistItems(wishlistItemExist[0].id);
}
else {
await wishlistService.createWishlistItems({
variant_id,
wishlist_id: wishlist.id,
});
}
const { data: dataWishlist } = await query.graph({
entity: "wishlists",
filters: {
customer_id: customer_id,
region_id: region_id,
},
fields: ["*", "items.*"],
});
return res.status(200).json({ wishlist: dataWishlist });
}
async function GET(req, res) {
const customerId = req.auth_context.actor_id;
const { region_id } = req.query;
if (!region_id) {
return res.status(400).send({ message: "region_id is required" });
}
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
const { data: wishlist } = await query.graph({
entity: "wishlists",
filters: {
customer_id: customerId,
region_id: region_id,
},
fields: ["*", "items.*"],
});
const { data } = await query.graph({
entity: "products",
fields: ["*", "wishlist_item.*", "variants.*"],
filters: {
variants: {
id: wishlist?.flatMap((x) => x?.items?.map((p) => p?.variant_id)),
},
},
});
const variantIDs = wishlist?.flatMap((x) => x?.items?.map((p) => p?.variant_id));
const { data: variants } = await query.graph({
entity: "variants",
fields: ["*", "product.*"],
filters: {
id: variantIDs,
},
});
res.status(200).json({ wishlist, products: data, variants });
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsb0JBbUVDO0FBRUQsa0JBd0NDO0FBakhELHdEQUE0RDtBQUU1RCxxREFBK0U7QUFFeEUsS0FBSyxVQUFVLElBQUksQ0FDekIsR0FBNEUsRUFDNUUsR0FBbUI7SUFFbkIsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQzNDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQzlDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxNQUFNLGVBQWUsR0FBb0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsMEJBQWUsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWpFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFDLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE9BQU8sRUFBRTtZQUNSLEVBQUUsRUFBRSxTQUFTO1NBQ2I7UUFDRCxNQUFNLEVBQUUs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