@labdigital/commercetools-mock 2.40.0 → 2.41.1

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
@@ -3898,7 +3898,7 @@ var CustomerRepository = class extends AbstractResourceRepository {
3898
3898
  }
3899
3899
  create(context, draft) {
3900
3900
  const results = this._storage.query(context.projectKey, this.getTypeId(), {
3901
- where: [`email="${draft.email.toLocaleLowerCase()}"`]
3901
+ where: [`lowercaseEmail="${draft.email.toLowerCase()}"`]
3902
3902
  });
3903
3903
  if (results.count > 0) {
3904
3904
  throw new CommercetoolsError({
@@ -3948,21 +3948,11 @@ var CustomerRepository = class extends AbstractResourceRepository {
3948
3948
  (addressId) => lookupAdressId(addresses, addressId)
3949
3949
  ) ?? [];
3950
3950
  let storesForCustomer = [];
3951
- if (draft.stores) {
3952
- const storeIds = draft.stores.map((storeReference) => storeReference.id).filter(Boolean);
3953
- const stores = this._storage.query(context.projectKey, "store", {
3954
- where: storeIds.map((id) => `id="${id}"`)
3955
- }).results;
3956
- if (storeIds.length !== stores.length) {
3957
- throw new CommercetoolsError({
3958
- code: "ResourceNotFound",
3959
- message: `Store with ID '${storeIds.find((id) => !stores.some((store) => store.id === id))}' was not found.`
3960
- });
3961
- }
3962
- storesForCustomer = draft.stores.map((storeReference) => ({
3963
- typeId: "store",
3964
- key: storeReference.key ?? stores.find((store) => store.id === storeReference.id)?.key
3965
- }));
3951
+ if (draft.stores && draft.stores.length > 0) {
3952
+ storesForCustomer = this.storeReferenceToStoreKeyReference(
3953
+ draft.stores,
3954
+ context.projectKey
3955
+ );
3966
3956
  }
3967
3957
  const resource = {
3968
3958
  ...getBaseResourceProperties(),
@@ -3975,6 +3965,7 @@ var CustomerRepository = class extends AbstractResourceRepository {
3975
3965
  dateOfBirth: draft.dateOfBirth,
3976
3966
  companyName: draft.companyName,
3977
3967
  email: draft.email.toLowerCase(),
3968
+ lowercaseEmail: draft.email.toLowerCase(),
3978
3969
  password: draft.password ? hashPassword(draft.password) : void 0,
3979
3970
  isEmailVerified: draft.isEmailVerified || false,
3980
3971
  addresses,
@@ -3993,6 +3984,13 @@ var CustomerRepository = class extends AbstractResourceRepository {
3993
3984
  };
3994
3985
  return this.saveNew(context, resource);
3995
3986
  }
3987
+ saveUpdate(context, version, resource) {
3988
+ const updatedResource = {
3989
+ ...resource,
3990
+ lowercaseEmail: resource.email.toLowerCase()
3991
+ };
3992
+ return super.saveUpdate(context, version, updatedResource);
3993
+ }
3996
3994
  passwordResetToken(context, request) {
3997
3995
  const results = this._storage.query(context.projectKey, this.getTypeId(), {
3998
3996
  where: [`email="${request.email.toLocaleLowerCase()}"`]
@@ -4065,6 +4063,25 @@ var CustomerRepository = class extends AbstractResourceRepository {
4065
4063
  value: token
4066
4064
  };
4067
4065
  }
4066
+ storeReferenceToStoreKeyReference(draftStores, projectKey) {
4067
+ const storeIds = draftStores.map((storeReference) => storeReference.id).filter(Boolean);
4068
+ let stores = [];
4069
+ if (storeIds.length > 0) {
4070
+ stores = this._storage.query(projectKey, "store", {
4071
+ where: storeIds.map((id) => `id="${id}"`)
4072
+ }).results;
4073
+ if (storeIds.length !== stores.length) {
4074
+ throw new CommercetoolsError({
4075
+ code: "ResourceNotFound",
4076
+ message: `Store with ID '${storeIds.find((id) => !stores.some((store) => store.id === id))}' was not found.`
4077
+ });
4078
+ }
4079
+ }
4080
+ return draftStores.map((storeReference) => ({
4081
+ typeId: "store",
4082
+ key: storeReference.key ?? stores.find((store) => store.id === storeReference.id)?.key
4083
+ }));
4084
+ }
4068
4085
  };
4069
4086
 
4070
4087
  // src/repositories/customer-group.ts
@@ -4427,13 +4444,12 @@ var MyCustomerRepository = class extends CustomerRepository {
4427
4444
  };
4428
4445
 
4429
4446
  // src/repositories/my-order.ts
4430
- var import_assert4 = __toESM(require("assert"), 1);
4447
+ var import_assert3 = __toESM(require("assert"), 1);
4431
4448
 
4432
4449
  // src/repositories/order/index.ts
4433
- var import_assert3 = __toESM(require("assert"), 1);
4450
+ var import_assert2 = __toESM(require("assert"), 1);
4434
4451
 
4435
4452
  // src/repositories/order/actions.ts
4436
- var import_assert2 = __toESM(require("assert"), 1);
4437
4453
  var OrderUpdateHandler = class extends AbstractUpdateHandler {
4438
4454
  addPayment(context, resource, { payment }) {
4439
4455
  const resolvedPayment = this._storage.getByResourceIdentifier(
@@ -4533,17 +4549,13 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
4533
4549
  }
4534
4550
  }
4535
4551
  setDeliveryCustomField(context, resource, { deliveryId, name, value }) {
4536
- (0, import_assert2.default)(resource.shippingInfo, "shippingInfo is not defined");
4537
- if (Array.isArray(resource.shippingInfo.deliveries)) {
4538
- resource.shippingInfo.deliveries.map((delivery) => {
4539
- if (delivery.id !== deliveryId) throw "No matching delivery id found";
4540
- if (delivery.custom) {
4541
- const update = delivery.custom.fields;
4542
- update[name] = value;
4543
- Object.assign(delivery.custom.fields, update);
4544
- }
4545
- return delivery;
4546
- });
4552
+ if (!resource.shippingInfo) {
4553
+ throw new Error("Resource has no shipping info");
4554
+ }
4555
+ for (const delivery of resource.shippingInfo.deliveries || []) {
4556
+ if (delivery.id === deliveryId && delivery.custom?.fields) {
4557
+ delivery.custom.fields[name] = value;
4558
+ }
4547
4559
  }
4548
4560
  }
4549
4561
  setLocale(context, resource, { locale }) {
@@ -4552,6 +4564,18 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
4552
4564
  setOrderNumber(context, resource, { orderNumber }) {
4553
4565
  resource.orderNumber = orderNumber;
4554
4566
  }
4567
+ setParcelCustomField(context, resource, { parcelId, name, value }) {
4568
+ if (!resource.shippingInfo) {
4569
+ throw new Error("Resource has no shipping info");
4570
+ }
4571
+ for (const delivery of resource.shippingInfo.deliveries || []) {
4572
+ for (const parcel of delivery.parcels || []) {
4573
+ if (parcel.id === parcelId && parcel.custom?.fields) {
4574
+ parcel.custom.fields[name] = value;
4575
+ }
4576
+ }
4577
+ }
4578
+ }
4555
4579
  setPurchaseOrderNumber(context, resource, { purchaseOrderNumber }) {
4556
4580
  resource.purchaseOrderNumber = purchaseOrderNumber;
4557
4581
  }
@@ -4628,7 +4652,7 @@ var OrderRepository = class extends AbstractResourceRepository {
4628
4652
  this.actions = new OrderUpdateHandler(storage);
4629
4653
  }
4630
4654
  create(context, draft) {
4631
- (0, import_assert3.default)(draft.cart, "draft.cart is missing");
4655
+ (0, import_assert2.default)(draft.cart, "draft.cart is missing");
4632
4656
  return this.createFromCart(
4633
4657
  context,
4634
4658
  {
@@ -4683,7 +4707,7 @@ var OrderRepository = class extends AbstractResourceRepository {
4683
4707
  return this.saveNew(context, resource);
4684
4708
  }
4685
4709
  import(context, draft) {
4686
- (0, import_assert3.default)(this, "OrderRepository not valid");
4710
+ (0, import_assert2.default)(this, "OrderRepository not valid");
4687
4711
  const resource = {
4688
4712
  ...getBaseResourceProperties(),
4689
4713
  billingAddress: createAddress(
@@ -4826,7 +4850,7 @@ var OrderRepository = class extends AbstractResourceRepository {
4826
4850
  // src/repositories/my-order.ts
4827
4851
  var MyOrderRepository = class extends OrderRepository {
4828
4852
  create(context, draft) {
4829
- (0, import_assert4.default)(draft.id, "draft.id is missing");
4853
+ (0, import_assert3.default)(draft.id, "draft.id is missing");
4830
4854
  const cartIdentifier = {
4831
4855
  id: draft.id,
4832
4856
  typeId: "cart"