@labdigital/commercetools-mock 2.47.1 → 2.48.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 +226 -152
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -7
- package/dist/index.d.ts +10 -7
- package/dist/index.js +223 -149
- 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/as-associate.ts +2 -0
- package/src/repositories/index.ts +2 -0
- package/src/repositories/my-quote-request.ts +3 -0
- package/src/repositories/quote-request/index.ts +13 -1
- package/src/services/abstract.ts +25 -7
- package/src/services/as-associate-quote-request.ts +34 -0
- package/src/services/as-associate.ts +8 -0
- 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
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { CartRepository } from "./cart";
|
|
2
2
|
import { OrderRepository } from "./order";
|
|
3
|
+
import { QuoteRequestRepository } from "./quote-request";
|
|
3
4
|
|
|
4
5
|
export class AsAssociateOrderRepository extends OrderRepository {}
|
|
5
6
|
export class AsAssociateCartRepository extends CartRepository {}
|
|
7
|
+
export class AsAssociateQuoteRequestRepository extends QuoteRequestRepository {}
|
|
@@ -3,6 +3,7 @@ import { ProductTailoringRepository } from "~src/repositories/product-tailoring"
|
|
|
3
3
|
import {
|
|
4
4
|
AsAssociateCartRepository,
|
|
5
5
|
AsAssociateOrderRepository,
|
|
6
|
+
AsAssociateQuoteRequestRepository,
|
|
6
7
|
} from "./as-associate";
|
|
7
8
|
import { AssociateRoleRepository } from "./associate-role";
|
|
8
9
|
import { AttributeGroupRepository } from "./attribute-group";
|
|
@@ -48,6 +49,7 @@ export const createRepositories = (config: Config) => ({
|
|
|
48
49
|
"as-associate": {
|
|
49
50
|
cart: new AsAssociateCartRepository(config),
|
|
50
51
|
order: new AsAssociateOrderRepository(config),
|
|
52
|
+
"quote-request": new AsAssociateQuoteRequestRepository(config),
|
|
51
53
|
},
|
|
52
54
|
"associate-role": new AssociateRoleRepository(config),
|
|
53
55
|
"attribute-group": new AttributeGroupRepository(config),
|
|
@@ -2,6 +2,7 @@ import assert from "node:assert";
|
|
|
2
2
|
import type {
|
|
3
3
|
Cart,
|
|
4
4
|
CartReference,
|
|
5
|
+
MyQuoteRequestDraft,
|
|
5
6
|
QuoteRequest,
|
|
6
7
|
QuoteRequestDraft,
|
|
7
8
|
} from "@commercetools/platform-sdk";
|
|
@@ -17,7 +18,18 @@ export class QuoteRequestRepository extends AbstractResourceRepository<"quote-re
|
|
|
17
18
|
this.actions = new QuoteRequestUpdateHandler(config.storage);
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
create(
|
|
21
|
+
create(
|
|
22
|
+
context: RepositoryContext,
|
|
23
|
+
draft: QuoteRequestDraft | MyQuoteRequestDraft,
|
|
24
|
+
): QuoteRequest {
|
|
25
|
+
// Handle the 'my' version of the draft
|
|
26
|
+
if ("cartId" in draft) {
|
|
27
|
+
return this.createFromCart(context, {
|
|
28
|
+
id: draft.cartId,
|
|
29
|
+
typeId: "cart",
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
21
33
|
assert(draft.cart, "draft.cart is missing");
|
|
22
34
|
return this.createFromCart(context, {
|
|
23
35
|
id: draft.cart.id!,
|
package/src/services/abstract.ts
CHANGED
|
@@ -71,7 +71,16 @@ export default abstract class AbstractService {
|
|
|
71
71
|
getWithId(request: Request, response: Response) {
|
|
72
72
|
const result = this._expandWithId(request, request.params.id);
|
|
73
73
|
if (!result) {
|
|
74
|
-
response.status(404).send(
|
|
74
|
+
response.status(404).send({
|
|
75
|
+
statusCode: 404,
|
|
76
|
+
message: `The Resource with ID '${request.params.id} was not found.`,
|
|
77
|
+
errors: [
|
|
78
|
+
{
|
|
79
|
+
code: "ResourceNotFound",
|
|
80
|
+
message: `The Resource with ID '${request.params.id} was not found.`,
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
});
|
|
75
84
|
return;
|
|
76
85
|
}
|
|
77
86
|
response.status(200).send(result);
|
|
@@ -86,7 +95,16 @@ export default abstract class AbstractService {
|
|
|
86
95
|
},
|
|
87
96
|
);
|
|
88
97
|
if (!result) {
|
|
89
|
-
response.status(404).send(
|
|
98
|
+
response.status(404).send({
|
|
99
|
+
statusCode: 404,
|
|
100
|
+
message: `The Resource with key '${request.params.id} was not found.`,
|
|
101
|
+
errors: [
|
|
102
|
+
{
|
|
103
|
+
code: "ResourceNotFound",
|
|
104
|
+
message: `The Resource with key '${request.params.id} was not found.`,
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
});
|
|
90
108
|
return;
|
|
91
109
|
}
|
|
92
110
|
response.status(200).send(result);
|
|
@@ -101,7 +119,7 @@ export default abstract class AbstractService {
|
|
|
101
119
|
},
|
|
102
120
|
);
|
|
103
121
|
if (!result) {
|
|
104
|
-
response.status(404).send(
|
|
122
|
+
response.status(404).send({ statusCode: 404 });
|
|
105
123
|
return;
|
|
106
124
|
}
|
|
107
125
|
response.status(200).send(result);
|
|
@@ -113,7 +131,7 @@ export default abstract class AbstractService {
|
|
|
113
131
|
request.params.key,
|
|
114
132
|
);
|
|
115
133
|
if (!resource) {
|
|
116
|
-
response.status(404).send(
|
|
134
|
+
response.status(404).send({ statusCode: 404 });
|
|
117
135
|
return;
|
|
118
136
|
}
|
|
119
137
|
|
|
@@ -125,7 +143,7 @@ export default abstract class AbstractService {
|
|
|
125
143
|
},
|
|
126
144
|
);
|
|
127
145
|
if (!result) {
|
|
128
|
-
response.status(404).send(
|
|
146
|
+
response.status(404).send({ statusCode: 404 });
|
|
129
147
|
return;
|
|
130
148
|
}
|
|
131
149
|
response.status(200).send(result);
|
|
@@ -151,7 +169,7 @@ export default abstract class AbstractService {
|
|
|
151
169
|
request.params.id,
|
|
152
170
|
);
|
|
153
171
|
if (!resource) {
|
|
154
|
-
response.status(404).send(
|
|
172
|
+
response.status(404).send({ statusCode: 404 });
|
|
155
173
|
return;
|
|
156
174
|
}
|
|
157
175
|
|
|
@@ -177,7 +195,7 @@ export default abstract class AbstractService {
|
|
|
177
195
|
request.params.key,
|
|
178
196
|
);
|
|
179
197
|
if (!resource) {
|
|
180
|
-
response.status(404).send(
|
|
198
|
+
response.status(404).send({ statusCode: 404 });
|
|
181
199
|
return;
|
|
182
200
|
}
|
|
183
201
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Router } from "express";
|
|
2
|
+
import type { MyQuoteRequestRepository } from "~src/repositories/my-quote-request";
|
|
3
|
+
import type { MyOrderRepository } from "../repositories/my-order";
|
|
4
|
+
import AbstractService from "./abstract";
|
|
5
|
+
|
|
6
|
+
export class AsAssociateQuoteRequestService extends AbstractService {
|
|
7
|
+
public repository: MyQuoteRequestRepository;
|
|
8
|
+
|
|
9
|
+
constructor(parent: Router, repository: MyQuoteRequestRepository) {
|
|
10
|
+
super(parent);
|
|
11
|
+
this.repository = repository;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
getBasePath() {
|
|
15
|
+
return "quote-requests";
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
registerRoutes(parent: Router) {
|
|
19
|
+
const basePath = this.getBasePath();
|
|
20
|
+
const router = Router({ mergeParams: true });
|
|
21
|
+
|
|
22
|
+
this.extraRoutes(router);
|
|
23
|
+
|
|
24
|
+
router.get("/", this.get.bind(this));
|
|
25
|
+
router.get("/:id", this.getWithId.bind(this));
|
|
26
|
+
|
|
27
|
+
router.delete("/:id", this.deleteWithId.bind(this));
|
|
28
|
+
|
|
29
|
+
router.post("/", this.post.bind(this));
|
|
30
|
+
router.post("/:id", this.postWithId.bind(this));
|
|
31
|
+
|
|
32
|
+
parent.use(`/${basePath}`, router);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -2,13 +2,16 @@ import { Router } from "express";
|
|
|
2
2
|
import type {
|
|
3
3
|
AsAssociateCartRepository,
|
|
4
4
|
AsAssociateOrderRepository,
|
|
5
|
+
AsAssociateQuoteRequestRepository,
|
|
5
6
|
} from "~src/repositories/as-associate";
|
|
6
7
|
import { AsAssociateCartService } from "./as-associate-cart";
|
|
7
8
|
import { AsAssociateOrderService } from "./as-associate-order";
|
|
9
|
+
import { AsAssociateQuoteRequestService } from "./as-associate-quote-request";
|
|
8
10
|
|
|
9
11
|
type Repositories = {
|
|
10
12
|
cart: AsAssociateCartRepository;
|
|
11
13
|
order: AsAssociateOrderRepository;
|
|
14
|
+
"quote-request": AsAssociateQuoteRequestRepository;
|
|
12
15
|
};
|
|
13
16
|
|
|
14
17
|
export class AsAssociateService {
|
|
@@ -17,6 +20,7 @@ export class AsAssociateService {
|
|
|
17
20
|
subServices: {
|
|
18
21
|
cart: AsAssociateCartService;
|
|
19
22
|
order: AsAssociateOrderService;
|
|
23
|
+
"quote-request": AsAssociateQuoteRequestService;
|
|
20
24
|
};
|
|
21
25
|
|
|
22
26
|
constructor(parent: Router, repositories: Repositories) {
|
|
@@ -25,6 +29,10 @@ export class AsAssociateService {
|
|
|
25
29
|
this.subServices = {
|
|
26
30
|
order: new AsAssociateOrderService(this.router, repositories.order),
|
|
27
31
|
cart: new AsAssociateCartService(this.router, repositories.cart),
|
|
32
|
+
"quote-request": new AsAssociateQuoteRequestService(
|
|
33
|
+
this.router,
|
|
34
|
+
repositories["quote-request"],
|
|
35
|
+
),
|
|
28
36
|
};
|
|
29
37
|
parent.use(
|
|
30
38
|
"/as-associate/:associateId/in-business-unit/key=:businessUnitId",
|
|
@@ -52,7 +52,7 @@ export class CustomObjectService extends AbstractService {
|
|
|
52
52
|
);
|
|
53
53
|
|
|
54
54
|
if (!result) {
|
|
55
|
-
response.status(404).send(
|
|
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.status(404).send(
|
|
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.status(404).send(
|
|
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.status(404).send(
|
|
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.status(404).send(
|
|
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.status(404).send(
|
|
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.status(404).send(
|
|
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