@lodashventure/medusa-campaign 1.4.24 → 1.5.0

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.
@@ -2056,6 +2056,41 @@ const FlashSaleForm = ({
2056
2056
  ] }) })
2057
2057
  ] });
2058
2058
  };
2059
+ const FlashSaleCreate = () => {
2060
+ const navigate = reactRouterDom.useNavigate();
2061
+ async function handleSubmit(campaignData) {
2062
+ var _a;
2063
+ try {
2064
+ await axios__default.default.post("/admin/flash-sales", {
2065
+ ...campaignData,
2066
+ starts_at: new Date(campaignData.starts_at).toUTCString(),
2067
+ ends_at: new Date(campaignData.ends_at).toUTCString()
2068
+ });
2069
+ ui.toast.success("Flash sale created successfully");
2070
+ navigate("/flash-sales");
2071
+ } catch (error) {
2072
+ let message;
2073
+ if (axios__default.default.isAxiosError(error)) {
2074
+ console.log(error);
2075
+ message = (_a = error.response) == null ? void 0 : _a.data.message;
2076
+ } else if (error instanceof Error) {
2077
+ message = error.message;
2078
+ } else {
2079
+ message = "Failed to create flash sale";
2080
+ }
2081
+ ui.toast.error("Failed to create flash sale", {
2082
+ description: message
2083
+ });
2084
+ }
2085
+ }
2086
+ return /* @__PURE__ */ jsxRuntime.jsx(
2087
+ FlashSaleForm,
2088
+ {
2089
+ onSubmit: handleSubmit,
2090
+ onCancel: () => navigate("/flash-sales")
2091
+ }
2092
+ );
2093
+ };
2059
2094
  const useFlashSaleById = (id) => {
2060
2095
  const [data, setData] = react.useState(null);
2061
2096
  const [isLoading, setIsLoading] = react.useState(true);
@@ -2174,41 +2209,6 @@ const config = adminSdk.defineRouteConfig({
2174
2209
  label: "Flash Sale Detail",
2175
2210
  icon: icons.Sparkles
2176
2211
  });
2177
- const FlashSaleCreate = () => {
2178
- const navigate = reactRouterDom.useNavigate();
2179
- async function handleSubmit(campaignData) {
2180
- var _a;
2181
- try {
2182
- await axios__default.default.post("/admin/flash-sales", {
2183
- ...campaignData,
2184
- starts_at: new Date(campaignData.starts_at).toUTCString(),
2185
- ends_at: new Date(campaignData.ends_at).toUTCString()
2186
- });
2187
- ui.toast.success("Flash sale created successfully");
2188
- navigate("/flash-sales");
2189
- } catch (error) {
2190
- let message;
2191
- if (axios__default.default.isAxiosError(error)) {
2192
- console.log(error);
2193
- message = (_a = error.response) == null ? void 0 : _a.data.message;
2194
- } else if (error instanceof Error) {
2195
- message = error.message;
2196
- } else {
2197
- message = "Failed to create flash sale";
2198
- }
2199
- ui.toast.error("Failed to create flash sale", {
2200
- description: message
2201
- });
2202
- }
2203
- }
2204
- return /* @__PURE__ */ jsxRuntime.jsx(
2205
- FlashSaleForm,
2206
- {
2207
- onSubmit: handleSubmit,
2208
- onCancel: () => navigate("/flash-sales")
2209
- }
2210
- );
2211
- };
2212
2212
  const widgetModule = { widgets: [
2213
2213
  {
2214
2214
  Component: CampaignDetailWidget,
@@ -2233,13 +2233,13 @@ const routeModule = {
2233
2233
  Component: CouponCreate,
2234
2234
  path: "/coupons/create"
2235
2235
  },
2236
- {
2237
- Component: FlashSaleDetail,
2238
- path: "/flash-sales/:id"
2239
- },
2240
2236
  {
2241
2237
  Component: FlashSaleCreate,
2242
2238
  path: "/flash-sales/create"
2239
+ },
2240
+ {
2241
+ Component: FlashSaleDetail,
2242
+ path: "/flash-sales/:id"
2243
2243
  }
2244
2244
  ]
2245
2245
  };
@@ -2050,6 +2050,41 @@ const FlashSaleForm = ({
2050
2050
  ] }) })
