@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.cjs +51 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +51 -19
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/repositories/customer/index.test.ts +127 -0
- package/src/repositories/customer/index.ts +48 -4
- package/src/repositories/order/actions.ts +26 -12
- package/src/services/my-customer.test.ts +1 -0
- package/src/services/order.test.ts +150 -0
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: [`
|
|
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
|
|
4401
|
+
import assert4 from "assert";
|
|
4377
4402
|
|
|
4378
4403
|
// src/repositories/order/index.ts
|
|
4379
|
-
import
|
|
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
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4807
|
+
assert4(draft.id, "draft.id is missing");
|
|
4776
4808
|
const cartIdentifier = {
|
|
4777
4809
|
id: draft.id,
|
|
4778
4810
|
typeId: "cart"
|