@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 +57 -33
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +57 -33
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/repositories/customer/index.test.ts +94 -2
- package/src/repositories/customer/index.ts +57 -26
- 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,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: [`
|
|
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
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
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
|
|
4410
|
+
import assert4 from "assert";
|
|
4394
4411
|
|
|
4395
4412
|
// src/repositories/order/index.ts
|
|
4396
|
-
import
|
|
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
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4816
|
+
assert4(draft.id, "draft.id is missing");
|
|
4793
4817
|
const cartIdentifier = {
|
|
4794
4818
|
id: draft.id,
|
|
4795
4819
|
typeId: "cart"
|