2051
2051
  ] });
2052
2052
  };
2053
+ const FlashSaleCreate = () => {
2054
+ const navigate = useNavigate();
2055
+ async function handleSubmit(campaignData) {
2056
+ var _a;
2057
+ try {
2058
+ await axios.post("/admin/flash-sales", {
2059
+ ...campaignData,
2060
+ starts_at: new Date(campaignData.starts_at).toUTCString(),
2061
+ ends_at: new Date(campaignData.ends_at).toUTCString()
2062
+ });
2063
+ toast.success("Flash sale created successfully");
2064
+ navigate("/flash-sales");
2065
+ } catch (error) {
2066
+ let message;
2067
+ if (axios.isAxiosError(error)) {
2068
+ console.log(error);
2069
+ message = (_a = error.response) == null ? void 0 : _a.data.message;
2070
+ } else if (error instanceof Error) {
2071
+ message = error.message;
2072
+ } else {
2073
+ message = "Failed to create flash sale";
2074
+ }
2075
+ toast.error("Failed to create flash sale", {
2076
+ description: message
2077
+ });
2078
+ }
2079
+ }
2080
+ return /* @__PURE__ */ jsx(
2081
+ FlashSaleForm,
2082
+ {
2083
+ onSubmit: handleSubmit,
2084
+ onCancel: () => navigate("/flash-sales")
2085
+ }
2086
+ );
2087
+ };
2053
2088
  const useFlashSaleById = (id) => {
2054
2089
  const [data, setData] = useState(null);
2055
2090
  const [isLoading, setIsLoading] = useState(true);
@@ -2168,41 +2203,6 @@ const config = defineRouteConfig({
2168
2203
  label: "Flash Sale Detail",
2169
2204
  icon: Sparkles
2170
2205
  });
2171
- const FlashSaleCreate = () => {
2172
- const navigate = useNavigate();
2173
- async function handleSubmit(campaignData) {
2174
- var _a;
2175
- try {
2176
- await axios.post("/admin/flash-sales", {
2177
- ...campaignData,
2178
- starts_at: new Date(campaignData.starts_at).toUTCString(),
2179
- ends_at: new Date(campaignData.ends_at).toUTCString()
2180
- });
2181
- toast.success("Flash sale created successfully");
2182
- navigate("/flash-sales");
2183
- } catch (error) {
2184
- let message;
2185
- if (axios.isAxiosError(error)) {
2186
- console.log(error);
2187
- message = (_a = error.response) == null ? void 0 : _a.data.message;
2188
- } else if (error instanceof Error) {
2189
- message = error.message;
2190
- } else {
2191
- message = "Failed to create flash sale";
2192
- }
2193
- toast.error("Failed to create flash sale", {
2194
- description: message
2195
- });
2196
- }
2197
- }
2198
- return /* @__PURE__ */ jsx(
2199
- FlashSaleForm,
2200
- {
2201
- onSubmit: handleSubmit,
2202
- onCancel: () => navigate("/flash-sales")
2203
- }
2204
- );
2205
- };
2206
2206
  const widgetModule = { widgets: [
2207
2207
  {
2208
2208
  Component: CampaignDetailWidget,
@@ -2227,13 +2227,13 @@ const routeModule = {
2227
2227
  Component: CouponCreate,
2228
2228
  path: "/coupons/create"
2229
2229
  },
2230
- {
2231
- Component: FlashSaleDetail,
2232
- path: "/flash-sales/:id"
2233
- },
2234
2230
  {
2235
2231
  Component: FlashSaleCreate,
2236
2232
  path: "/flash-sales/create"
2233
+ },
2234
+ {
2235
+ Component: FlashSaleDetail,
2236
+ path: "/flash-sales/:id"
2237
2237
  }
2238
2238
  ]
2239
2239
  };
@@ -113,11 +113,14 @@ const POST = async (req, res) => {
113
113
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Promotion is not active");
114
114
  }
115
115
  if (usablePromoService) {
116
- const [usable] = await usablePromoService.listUsablePromotions({
116
+ const usablePromotions = await usablePromoService.listUsablePromotions({
117
117
  promotion_id: promotion.id,
118
118
  });
119
- if (!usable || !usable.enabled) {
120
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "This coupon is not available for collection");
119
+ if (usablePromotions.length) {
120
+ const matchingPromotion = usablePromotions.find((record) => record.promotion_id === promotion.id);
121
+ if (matchingPromotion && !matchingPromotion.enabled) {
122
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "This coupon is not available for collection");
123
+ }
121
124
  }
122
125
  }
123
126
  const cacheKey = `user:${customerId}:promotion:${promotion.id}`;
@@ -145,4 +148,4 @@ const POST = async (req, res) => {
145
148
  });
146
149
  };
147
150
  exports.POST = POST;
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS9jb3Vwb25zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUk2QjtBQUM3QixxREFBaUU7QUFDakUsOENBQW9CO0FBQ3BCLDhFQUFpRjtBQUVqRix5R0FBb0c7QUFvQnBHLE1BQU0sc0JBQXNCLEdBQUcsaUJBQWlCLENBQUM7QUFDakQsTUFBTSxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLGVBQWUsR0FBRyxDQUFJLEtBQWEsRUFBWSxFQUFFO0lBQ3JELElBQUksQ0FBQztRQUNILE9BQU8scUJBQVMsQ0FBQyxPQUFPLENBQUksS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUcsYUFBQyxDQUFDLE1BQU0sQ0FBQztJQUMxQyxTQUFTLEVBQUUsYUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLENBQUM7Q0FDdEQsQ0FBQyxDQUFDO0FBRUksTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErQixFQUMvQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFFN0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQzdCLGdDQUFnQyxDQUNqQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0saUJBQWlCLEdBQ3JCLHFCQUFTLENBQUMsT0FBTyxDQUF3QixzQkFBc0IsQ0FBQyxDQUFDO0lBQ25FLE1BQU0s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
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS9jb3Vwb25zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUk2QjtBQUM3QixxREFBaUU7QUFDakUsOENBQW9CO0FBQ3BCLDhFQUFpRjtBQUVqRix5R0FBb0c7QUFrQnBHLE1BQU0sc0JBQXNCLEdBQUcsaUJBQWlCLENBQUM7QUFDakQsTUFBTSxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLGVBQWUsR0FBRyxDQUFJLEtBQWEsRUFBWSxFQUFFO0lBQ3JELElBQUksQ0FBQztRQUNILE9BQU8scUJBQVMsQ0FBQyxPQUFPLENBQUksS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUcsYUFBQyxDQUFDLE1BQU0sQ0FBQztJQUMxQyxTQUFTLEVBQUUsYUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLENBQUM7Q0FDdEQsQ0FBQyxDQUFDO0FBRUksTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErQixFQUMvQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFFN0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQzdCLGdDQUFnQyxDQUNqQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0saUJBQWlCLEdBQUcscUJBQVMsQ0FBQyxPQUFPLENBQ3pDLHNCQUFzQixDQUN2QixDQUFDO0lBQ0YsTUFBTSwy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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodashventure/medusa-campaign",
3
- "version": "1.4.24",
3
+ "version": "1.5.0",
4
4
  "description": "A starter for Medusa plugins.",
5
5
  "author": "Medusa (https://medusajs.com)",
6
6
  "license": "MIT",
@@ -16,9 +16,7 @@ type PromotionCacheService = {
16
16
  };
17
17
 
18
18
  type UsablePromoModuleService = {
19
- listUsablePromotions: (
20
- selector: Record<string, unknown>,
21
- ) => Promise<
19
+ listUsablePromotions: (selector: Record<string, unknown>) => Promise<
22
20
  Array<{
23
21
  id: string;
24
22
  promotion_id: string;
@@ -55,8 +53,9 @@ export const GET = async (
55
53
  );
56
54
  }
57
55
 
58
- const promoCacheService =
59
- container.resolve<PromotionCacheService>(PROMOTION_CACHE_MODULE);
56
+ const promoCacheService = container.resolve<PromotionCacheService>(
57
+ PROMOTION_CACHE_MODULE,
58
+ );
60
59
  const customCampaignModuleService =
61
60
  container.resolve<CustomCampaignModuleService>(CUSTOM_CAMPAIGN_MODULE);
62
61
  const promotionService = container.resolve(Modules.PROMOTION);
@@ -95,10 +94,11 @@ export const GET = async (
95
94
  .map((type) => type.campaign_id),
96
95
  );
97
96
 
98
- const campaignDetails =
99
- await customCampaignModuleService.listCampaignDetails({
97
+ const campaignDetails = await customCampaignModuleService.listCampaignDetails(
98
+ {
100
99
  campaign_id: Array.from(couponCampaignIds),
101
- });
100
+ },
101
+ );
102
102
 
103
103
  const detailMap = new Map(
104
104
  campaignDetails.map((detail) => [detail.campaign_id, detail]),
@@ -153,18 +153,15 @@ export const POST = async (
153
153
  const promotionService = container.resolve(Modules.PROMOTION);
154
154
  const customCampaignModuleService =
155
155
  container.resolve<CustomCampaignModuleService>(CUSTOM_CAMPAIGN_MODULE);
156
- const promoCacheService =
157
- container.resolve<PromotionCacheService>(PROMOTION_CACHE_MODULE);
158
- const usablePromoService = resolveOptional<UsablePromoModuleService>(
159
- USABLE_PROMO_MODULE,
156
+ const promoCacheService = container.resolve<PromotionCacheService>(
157
+ PROMOTION_CACHE_MODULE,
160
158
  );
159
+ const usablePromoService =
160
+ resolveOptional<UsablePromoModuleService>(USABLE_PROMO_MODULE);
161
161
 
162
- const promotion = await promotionService.retrievePromotion(
163
- body.coupon_id,
164
- {
165
- relations: ["campaign", "application_method"],
166
- },
167
- );
162
+ const promotion = await promotionService.retrievePromotion(body.coupon_id, {
163
+ relations: ["campaign", "application_method"],
164
+ });
168
165
 
169
166
  if (!promotion?.campaign_id) {
170
167
  throw new MedusaError(
@@ -200,15 +197,21 @@ export const POST = async (
200
197
  }
201
198
 
202
199
  if (usablePromoService) {
203
- const [usable] = await usablePromoService.listUsablePromotions({
200
+ const usablePromotions = await usablePromoService.listUsablePromotions({
204
201
  promotion_id: promotion.id,
205
202
  });
206
203
 
207
- if (!usable || !usable.enabled) {
208
- throw new MedusaError(
209
- MedusaError.Types.INVALID_DATA,
210
- "This coupon is not available for collection",
204
+ if (usablePromotions.length) {
205
+ const matchingPromotion = usablePromotions.find(
206
+ (record) => record.promotion_id === promotion.id,
211
207
  );
208
+
209
+ if (matchingPromotion && !matchingPromotion.enabled) {
210
+ throw new MedusaError(
211
+ MedusaError.Types.INVALID_DATA,
212
+ "This coupon is not available for collection",
213
+ );
214
+ }
212
215
  }
213
216
  }
214
217