@labdigital/commercetools-mock 2.39.0 → 2.41.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.d.cts CHANGED
@@ -242,6 +242,7 @@ declare class CustomObjectRepository extends AbstractResourceRepository<"key-val
242
242
  declare class CustomerRepository extends AbstractResourceRepository<"customer"> {
243
243
  constructor(storage: AbstractStorage);
244
244
  create(context: RepositoryContext, draft: CustomerDraft): Customer;
245
+ saveUpdate(context: RepositoryContext, version: number, resource: ShallowWritable<ResourceMap["customer"]>): ShallowWritable<ResourceMap["customer"]>;
245
246
  passwordResetToken(context: RepositoryContext, request: CustomerCreatePasswordResetToken): CustomerToken;
246
247
  passwordReset(context: RepositoryContext, resetPassword: CustomerResetPassword | MyCustomerResetPassword): Writable<Customer>;
247
248
  verifyEmailToken(context: RepositoryContext, id: string): CustomerToken;
package/dist/index.d.ts CHANGED
@@ -242,6 +242,7 @@ declare class CustomObjectRepository extends AbstractResourceRepository<"key-val
242
242
  declare class CustomerRepository extends AbstractResourceRepository<"customer"> {
243
243
  constructor(storage: AbstractStorage);
244
244
  create(context: RepositoryContext, draft: CustomerDraft): Customer;
245
+ saveUpdate(context: RepositoryContext, version: number, resource: ShallowWritable<ResourceMap["customer"]>): ShallowWritable<ResourceMap["customer"]>;
245
246
  passwordResetToken(context: RepositoryContext, request: CustomerCreatePasswordResetToken): CustomerToken;
246
247
  passwordReset(context: RepositoryContext, resetPassword: CustomerResetPassword | MyCustomerResetPassword): Writable<Customer>;
247
248
  verifyEmailToken(context: RepositoryContext, id: string): CustomerToken;
package/dist/index.js CHANGED
@@ -3861,7 +3861,7 @@ var CustomerRepository = class extends AbstractResourceRepository {
3861
3861
  }
3862
3862
  create(context, draft) {
3863
3863
  const results = this._storage.query(context.projectKey, this.getTypeId(), {
3864
- where: [`email="${draft.email.toLocaleLowerCase()}"`]
3864
+ where: [`lowercaseEmail="${draft.email.toLowerCase()}"`]
3865
3865
  });
3866
3866
  if (results.count > 0) {
3867
3867
  throw new CommercetoolsError({
@@ -3910,6 +3910,23 @@ var CustomerRepository = class extends AbstractResourceRepository {
3910
3910
  const billingAddressIds = draft.billingAddresses?.map(
3911
3911
  (addressId) => lookupAdressId(addresses, addressId)
3912
3912
  ) ?? [];
3913
+ let storesForCustomer = [];
3914
+ if (draft.stores && draft.stores.length > 0) {
3915
+ const storeIds = draft.stores.map((storeReference) => storeReference.id).filter(Boolean);
3916
+ const stores = this._storage.query(context.projectKey, "store", {
3917
+ where: storeIds.map((id) => `id="${id}"`)
3918
+ }).results;
3919
+ if (storeIds.length !== stores.length) {
3920
+ throw new CommercetoolsError({
3921
+ code: "ResourceNotFound",
3922
+ message: `Store with ID '${storeIds.find((id) => !stores.some((store) => store.id === id))}' was not found.`
3923
+ });
3924
+ }
3925
+ storesForCustomer = draft.stores.map((storeReference) => ({
3926
+ typeId: "store",
3927
+ key: storeReference.key ?? stores.find((store) => store.id === storeReference.id)?.key
3928
+ }));
3929
+ }
3913
3930
  const resource = {
3914
3931
  ...getBaseResourceProperties(),
3915
3932
  key: draft.key,
@@ -3921,6 +3938,7 @@ var CustomerRepository = class extends AbstractResourceRepository {
3921
3938
  dateOfBirth: draft.dateOfBirth,
3922
3939
  companyName: draft.companyName,
3923
3940
  email: draft.email.toLowerCase(),
3941
+ lowercaseEmail: draft.email.toLowerCase(),
3924
3942
  password: draft.password ? hashPassword(draft.password) : void 0,
3925
3943
  isEmailVerified: draft.isEmailVerified || false,
3926
3944
  addresses,
@@ -3935,10 +3953,17 @@ var CustomerRepository = class extends AbstractResourceRepository {
3935
3953
  context.projectKey,
3936
3954
  this._storage
3937
3955
  ),
3938
- stores: []
3956
+ stores: storesForCustomer
3939
3957
  };
3940
3958
  return this.saveNew(context, resource);
3941
3959
  }
3960
+ saveUpdate(context, version, resource) {
3961
+ const updatedResource = {
3962
+ ...resource,
3963
+ lowercaseEmail: resource.email.toLowerCase()
3964
+ };
3965
+ return super.saveUpdate(context, version, updatedResource);
3966
+ }
3942
3967
  passwordResetToken(context, request) {
3943
3968
  const results = this._storage.query(context.projectKey, this.getTypeId(), {
3944
3969
  where: [`email="${request.email.toLocaleLowerCase()}"`]
@@ -4373,13 +4398,12 @@ var MyCustomerRepository = class extends CustomerRepository {
4373
4398
  };
4374
4399
 
4375
4400
  // src/repositories/my-order.ts
4376
- import assert5 from "assert";
4401
+ import assert4 from "assert";
4377
4402
 
4378
4403
  // src/repositories/order/index.ts
4379
- import assert4 from "assert";
4404
+ import assert3 from "assert";
4380
4405
 
4381
4406
  // src/repositories/order/actions.ts
4382
- import assert3 from "assert";
4383
4407
  var OrderUpdateHandler = class extends AbstractUpdateHandler {
4384
4408
  addPayment(context, resource, { payment }) {
4385
4409
  const resolvedPayment = this._storage.getByResourceIdentifier(
@@ -4479,17 +4503,13 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
4479
4503
  }
4480
4504
  }
4481
4505
  setDeliveryCustomField(context, resource, { deliveryId, name, value }) {
4482
- assert3(resource.shippingInfo, "shippingInfo is not defined");
4483
- if (Array.isArray(resource.shippingInfo.deliveries)) {
4484
- resource.shippingInfo.deliveries.map((delivery) => {
4485
- if (delivery.id !== deliveryId) throw "No matching delivery id found";
4486
- if (delivery.custom) {
4487
- const update = delivery.custom.fields;
4488
- update[name] = value;
4489
- Object.assign(delivery.custom.fields, update);
4490
- }
4491
- return delivery;
4492
- });
4506
+ if (!resource.shippingInfo) {
4507
+ throw new Error("Resource has no shipping info");
4508
+ }
4509
+ for (const delivery of resource.shippingInfo.deliveries || []) {
4510
+ if (delivery.id === deliveryId && delivery.custom?.fields) {
4511
+ delivery.custom.fields[name] = value;
4512
+ }
4493
4513
  }
4494
4514
  }
4495
4515
  setLocale(context, resource, { locale }) {
@@ -4498,6 +4518,18 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
4498
4518
  setOrderNumber(context, resource, { orderNumber }) {
4499
4519
  resource.orderNumber = orderNumber;
4500
4520
  }
4521
+ setParcelCustomField(context, resource, { parcelId, name, value }) {
4522
+ if (!resource.shippingInfo) {
4523
+ throw new Error("Resource has no shipping info");
4524
+ }
4525
+ for (const delivery of resource.shippingInfo.deliveries || []) {
4526
+ for (const parcel of delivery.parcels || []) {
4527
+ if (parcel.id === parcelId && parcel.custom?.fields) {
4528
+ parcel.custom.fields[name] = value;
4529
+ }
4530
+ }
4531
+ }
4532
+ }
4501
4533
  setPurchaseOrderNumber(context, resource, { purchaseOrderNumber }) {
4502
4534
  resource.purchaseOrderNumber = purchaseOrderNumber;
4503
4535
  }
@@ -4574,7 +4606,7 @@ var OrderRepository = class extends AbstractResourceRepository {
4574
4606
  this.actions = new OrderUpdateHandler(storage);
4575
4607
  }
4576
4608
  create(context, draft) {
4577
- assert4(draft.cart, "draft.cart is missing");
4609
+ assert3(draft.cart, "draft.cart is missing");
4578
4610
  return this.createFromCart(
4579
4611
  context,
4580
4612
  {
@@ -4629,7 +4661,7 @@ var OrderRepository = class extends AbstractResourceRepository {
4629
4661
  return this.saveNew(context, resource);
4630
4662
  }
4631
4663
  import(context, draft) {
4632
- assert4(this, "OrderRepository not valid");
4664
+ assert3(this, "OrderRepository not valid");
4633
4665
  const resource = {
4634
4666
  ...getBaseResourceProperties(),
4635
4667
  billingAddress: createAddress(
@@ -4772,7 +4804,7 @@ var OrderRepository = class extends AbstractResourceRepository {
4772
4804
  // src/repositories/my-order.ts
4773
4805
  var MyOrderRepository = class extends OrderRepository {
4774
4806
  create(context, draft) {
4775
- assert5(draft.id, "draft.id is missing");
4807
+ assert4(draft.id, "draft.id is missing");
4776
4808
  const cartIdentifier = {
4777
4809
  id: draft.id,
4778
4810
  typeId: "cart"