@labdigital/commercetools-mock 1.6.1 → 1.7.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.
package/dist/index.cjs CHANGED
@@ -1746,8 +1746,57 @@ var AssociateRoleRepository = class extends AbstractResourceRepository {
1746
1746
  return "associate-role";
1747
1747
  }
1748
1748
  create(context, draft) {
1749
- throw new Error("Method not implemented.");
1749
+ const resource = {
1750
+ ...getBaseResourceProperties(),
1751
+ key: draft.key,
1752
+ name: draft.name,
1753
+ buyerAssignable: draft.buyerAssignable || false,
1754
+ permissions: draft.permissions || [],
1755
+ custom: createCustomFields(
1756
+ draft.custom,
1757
+ context.projectKey,
1758
+ this._storage
1759
+ )
1760
+ };
1761
+ this.saveNew(context, resource);
1762
+ return resource;
1750
1763
  }
1764
+ actions = {
1765
+ setName: (context, resource, { name }) => {
1766
+ resource.name = name;
1767
+ },
1768
+ setPermissions: (context, resource, { permissions }) => {
1769
+ resource.permissions = permissions || [];
1770
+ },
1771
+ setBuyerAssignable: (context, resource, { buyerAssignable }) => {
1772
+ resource.buyerAssignable = buyerAssignable;
1773
+ },
1774
+ setCustomFields: (context, resource, { name, value }) => {
1775
+ if (!resource.custom) {
1776
+ return;
1777
+ }
1778
+ if (value === null) {
1779
+ delete resource.custom.fields[name];
1780
+ } else {
1781
+ resource.custom.fields[name] = value;
1782
+ }
1783
+ },
1784
+ addPermission: (context, resource, { permission }) => {
1785
+ if (!resource.permissions) {
1786
+ resource.permissions = [permission];
1787
+ } else {
1788
+ resource.permissions.push(permission);
1789
+ }
1790
+ },
1791
+ removePermission: (context, resource, { permission }) => {
1792
+ if (!resource.permissions) {
1793
+ return;
1794
+ }
1795
+ resource.permissions = resource.permissions.filter((p) => {
1796
+ p !== permission;
1797
+ });
1798
+ }
1799
+ };
1751
1800
  };
1752
1801
 
1753
1802
  // src/repositories/attribute-group.ts
@@ -2195,7 +2244,12 @@ var CartDiscountRepository = class extends AbstractResourceRepository {
2195
2244
  stackingMode: draft.stackingMode || "Stacking",
2196
2245
  validFrom: draft.validFrom,
2197
2246
  validUntil: draft.validUntil,
2198
- value: this.transformValueDraft(draft.value)
2247
+ value: this.transformValueDraft(draft.value),
2248
+ custom: createCustomFields(
2249
+ draft.custom,
2250
+ context.projectKey,
2251
+ this._storage
2252
+ )
2199
2253
  };
2200
2254
  this.saveNew(context, resource);
2201
2255
  return resource;
@@ -2249,6 +2303,29 @@ var CartDiscountRepository = class extends AbstractResourceRepository {
2249
2303
  },
2250
2304
  changeIsActive: (context, resource, { isActive }) => {
2251
2305
  resource.isActive = isActive;
2306
+ },
2307
+ changeTarget: (context, resource, { target }) => {
2308
+ resource.target = target;
2309
+ },
2310
+ setCustomField: (context, resource, { name, value }) => {
2311
+ if (!resource.custom) {
2312
+ return;
2313
+ }
2314
+ if (value === null) {
2315
+ if (name in resource.custom.fields) {
2316
+ delete resource.custom.fields[name];
2317
+ } else {
2318
+ throw new CommercetoolsError(
2319
+ {
2320
+ code: "InvalidOperation",
2321
+ message: "Cannot remove custom field " + name + " because it does not exist."
2322
+ },
2323
+ 400
2324
+ );
2325
+ }
2326
+ } else {
2327
+ resource.custom.fields[name] = value;
2328
+ }
2252
2329
  }
2253
2330
  };
2254
2331
  };
@@ -2259,6 +2336,11 @@ var CategoryRepository = class extends AbstractResourceRepository {
2259
2336
  getTypeId() {
2260
2337
  return "category";
2261
2338
  }
2339
+ assetFromAssetDraft = (draft, context) => ({
2340
+ ...draft,
2341
+ id: (0, import_uuid4.v4)(),
2342
+ custom: createCustomFields(draft.custom, context.projectKey, this._storage)
2343
+ });
2262
2344
  create(context, draft) {
2263
2345
  const resource = {
2264
2346
  ...getBaseResourceProperties(),
@@ -2361,6 +2443,30 @@ var CategoryRepository = class extends AbstractResourceRepository {
2361
2443
  } else {
2362
2444
  resource.custom.fields[name] = value;
2363
2445
  }
2446
+ },
2447
+ removeAsset: (context, resource, { assetId, assetKey }) => {
2448
+ if (!resource.assets) {
2449
+ return;
2450
+ }
2451
+ if (assetId) {
2452
+ resource.assets = resource.assets.filter(function(obj) {
2453
+ return obj.id !== assetId;
2454
+ });
2455
+ return;
2456
+ }
2457
+ if (assetKey) {
2458
+ resource.assets = resource.assets.filter(function(obj) {
2459
+ return obj.key !== assetKey;
2460
+ });
2461
+ return;
2462
+ }
2463
+ },
2464
+ addAsset: (context, resource, { asset }) => {
2465
+ if (!resource.assets) {
2466
+ resource.assets = [this.assetFromAssetDraft(asset, context)];
2467
+ } else {
2468
+ resource.assets.push(this.assetFromAssetDraft(asset, context));
2469
+ }
2364
2470
  }
2365
2471
  };
2366
2472
  };
@@ -4919,6 +5025,9 @@ var StoreRepository = class extends AbstractResourceRepository {
4919
5025
  } else {
4920
5026
  resource.custom.fields[name] = value;
4921
5027
  }
5028
+ },
5029
+ setCountries: (context, resource, { countries }) => {
5030
+ resource.countries = countries ?? [];
4922
5031
  }
4923
5032
  };
4924
5033
  };
@@ -5348,6 +5457,18 @@ var AbstractService = class {
5348
5457
  }
5349
5458
  };
5350
5459
 
5460
+ // src/services/associate-roles.ts
5461
+ var AssociateRoleServices = class extends AbstractService {
5462
+ repository;
5463
+ constructor(parent, repository) {
5464
+ super(parent);
5465
+ this.repository = repository;
5466
+ }
5467
+ getBasePath() {
5468
+ return "associate-roles";
5469
+ }
5470
+ };
5471
+
5351
5472
  // src/services/cart.ts
5352
5473
  var CartService = class extends AbstractService {
5353
5474
  repository;
@@ -5921,6 +6042,7 @@ var AttributeGroupService = class extends AbstractService {
5921
6042
 
5922
6043
  // src/services/index.ts
5923
6044
  var createServices = (router, repos) => ({
6045
+ "associate-role": new AssociateRoleServices(router, repos["associate-role"]),
5924
6046
  category: new CategoryServices(router, repos["category"]),
5925
6047
  cart: new CartService(router, repos["cart"], repos["order"]),
5926
6048
  "cart-discount": new CartDiscountService(router, repos["cart-discount"]),