@labdigital/commercetools-mock 2.48.0 → 2.49.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 +59 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +59 -18
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/ctMock.ts +1 -1
- package/src/oauth/server.ts +3 -3
- package/src/repositories/cart/actions.ts +39 -0
- package/src/services/abstract.ts +5 -5
- package/src/services/custom-object.ts +2 -2
- package/src/services/my-cart.ts +10 -1
- package/src/services/my-customer.ts +3 -3
- package/src/services/order.ts +12 -2
- package/src/services/project.ts +1 -1
package/package.json
CHANGED
package/src/ctMock.ts
CHANGED
|
@@ -138,9 +138,9 @@ export class CommercetoolsMock {
|
|
|
138
138
|
this._oauth2.setCustomerRepository(this._repositories.customer);
|
|
139
139
|
|
|
140
140
|
const app = express();
|
|
141
|
+
app.use(express.json());
|
|
141
142
|
|
|
142
143
|
const projectRouter = express.Router({ mergeParams: true });
|
|
143
|
-
projectRouter.use(express.json());
|
|
144
144
|
|
|
145
145
|
if (!options?.silent) {
|
|
146
146
|
app.use(morgan("tiny"));
|
package/src/oauth/server.ts
CHANGED
|
@@ -75,7 +75,7 @@ export class OAuth2Server {
|
|
|
75
75
|
return async (request: Request, response: Response, next: NextFunction) => {
|
|
76
76
|
const token = getBearerToken(request);
|
|
77
77
|
if (!token) {
|
|
78
|
-
next(
|
|
78
|
+
return next(
|
|
79
79
|
new CommercetoolsError<InvalidTokenError>(
|
|
80
80
|
{
|
|
81
81
|
code: "invalid_token",
|
|
@@ -88,7 +88,7 @@ export class OAuth2Server {
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
if (!token || !this.store.validateToken(token)) {
|
|
91
|
-
next(
|
|
91
|
+
return next(
|
|
92
92
|
new CommercetoolsError<InvalidTokenError>(
|
|
93
93
|
{
|
|
94
94
|
code: "invalid_token",
|
|
@@ -99,7 +99,7 @@ export class OAuth2Server {
|
|
|
99
99
|
);
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
next();
|
|
102
|
+
return next();
|
|
103
103
|
};
|
|
104
104
|
}
|
|
105
105
|
|
|
@@ -17,6 +17,7 @@ import type {
|
|
|
17
17
|
CartChangeTaxRoundingModeAction,
|
|
18
18
|
CartRemoveDiscountCodeAction,
|
|
19
19
|
CartRemoveLineItemAction,
|
|
20
|
+
CartRemoveShippingMethodAction,
|
|
20
21
|
CartSetBillingAddressAction,
|
|
21
22
|
CartSetBillingAddressCustomTypeAction,
|
|
22
23
|
CartSetCountryAction,
|
|
@@ -28,6 +29,7 @@ import type {
|
|
|
28
29
|
CartSetLineItemShippingDetailsAction,
|
|
29
30
|
CartSetLocaleAction,
|
|
30
31
|
CartSetShippingAddressAction,
|
|
32
|
+
CartSetShippingAddressCustomFieldAction,
|
|
31
33
|
CartSetShippingAddressCustomTypeAction,
|
|
32
34
|
CartSetShippingMethodAction,
|
|
33
35
|
CustomFields,
|
|
@@ -43,6 +45,7 @@ import type {
|
|
|
43
45
|
TaxPortion,
|
|
44
46
|
TaxedItemPrice,
|
|
45
47
|
} from "@commercetools/platform-sdk/dist/declarations/src/generated/models/cart";
|
|
48
|
+
import type { ShippingMethodResourceIdentifier } from "@commercetools/platform-sdk/dist/declarations/src/generated/models/shipping-method";
|
|
46
49
|
import { Decimal } from "decimal.js/decimal";
|
|
47
50
|
import { v4 as uuidv4 } from "uuid";
|
|
48
51
|
import { CommercetoolsError } from "~src/exceptions";
|
|
@@ -402,6 +405,7 @@ export class CartUpdateHandler
|
|
|
402
405
|
if (!resource.custom) {
|
|
403
406
|
throw new Error("Resource has no custom field");
|
|
404
407
|
}
|
|
408
|
+
|
|
405
409
|
resource.custom.fields[name] = value;
|
|
406
410
|
}
|
|
407
411
|
|
|
@@ -751,4 +755,39 @@ export class CartUpdateHandler
|
|
|
751
755
|
resource.shippingInfo = undefined;
|
|
752
756
|
}
|
|
753
757
|
}
|
|
758
|
+
|
|
759
|
+
setShippingAddressCustomField(
|
|
760
|
+
context: RepositoryContext,
|
|
761
|
+
resource: Writable<Cart>,
|
|
762
|
+
{ name, value }: CartSetShippingAddressCustomFieldAction,
|
|
763
|
+
) {
|
|
764
|
+
if (!resource.shippingAddress) {
|
|
765
|
+
throw new Error("Resource has no shipping address");
|
|
766
|
+
}
|
|
767
|
+
if (!resource.shippingAddress.custom) {
|
|
768
|
+
throw new Error("Resource has no custom field");
|
|
769
|
+
}
|
|
770
|
+
resource.shippingAddress.custom.fields[name] = value;
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
removeShippingMethod(
|
|
774
|
+
context: RepositoryContext,
|
|
775
|
+
resource: Writable<Cart>,
|
|
776
|
+
{ shippingKey }: CartRemoveShippingMethodAction,
|
|
777
|
+
) {
|
|
778
|
+
if (!resource.shippingInfo) {
|
|
779
|
+
return;
|
|
780
|
+
}
|
|
781
|
+
const shippingMethod =
|
|
782
|
+
this._storage.getByResourceIdentifier<"shipping-method">(
|
|
783
|
+
context.projectKey,
|
|
784
|
+
{ key: shippingKey } as ShippingMethodResourceIdentifier,
|
|
785
|
+
);
|
|
786
|
+
|
|
787
|
+
if (resource.shippingInfo?.shippingMethod?.id !== shippingMethod.id) {
|
|
788
|
+
throw new Error("Shipping method with key not found");
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
resource.shippingInfo = undefined;
|
|
792
|
+
}
|
|
754
793
|
}
|
package/src/services/abstract.ts
CHANGED
|
@@ -119,7 +119,7 @@ export default abstract class AbstractService {
|
|
|
119
119
|
},
|
|
120
120
|
);
|
|
121
121
|
if (!result) {
|
|
122
|
-
response.
|
|
122
|
+
response.status(404).send({ statusCode: 404 });
|
|
123
123
|
return;
|
|
124
124
|
}
|
|
125
125
|
response.status(200).send(result);
|
|
@@ -131,7 +131,7 @@ export default abstract class AbstractService {
|
|
|
131
131
|
request.params.key,
|
|
132
132
|
);
|
|
133
133
|
if (!resource) {
|
|
134
|
-
response.
|
|
134
|
+
response.status(404).send({ statusCode: 404 });
|
|
135
135
|
return;
|
|
136
136
|
}
|
|
137
137
|
|
|
@@ -143,7 +143,7 @@ export default abstract class AbstractService {
|
|
|
143
143
|
},
|
|
144
144
|
);
|
|
145
145
|
if (!result) {
|
|
146
|
-
response.
|
|
146
|
+
response.status(404).send({ statusCode: 404 });
|
|
147
147
|
return;
|
|
148
148
|
}
|
|
149
149
|
response.status(200).send(result);
|
|
@@ -169,7 +169,7 @@ export default abstract class AbstractService {
|
|
|
169
169
|
request.params.id,
|
|
170
170
|
);
|
|
171
171
|
if (!resource) {
|
|
172
|
-
response.
|
|
172
|
+
response.status(404).send({ statusCode: 404 });
|
|
173
173
|
return;
|
|
174
174
|
}
|
|
175
175
|
|
|
@@ -195,7 +195,7 @@ export default abstract class AbstractService {
|
|
|
195
195
|
request.params.key,
|
|
196
196
|
);
|
|
197
197
|
if (!resource) {
|
|
198
|
-
response.
|
|
198
|
+
response.status(404).send({ statusCode: 404 });
|
|
199
199
|
return;
|
|
200
200
|
}
|
|
201
201
|
|
|
@@ -52,7 +52,7 @@ export class CustomObjectService extends AbstractService {
|
|
|
52
52
|
);
|
|
53
53
|
|
|
54
54
|
if (!result) {
|
|
55
|
-
response.
|
|
55
|
+
response.status(404).send({ statusCode: 404 });
|
|
56
56
|
return;
|
|
57
57
|
}
|
|
58
58
|
response.status(200).send(result);
|
|
@@ -77,7 +77,7 @@ export class CustomObjectService extends AbstractService {
|
|
|
77
77
|
);
|
|
78
78
|
|
|
79
79
|
if (!current) {
|
|
80
|
-
response.
|
|
80
|
+
response.status(404).send({ statusCode: 404 });
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
83
83
|
|
package/src/services/my-cart.ts
CHANGED
|
@@ -37,7 +37,16 @@ export class MyCartService extends AbstractService {
|
|
|
37
37
|
activeCart(request: Request, response: Response) {
|
|
38
38
|
const resource = this.repository.getActiveCart(request.params.projectKey);
|
|
39
39
|
if (!resource) {
|
|
40
|
-
response.
|
|
40
|
+
response.status(404).send({
|
|
41
|
+
statusCode: 404,
|
|
42
|
+
message: "No active cart exists.",
|
|
43
|
+
errors: [
|
|
44
|
+
{
|
|
45
|
+
code: "ResourceNotFound",
|
|
46
|
+
message: "No active cart exists.",
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
});
|
|
41
50
|
return;
|
|
42
51
|
}
|
|
43
52
|
response.status(200).send(resource);
|
|
@@ -44,7 +44,7 @@ export class MyCustomerService extends AbstractService {
|
|
|
44
44
|
getMe(request: Request, response: Response) {
|
|
45
45
|
const resource = this.repository.getMe(getRepositoryContext(request));
|
|
46
46
|
if (!resource) {
|
|
47
|
-
response.
|
|
47
|
+
response.status(404).send({ statusCode: 404 });
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
50
|
response.status(200).send(resource);
|
|
@@ -54,7 +54,7 @@ export class MyCustomerService extends AbstractService {
|
|
|
54
54
|
const resource = this.repository.getMe(getRepositoryContext(request));
|
|
55
55
|
|
|
56
56
|
if (!resource) {
|
|
57
|
-
response.
|
|
57
|
+
response.status(404).send({ statusCode: 404 });
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
60
|
const updateRequest = validateData<Update>(
|
|
@@ -75,7 +75,7 @@ export class MyCustomerService extends AbstractService {
|
|
|
75
75
|
deleteMe(request: Request, response: Response) {
|
|
76
76
|
const resource = this.repository.deleteMe(getRepositoryContext(request));
|
|
77
77
|
if (!resource) {
|
|
78
|
-
response.
|
|
78
|
+
response.status(404).send({ statusCode: 404 });
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
81
|
|
package/src/services/order.ts
CHANGED
|
@@ -33,9 +33,10 @@ export class OrderService extends AbstractService {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
getWithOrderNumber(request: Request, response: Response) {
|
|
36
|
+
const orderNumber = request.params.orderNumber;
|
|
36
37
|
const resource = this.repository.getWithOrderNumber(
|
|
37
38
|
getRepositoryContext(request),
|
|
38
|
-
|
|
39
|
+
orderNumber,
|
|
39
40
|
|
|
40
41
|
// @ts-ignore
|
|
41
42
|
request.query,
|
|
@@ -44,6 +45,15 @@ export class OrderService extends AbstractService {
|
|
|
44
45
|
response.status(200).send(resource);
|
|
45
46
|
return;
|
|
46
47
|
}
|
|
47
|
-
response.
|
|
48
|
+
response.status(404).send({
|
|
49
|
+
statusCode: 404,
|
|
50
|
+
message: `The Resource with key '${orderNumber}' was not found.`,
|
|
51
|
+
errors: [
|
|
52
|
+
{
|
|
53
|
+
code: "ResourceNotFound",
|
|
54
|
+
message: `The Resource with key '${orderNumber}' was not found.`,
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
});
|
|
48
58
|
}
|
|
49
59
|
}
|
package/src/services/project.ts
CHANGED