medusa-plugin-content 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/.medusa/server/medusa-config.js +23 -0
  2. package/.medusa/server/src/admin/index.js +7517 -0
  3. package/.medusa/server/src/admin/index.mjs +7515 -0
  4. package/.medusa/server/src/api/admin/content/[collectionId]/fields/[fieldId]/route.js +31 -0
  5. package/.medusa/server/src/api/admin/content/[collectionId]/fields/route.js +36 -0
  6. package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/activity/route.js +40 -0
  7. package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/links/[linkId]/route.js +12 -0
  8. package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/links/route.js +34 -0
  9. package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/route.js +49 -0
  10. package/.medusa/server/src/api/admin/content/[collectionId]/items/[itemId]/tags/route.js +36 -0
  11. package/.medusa/server/src/api/admin/content/[collectionId]/items/route.js +43 -0
  12. package/.medusa/server/src/api/admin/content/[collectionId]/relationships/[relId]/route.js +24 -0
  13. package/.medusa/server/src/api/admin/content/[collectionId]/relationships/route.js +36 -0
  14. package/.medusa/server/src/api/admin/content/[collectionId]/route.js +31 -0
  15. package/.medusa/server/src/api/admin/content/[collectionId]/upload/route.js +31 -0
  16. package/.medusa/server/src/api/admin/content/route.js +37 -0
  17. package/.medusa/server/src/api/admin/content-creators/[id]/activity/route.js +40 -0
  18. package/.medusa/server/src/api/admin/content-creators/[id]/route.js +33 -0
  19. package/.medusa/server/src/api/admin/content-creators/route.js +37 -0
  20. package/.medusa/server/src/api/admin/content-tags/[id]/route.js +31 -0
  21. package/.medusa/server/src/api/admin/content-tags/route.js +38 -0
  22. package/.medusa/server/src/api/content/[slug]/items/[itemSlug]/route.js +30 -0
  23. package/.medusa/server/src/api/content/[slug]/items/route.js +38 -0
  24. package/.medusa/server/src/api/content/[slug]/route.js +29 -0
  25. package/.medusa/server/src/api/content/route.js +33 -0
  26. package/.medusa/server/src/api/middlewares.js +423 -0
  27. package/.medusa/server/src/api/validators.js +172 -0
  28. package/.medusa/server/src/links/content-creator-activity-user.js +15 -0
  29. package/.medusa/server/src/links/content-item-activity-user.js +15 -0
  30. package/.medusa/server/src/links/user-content-creator-activity.js +18 -0
  31. package/.medusa/server/src/links/user-content-item-activity.js +18 -0
  32. package/.medusa/server/src/modules/content/index.js +10 -0
  33. package/.medusa/server/src/modules/content/migrations/Migration20260411221609.js +88 -0
  34. package/.medusa/server/src/modules/content/models/content-collection.js +40 -0
  35. package/.medusa/server/src/modules/content/models/content-creator-activity.js +21 -0
  36. package/.medusa/server/src/modules/content/models/content-creator.js +24 -0
  37. package/.medusa/server/src/modules/content/models/content-field.js +19 -0
  38. package/.medusa/server/src/modules/content/models/content-item-activity.js +24 -0
  39. package/.medusa/server/src/modules/content/models/content-item.js +49 -0
  40. package/.medusa/server/src/modules/content/models/content-link.js +19 -0
  41. package/.medusa/server/src/modules/content/models/content-relationship.js +26 -0
  42. package/.medusa/server/src/modules/content/models/content-tag.js +14 -0
  43. package/.medusa/server/src/modules/content/models/customer-activity.js +28 -0
  44. package/.medusa/server/src/modules/content/service.js +49 -0
  45. package/.medusa/server/src/workflows/file.js +26 -0
  46. package/LICENSE +21 -0
  47. package/README.md +56 -0
  48. package/package.json +86 -0
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const content_1 = require("../../../../modules/content");
6
+ const GET = async (req, res) => {
7
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const { id } = req.params;
9
+ const { data: [content_tag] } = await query.graph({
10
+ entity: 'content_tag',
11
+ fields: req.queryConfig.fields,
12
+ filters: { id }
13
+ }, { throwIfKeyNotFound: true });
14
+ res.json({ content_tag });
15
+ };
16
+ exports.GET = GET;
17
+ const POST = async (req, res) => {
18
+ const { id } = req.params;
19
+ const contentService = req.scope.resolve(content_1.CONTENT_MODULE);
20
+ const content_tag = await contentService.updateContentTags({ id, ...req.validatedBody });
21
+ res.json({ content_tag });
22
+ };
23
+ exports.POST = POST;
24
+ const DELETE = async (req, res) => {
25
+ const { id } = req.params;
26
+ const contentService = req.scope.resolve(content_1.CONTENT_MODULE);
27
+ await contentService.deleteContentTags([id]);
28
+ res.json({ deleted: [id] });
29
+ };
30
+ exports.DELETE = DELETE;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbnRlbnQtdGFncy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUFxRTtBQUNyRSx5REFBNEQ7QUFPckQsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN2QixHQUF1RCxFQUN2RCxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFekIsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUNoRDtRQUNDLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFO0tBQ2YsRUFDRCxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFBO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7QUFDMUIsQ0FBQyxDQUFBO0FBakJZLFFBQUEsR0FBRyxPQWlCZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDeEIsR0FBMEQsRUFDMUQsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ3pCLE1BQU0sY0FBYyxHQUFtQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUE7SUFDeEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxjQUFjLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQTtJQUN4RixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtBQUMxQixDQUFDLENBQUE7QUFSWSxRQUFBLElBQUksUUFRaEI7QUFFTSxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQzFCLEdBQStCLEVBQy9CLEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLGNBQWMsR0FBbUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsd0JBQWMsQ0FBQyxDQUFBO0lBQ3hFLE1BQU0sY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUM1QyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQzVCLENBQUMsQ0FBQTtBQVJZLFFBQUEsTUFBTSxVQVFsQiJ9
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const content_1 = require("../../../modules/content");
6
+ const GET = async (req, res) => {
7
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const { item_id, q } = req.validatedQuery;
9
+ const { data: content_tags, metadata } = await query.graph({
10
+ entity: 'content_tag',
11
+ ...req.queryConfig,
12
+ filters: {
13
+ ...(item_id ? { item_id } : {}),
14
+ ...(q ? { value: { $ilike: `%${q}%` } } : {})
15
+ }
16
+ });
17
+ res.json({
18
+ content_tags,
19
+ count: metadata?.count,
20
+ limit: metadata?.take,
21
+ offset: metadata?.skip
22
+ });
23
+ };
24
+ exports.GET = GET;
25
+ const POST = async (req, res) => {
26
+ const contentService = req.scope.resolve(content_1.CONTENT_MODULE);
27
+ const content_tag = await contentService.createContentTags(req.validatedBody);
28
+ res.json({ content_tag });
29
+ };
30
+ exports.POST = POST;
31
+ const DELETE = async (req, res) => {
32
+ const { ids } = req.validatedBody;
33
+ const contentService = req.scope.resolve(content_1.CONTENT_MODULE);
34
+ await contentService.deleteContentTags(ids);
35
+ res.json({ deleted: ids });
36
+ };
37
+ exports.DELETE = DELETE;
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbnRlbnQtdGFncy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBcUU7QUFDckUsc0RBQXlEO0FBUWxELE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdkIsR0FBd0QsRUFDeEQsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQTtJQUV6QyxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDMUQsTUFBTSxFQUFFLGFBQWE7UUFDckIsR0FBRyxHQUFHLENBQUMsV0FBVztRQUNsQixPQUFPLEVBQUU7WUFDUixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM3QztLQUNELENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUixZQUFZO1FBQ1osS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLO1FBQ3RCLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSTtRQUNyQixNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUk7S0FDdEIsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBdEJZLFFBQUEsR0FBRyxPQXNCZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDeEIsR0FBMEQsRUFDMUQsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0sY0FBYyxHQUFtQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUE7SUFDeEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxjQUFjLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzdFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0FBQzFCLENBQUMsQ0FBQTtBQVBZLFFBQUEsSUFBSSxRQU9oQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDMUIsR0FBMkQsRUFDM0QsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFBO0lBQ2pDLE1BQU0sY0FBYyxHQUFtQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUE7SUFDeEUsTUFBTSxjQUFjLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0MsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFBO0FBQzNCLENBQUMsQ0FBQTtBQVJZLFFBQUEsTUFBTSxVQVFsQiJ9
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const content_item_1 = require("../../../../../modules/content/models/content-item");
6
+ const TTL = 300; // 5 minutes
7
+ const GET = async (req, res) => {
8
+ const caching = req.scope.resolve(utils_1.Modules.CACHING);
9
+ const { itemSlug } = req.params;
10
+ const cacheKey = `store:content-item:${itemSlug}`;
11
+ const cached = await caching.get({ key: cacheKey });
12
+ if (cached) {
13
+ res.json(cached);
14
+ return;
15
+ }
16
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
17
+ const { data: [content_item] } = await query.graph({
18
+ entity: 'content_item',
19
+ ...req.queryConfig,
20
+ filters: { slug: itemSlug, status: content_item_1.ContentStatus.PUBLISHED }
21
+ });
22
+ if (!content_item) {
23
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Content item "${itemSlug}" not found`);
24
+ }
25
+ const body = { content_item };
26
+ await caching.set({ key: cacheKey, data: body, ttl: TTL });
27
+ res.json(body);
28
+ };
29
+ exports.GET = GET;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2NvbnRlbnQvW3NsdWddL2l0ZW1zL1tpdGVtU2x1Z10vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQTJGO0FBRTNGLHFGQUFrRjtBQUdsRixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUEsQ0FBQyxZQUFZO0FBRXJCLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdkIsR0FBMkMsRUFDM0MsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0sT0FBTyxHQUEwQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDekUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFL0IsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLFFBQVEsRUFBRSxDQUFBO0lBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQ25ELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2hCLE9BQU07SUFDUCxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2xELE1BQU0sRUFBRSxjQUFjO1FBQ3RCLEdBQUcsR0FBRyxDQUFDLFdBQVc7UUFDbEIsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsNEJBQWEsQ0FBQyxTQUFTLEVBQUU7S0FDNUQsQ0FBQyxDQUFBO0lBRUYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ25CLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsUUFBUSxhQUFhLENBQUMsQ0FBQTtJQUMzRixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsRUFBRSxZQUFZLEVBQUUsQ0FBQTtJQUM3QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUF5QixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQy9FLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDZixDQUFDLENBQUE7QUE1QlksUUFBQSxHQUFHLE9BNEJmIn0=
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const content_item_1 = require("../../../../modules/content/models/content-item");
6
+ const TTL = 300; // 5 minutes
7
+ const GET = async (req, res) => {
8
+ const caching = req.scope.resolve(utils_1.Modules.CACHING);
9
+ const { slug } = req.params;
10
+ const { tag, q, limit, offset } = req.validatedQuery;
11
+ const cacheKey = `store:content-items:${slug}:${tag ?? ''}:${q ?? ''}:${limit}:${offset}`;
12
+ const cached = await caching.get({ key: cacheKey });
13
+ if (cached) {
14
+ res.json(cached);
15
+ return;
16
+ }
17
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
18
+ const { data: content_items, metadata } = await query.graph({
19
+ entity: 'content_item',
20
+ ...req.queryConfig,
21
+ filters: {
22
+ status: content_item_1.ContentStatus.PUBLISHED,
23
+ content_collection: { slug },
24
+ ...(tag ? { tags: { value: tag } } : {}),
25
+ ...(q ? { title: { $ilike: `%${q}%` } } : {})
26
+ }
27
+ });
28
+ const body = {
29
+ content_items,
30
+ count: metadata?.count,
31
+ limit: metadata?.take,
32
+ offset: metadata?.skip
33
+ };
34
+ await caching.set({ key: cacheKey, data: body, ttl: TTL });
35
+ res.json(body);
36
+ };
37
+ exports.GET = GET;
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2NvbnRlbnQvW3NsdWddL2l0ZW1zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUE4RTtBQUU5RSxrRkFBK0U7QUFHL0UsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFBLENBQUMsWUFBWTtBQUVyQixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3ZCLEdBQTRDLEVBQzVDLEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLE9BQU8sR0FBMEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3pFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQzNCLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFBO0lBRXBELE1BQU0sUUFBUSxHQUFHLHVCQUF1QixJQUFJLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQTtJQUN6RixNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUNuRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1osR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNoQixPQUFNO0lBQ1AsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMzRCxNQUFNLEVBQUUsY0FBYztRQUN0QixHQUFHLEdBQUcsQ0FBQyxXQUFXO1FBQ2xCLE9BQU8sRUFBRTtZQUNSLE1BQU0sRUFBRSw0QkFBYSxDQUFDLFNBQVM7WUFDL0Isa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDNUIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDN0M7S0FDRCxDQUFDLENBQUE7SUFFRixNQUFNLElBQUksR0FBRztRQUNaLGFBQWE7UUFDYixLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUs7UUFDdEIsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJO1FBQ3JCLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSTtLQUN0QixDQUFBO0lBRUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBeUIsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUMvRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBcENZLFFBQUEsR0FBRyxPQW9DZiJ9
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const TTL = 300; // 5 minutes
6
+ const GET = async (req, res) => {
7
+ const caching = req.scope.resolve(utils_1.Modules.CACHING);
8
+ const { slug } = req.params;
9
+ const cacheKey = `store:content-collection:${slug}`;
10
+ const cached = await caching.get({ key: cacheKey });
11
+ if (cached) {
12
+ res.json(cached);
13
+ return;
14
+ }
15
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
16
+ const { data: [content_collection] } = await query.graph({
17
+ entity: 'content_collection',
18
+ ...req.queryConfig,
19
+ filters: { slug }
20
+ });
21
+ if (!content_collection) {
22
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Content collection "${slug}" not found`);
23
+ }
24
+ const body = { content_collection };
25
+ await caching.set({ key: cacheKey, data: body, ttl: TTL });
26
+ res.json(body);
27
+ };
28
+ exports.GET = GET;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2NvbnRlbnQvW3NsdWddL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUEyRjtBQUkzRixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUEsQ0FBQyxZQUFZO0FBRXJCLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdkIsR0FBaUQsRUFDakQsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0sT0FBTyxHQUEwQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDekUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFM0IsTUFBTSxRQUFRLEdBQUcsNEJBQTRCLElBQUksRUFBRSxDQUFBO0lBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQ25ELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2hCLE9BQU07SUFDUCxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDeEQsTUFBTSxFQUFFLG9CQUFvQjtRQUM1QixHQUFHLEdBQUcsQ0FBQyxXQUFXO1FBQ2xCLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRTtLQUNqQixDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN6QixNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLElBQUksYUFBYSxDQUFDLENBQUE7SUFDN0YsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQTtJQUNuQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUF5QixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQy9FLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDZixDQUFDLENBQUE7QUE1QlksUUFBQSxHQUFHLE9BNEJmIn0=
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const TTL = 300; // 5 minutes
6
+ const GET = async (req, res) => {
7
+ const caching = req.scope.resolve(utils_1.Modules.CACHING);
8
+ const { q } = req.validatedQuery;
9
+ const cacheKey = `store:content-collections:${q ?? 'all'}`;
10
+ const cached = await caching.get({ key: cacheKey });
11
+ if (cached) {
12
+ res.json(cached);
13
+ return;
14
+ }
15
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
16
+ const { data: content_collections, metadata } = await query.graph({
17
+ entity: 'content_collection',
18
+ ...req.queryConfig,
19
+ filters: {
20
+ ...(q ? { label: { $ilike: `%${q}%` } } : {})
21
+ }
22
+ });
23
+ const body = {
24
+ content_collections,
25
+ count: metadata?.count,
26
+ limit: metadata?.take,
27
+ offset: metadata?.skip
28
+ };
29
+ await caching.set({ key: cacheKey, data: body, ttl: TTL });
30
+ res.json(body);
31
+ };
32
+ exports.GET = GET;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2NvbnRlbnQvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQThFO0FBSTlFLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQSxDQUFDLFlBQVk7QUFFckIsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN2QixHQUFrRCxFQUNsRCxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxPQUFPLEdBQTBCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN6RSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQTtJQUVoQyxNQUFNLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFBO0lBQzFELE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQ25ELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2hCLE9BQU07SUFDUCxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakUsTUFBTSxFQUFFLG9CQUFvQjtRQUM1QixHQUFHLEdBQUcsQ0FBQyxXQUFXO1FBQ2xCLE9BQU8sRUFBRTtZQUNSLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDN0M7S0FDRCxDQUFDLENBQUE7SUFFRixNQUFNLElBQUksR0FBRztRQUNaLG1CQUFtQjtRQUNuQixLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUs7UUFDdEIsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJO1FBQ3JCLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSTtLQUN0QixDQUFBO0lBRUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBeUIsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUMvRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBaENZLFFBQUEsR0FBRyxPQWdDZiJ9