@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.d.cts CHANGED
@@ -242,9 +242,11 @@ 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;
249
+ private storeReferenceToStoreKeyReference;
248
250
  }
249
251
 
250
252
  declare class CustomerGroupRepository extends AbstractResourceRepository<"customer-group"> {
package/dist/index.d.ts CHANGED
@@ -242,9 +242,11 @@ 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;
249
+ private storeReferenceToStoreKeyReference;
248
250
  }
249
251
 
250
252
  declare class CustomerGroupRepository extends AbstractResourceRepository<"customer-group"> {
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({
@@ -3911,21 +3911,11 @@ var CustomerRepository = class extends AbstractResourceRepository {
3911
3911
  (addressId) => lookupAdressId(addresses, addressId)
3912
3912
  ) ?? [];
3913
3913
  let storesForCustomer = [];
3914
- if (draft.stores) {
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
- }));
3914
+ if (draft.stores && draft.stores.length > 0) {
3915
+ storesForCustomer = this.storeReferenceToStoreKeyReference(
3916
+ draft.stores,
3917
+ context.projectKey
3918
+ );
3929
3919
  }
3930
3920
  const resource = {
3931
3921
  ...getBaseResourceProperties(),
@@ -3938,6 +3928,7 @@ var CustomerRepository = class extends AbstractResourceRepository {
3938
3928
  dateOfBirth: draft.dateOfBirth,
3939
3929
  companyName: draft.companyName,
3940
3930
  email: draft.email.toLowerCase(),
3931
+ lowercaseEmail: draft.email.toLowerCase(),
3941
3932
  password: draft.password ? hashPassword(draft.password) : void 0,
3942
3933
  isEmailVerified: draft.isEmailVerified || false,
3943
3934
  addresses,
@@ -3956,6 +3947,13 @@ var CustomerRepository = class extends AbstractResourceRepository {
3956
3947
  };
3957
3948
  return this.saveNew(context, resource);
3958
3949
  }
3950
+ saveUpdate(context, version, resource) {
3951
+ const updatedResource = {
3952
+ ...resource,
3953
+ lowercaseEmail: resource.email.toLowerCase()
3954
+ };
3955
+ return super.saveUpdate(context, version, updatedResource);
3956
+ }
3959
3957
  passwordResetToken(context, request) {
3960
3958
  const results = this._storage.query(context.projectKey, this.getTypeId(), {
3961
3959
  where: [`email="${request.email.toLocaleLowerCase()}"`]
@@ -4028,6 +4026,25 @@ var CustomerRepository = class extends AbstractResourceRepository {
4028
4026
  value: token
4029
4027
  };
4030
4028
  }
4029
+ storeReferenceToStoreKeyReference(draftStores, projectKey) {
4030
+ const storeIds = draftStores.map((storeReference) => storeReference.id).filter(Boolean);
4031
+ let stores = [];
4032
+ if (storeIds.length > 0) {
4033
+ stores = this._storage.query(projectKey, "store", {
4034
+ where: storeIds.map((id) => `id="${id}"`)
4035
+ }).results;
4036
+ if (storeIds.length !== stores.length) {
4037
+ throw new CommercetoolsError({
4038
+ code: "ResourceNotFound",
4039
+ message: `Store with ID '${storeIds.find((id) => !stores.some((store) => store.id === id))}' was not found.`
4040
+ });
4041
+ }
4042
+ }
4043
+ return draftStores.map((storeReference) => ({
4044
+ typeId: "store",
4045
+ key: storeReference.key ?? stores.find((store) => store.id === storeReference.id)?.key
4046
+ }));
4047
+ }
4031
4048
  };
4032
4049
 
4033
4050
  // src/repositories/customer-group.ts
@@ -4390,13 +4407,12 @@ var MyCustomerRepository = class extends CustomerRepository {
4390
4407
  };
4391
4408
 
4392
4409
  // src/repositories/my-order.ts
4393
- import assert5 from "assert";
4410
+ import assert4 from "assert";
4394
4411
 
4395
4412
  // src/repositories/order/index.ts
4396
- import assert4 from "assert";
4413
+ import assert3 from "assert";
4397
4414
 
4398
4415
  // src/repositories/order/actions.ts
4399
- import assert3 from "assert";
4400
4416
  var OrderUpdateHandler = class extends AbstractUpdateHandler {
4401
4417
  addPayment(context, resource, { payment }) {
4402
4418
  const resolvedPayment = this._storage.getByResourceIdentifier(
@@ -4496,17 +4512,13 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
4496
4512
  }
4497
4513
  }
4498
4514
  setDeliveryCustomField(context, resource, { deliveryId, name, value }) {
4499
- assert3(resource.shippingInfo, "shippingInfo is not defined");
4500
- if (Array.isArray(resource.shippingInfo.deliveries)) {
4501
- resource.shippingInfo.deliveries.map((delivery) => {
4502
- if (delivery.id !== deliveryId) throw "No matching delivery id found";
4503
- if (delivery.custom) {
4504
- const update = delivery.custom.fields;
4505
- update[name] = value;
4506
- Object.assign(delivery.custom.fields, update);
4507
- }
4508
- return delivery;
4509
- });
4515
+ if (!resource.shippingInfo) {
4516
+ throw new Error("Resource has no shipping info");
4517
+ }
4518
+ for (const delivery of resource.shippingInfo.deliveries || []) {
4519
+ if (delivery.id === deliveryId && delivery.custom?.fields) {
4520
+ delivery.custom.fields[name] = value;
4521
+ }
4510
4522
  }
4511
4523
  }
4512
4524
  setLocale(context, resource, { locale }) {
@@ -4515,6 +4527,18 @@ var OrderUpdateHandler = class extends AbstractUpdateHandler {
4515
4527
  setOrderNumber(context, resource, { orderNumber }) {
4516
4528
  resource.orderNumber = orderNumber;
4517
4529
  }
4530
+ setParcelCustomField(context, resource, { parcelId, name, value }) {
4531
+ if (!resource.shippingInfo) {
4532
+ throw new Error("Resource has no shipping info");
4533
+ }
4534
+ for (const delivery of resource.shippingInfo.deliveries || []) {
4535
+ for (const parcel of delivery.parcels || []) {
4536
+ if (parcel.id === parcelId && parcel.custom?.fields) {
4537
+ parcel.custom.fields[name] = value;
4538
+ }
4539
+ }
4540
+ }
4541
+ }
4518
4542
  setPurchaseOrderNumber(context, resource, { purchaseOrderNumber }) {
4519
4543
  resource.purchaseOrderNumber = purchaseOrderNumber;
4520
4544
  }
@@ -4591,7 +4615,7 @@ var OrderRepository = class extends AbstractResourceRepository {
4591
4615
  this.actions = new OrderUpdateHandler(storage);
4592
4616
  }
4593
4617
  create(context, draft) {
4594
- assert4(draft.cart, "draft.cart is missing");
4618
+ assert3(draft.cart, "draft.cart is missing");
4595
4619
  return this.createFromCart(
4596
4620
  context,
4597
4621
  {
@@ -4646,7 +4670,7 @@ var OrderRepository = class extends AbstractResourceRepository {
4646
4670
  return this.saveNew(context, resource);
4647
4671
  }
4648
4672
  import(context, draft) {
4649
- assert4(this, "OrderRepository not valid");
4673
+ assert3(this, "OrderRepository not valid");
4650
4674
  const resource = {
4651
4675
  ...getBaseResourceProperties(),
4652
4676
  billingAddress: createAddress(
@@ -4789,7 +4813,7 @@ var OrderRepository = class extends AbstractResourceRepository {
4789
4813
  // src/repositories/my-order.ts
4790
4814
  var MyOrderRepository = class extends OrderRepository {
4791
4815
  create(context, draft) {
4792
- assert5(draft.id, "draft.id is missing");
4816
+ assert4(draft.id, "draft.id is missing");
4793
4817
  const cartIdentifier = {
4794
4818
  id: draft.id,
4795
4819
  typeId: "cart"