@alphabite/medusa-wishlist
Version:
Alphabite's Medusa Wishlist Plugin
74 lines • 6.68 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GET = GET;
exports.POST = POST;
const wishlist_1 = require("../../../modules/wishlist");
const utils_1 = require("../../../utils/utils");
const utils_2 = require("@medusajs/framework/utils");
async function GET(req, res) {
const logger = req.scope.resolve("logger");
const customer_id = req.auth_context.actor_id;
const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
const options = wishlistService._options;
const { items_fields } = req.validatedQuery;
try {
const query = req.scope.resolve("query");
const { data, metadata } = await query.graph({
entity: "wishlist",
filters: { customer_id },
...req.queryConfig,
fields: ["*", ...(options?.wishlistFields || []), ...req.queryConfig.fields],
});
const wishlists = options.includeWishlistItems
? await Promise.all(data.map(async (wishlist) => {
const { data: items, metadata } = await query.graph({
entity: "wishlist_item",
filters: { wishlist_id: wishlist.id },
fields: [...utils_1.defaultItemsFields, ...(items_fields || [])],
pagination: {
take: options?.includeWishlistItemsTake || 5,
skip: 0,
},
});
return {
...wishlist,
items: items.length > 0 ? items : [],
items_count: metadata?.count,
};
}))
: data;
return res.status(200).json({
data: wishlists,
take: metadata?.take || 5,
skip: metadata?.skip || 0,
...(0, utils_1.getPagination)(metadata),
});
}
catch (error) {
logger.error("Error fetching wishlists:", error);
return res.status(500).end();
}
}
//-----Create wishlists-----//
async function POST(req, res) {
const logger = req.scope.resolve("logger");
const customer_id = req?.auth_context?.actor_id;
const { ...input } = req.body;
const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
const options = wishlistService._options;
if (!options.allowGuestWishlist && !customer_id) {
throw new utils_2.MedusaError(utils_2.MedusaError.Types.UNAUTHORIZED, "Guest wishlists are now allowed");
}
try {
const wishlist = await wishlistService.createWishlists({
...input,
...(customer_id && { customer_id }),
});
return res.status(201).json({ ...wishlist, items_count: 0, items: [] });
}
catch (error) {
logger.error("Error creating wishlist:", error);
return res.status(500).end();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLGtCQXNEQztBQUlELG9CQXlCQztBQXZGRCx3REFBNEQ7QUFDNUQsZ0RBQXlFO0FBQ3pFLHFEQUFvRTtBQUU3RCxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUF3RCxFQUN4RCxHQUE4QztJQUU5QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUUzQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUM5QyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBd0IsMEJBQWUsQ0FBQyxDQUFDO0lBQ2xGLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7SUFDekMsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUM7SUFFNUMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDM0MsTUFBTSxFQUFFLFVBQVU7WUFDbEIsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFO1lBQ3hCLEdBQUcsR0FBRyxDQUFDLFdBQVc7WUFDbEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7U0FDN0UsQ0FBQyxDQUFDO1FBRUgsTUFBTSxTQUFTLEdBQWUsT0FBTyxD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