@labdigital/commercetools-mock 2.17.1 → 2.18.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 +4351 -4099
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +266 -413
- package/dist/index.d.ts +266 -413
- package/dist/index.js +4351 -4099
- package/dist/index.js.map +1 -1
- package/package.json +47 -47
- package/src/constants.ts +2 -2
- package/src/ctMock.test.ts +11 -11
- package/src/ctMock.ts +141 -127
- package/src/deprecation.ts +8 -0
- package/src/exceptions.ts +17 -15
- package/src/helpers.ts +32 -32
- package/src/index.test.ts +128 -128
- package/src/index.ts +3 -3
- package/src/lib/expandParser.ts +13 -13
- package/src/lib/haversine.test.ts +9 -9
- package/src/lib/haversine.ts +11 -11
- package/src/lib/masking.ts +11 -11
- package/src/lib/parser.ts +2 -2
- package/src/lib/password.ts +23 -3
- package/src/lib/predicateParser.test.ts +185 -183
- package/src/lib/predicateParser.ts +234 -234
- package/src/lib/projectionSearchFilter.test.ts +103 -101
- package/src/lib/projectionSearchFilter.ts +152 -150
- package/src/lib/proxy.ts +5 -5
- package/src/oauth/errors.ts +4 -4
- package/src/oauth/helpers.ts +6 -6
- package/src/oauth/server.test.ts +86 -86
- package/src/oauth/server.ts +158 -144
- package/src/oauth/store.ts +44 -43
- package/src/priceSelector.test.ts +35 -35
- package/src/priceSelector.ts +30 -30
- package/src/product-projection-search.ts +136 -134
- package/src/projectAPI.test.ts +7 -7
- package/src/projectAPI.ts +24 -22
- package/src/repositories/abstract.ts +168 -116
- package/src/repositories/associate-role.ts +90 -77
- package/src/repositories/attribute-group.ts +51 -40
- package/src/repositories/business-unit.ts +168 -148
- package/src/repositories/cart/actions.ts +489 -0
- package/src/repositories/cart/helpers.ts +30 -0
- package/src/repositories/cart/index.ts +180 -0
- package/src/repositories/cart-discount/actions.ts +148 -0
- package/src/repositories/cart-discount/index.ts +86 -0
- package/src/repositories/category/actions.ts +231 -0
- package/src/repositories/category/index.ts +52 -0
- package/src/repositories/channel.ts +88 -90
- package/src/repositories/custom-object.ts +46 -45
- package/src/repositories/customer/actions.ts +165 -0
- package/src/repositories/customer/index.ts +79 -0
- package/src/repositories/customer-group.ts +66 -55
- package/src/repositories/discount-code/actions.ts +149 -0
- package/src/repositories/discount-code/index.ts +50 -0
- package/src/repositories/errors.ts +10 -10
- package/src/repositories/extension.ts +64 -62
- package/src/repositories/helpers.ts +117 -118
- package/src/repositories/index.ts +80 -79
- package/src/repositories/inventory-entry/actions.ts +84 -0
- package/src/repositories/inventory-entry/index.ts +44 -0
- package/src/repositories/my-customer.ts +114 -0
- package/src/repositories/my-order.ts +8 -8
- package/src/repositories/order/actions.ts +281 -0
- package/src/repositories/{order.test.ts → order/index.test.ts} +77 -77
- package/src/repositories/order/index.ts +260 -0
- package/src/repositories/order-edit.ts +10 -23
- package/src/repositories/payment/actions.ts +305 -0
- package/src/repositories/payment/helpers.ts +17 -0
- package/src/repositories/payment/index.ts +56 -0
- package/src/repositories/product/actions.ts +943 -0
- package/src/repositories/product/helpers.ts +98 -0
- package/src/repositories/product/index.ts +130 -0
- package/src/repositories/product-discount.ts +127 -117
- package/src/repositories/product-projection.ts +56 -62
- package/src/repositories/product-selection.ts +31 -28
- package/src/repositories/product-type.ts +136 -134
- package/src/repositories/project.ts +133 -118
- package/src/repositories/quote-request.ts +7 -19
- package/src/repositories/quote.ts +7 -22
- package/src/repositories/review.ts +13 -26
- package/src/repositories/shipping-method/actions.ts +198 -0
- package/src/repositories/shipping-method/helpers.ts +10 -0
- package/src/repositories/shipping-method/index.ts +138 -0
- package/src/repositories/shopping-list/actions.ts +295 -0
- package/src/repositories/shopping-list/index.ts +122 -0
- package/src/repositories/staged-quote.ts +7 -20
- package/src/repositories/standalone-price.ts +57 -44
- package/src/repositories/state.ts +113 -68
- package/src/repositories/store.ts +106 -94
- package/src/repositories/subscription.ts +46 -22
- package/src/repositories/tax-category/actions.ts +94 -0
- package/src/repositories/tax-category/helpers.ts +8 -0
- package/src/repositories/tax-category/index.ts +25 -0
- package/src/repositories/type/actions.ts +162 -0
- package/src/repositories/type/index.ts +24 -0
- package/src/repositories/zone.ts +62 -58
- package/src/schemas/update-request.ts +12 -0
- package/src/server.ts +9 -9
- package/src/services/abstract.ts +85 -72
- package/src/services/associate-roles.test.ts +27 -27
- package/src/services/associate-roles.ts +7 -7
- package/src/services/attribute-group.ts +7 -7
- package/src/services/business-units.test.ts +28 -28
- package/src/services/business-units.ts +7 -7
- package/src/services/cart-discount.test.ts +199 -199
- package/src/services/cart-discount.ts +7 -7
- package/src/services/cart.test.ts +261 -261
- package/src/services/cart.ts +22 -21
- package/src/services/category.test.ts +121 -121
- package/src/services/category.ts +7 -7
- package/src/services/channel.ts +7 -7
- package/src/services/custom-object.test.ts +130 -130
- package/src/services/custom-object.ts +34 -31
- package/src/services/customer-group.ts +7 -7
- package/src/services/customer.test.ts +205 -205
- package/src/services/customer.ts +23 -36
- package/src/services/discount-code.ts +7 -7
- package/src/services/extension.ts +7 -7
- package/src/services/index.ts +85 -81
- package/src/services/inventory-entry.test.ts +106 -106
- package/src/services/inventory-entry.ts +7 -7
- package/src/services/my-cart.test.ts +56 -56
- package/src/services/my-cart.ts +20 -20
- package/src/services/my-customer.test.ts +155 -104
- package/src/services/my-customer.ts +66 -75
- package/src/services/my-order.ts +16 -16
- package/src/services/my-payment.test.ts +40 -40
- package/src/services/my-payment.ts +7 -7
- package/src/services/my-shopping-list.ts +7 -7
- package/src/services/order.test.ts +243 -243
- package/src/services/order.ts +23 -18
- package/src/services/payment.test.ts +40 -40
- package/src/services/payment.ts +7 -7
- package/src/services/product-discount.ts +7 -7
- package/src/services/product-projection.test.ts +190 -190
- package/src/services/product-projection.ts +34 -32
- package/src/services/product-selection.test.ts +19 -19
- package/src/services/product-selection.ts +7 -7
- package/src/services/product-type.test.ts +38 -38
- package/src/services/product-type.ts +7 -7
- package/src/services/product.test.ts +658 -656
- package/src/services/product.ts +7 -7
- package/src/services/project.test.ts +29 -24
- package/src/services/project.ts +22 -17
- package/src/services/reviews.ts +7 -7
- package/src/services/shipping-method.test.ts +78 -78
- package/src/services/shipping-method.ts +16 -16
- package/src/services/shopping-list.test.ts +170 -170
- package/src/services/shopping-list.ts +7 -7
- package/src/services/standalone-price.test.ts +112 -112
- package/src/services/standalone-price.ts +7 -7
- package/src/services/state.test.ts +30 -30
- package/src/services/state.ts +7 -7
- package/src/services/store.test.ts +40 -40
- package/src/services/store.ts +7 -7
- package/src/services/subscription.ts +7 -7
- package/src/services/tax-category.test.ts +43 -43
- package/src/services/tax-category.ts +7 -7
- package/src/services/type.ts +7 -7
- package/src/services/zone.ts +7 -7
- package/src/shippingCalculator.test.ts +43 -43
- package/src/shippingCalculator.ts +23 -23
- package/src/storage/abstract.ts +36 -34
- package/src/storage/in-memory.ts +237 -233
- package/src/storage/index.ts +2 -2
- package/src/types.ts +91 -91
- package/src/validate.ts +18 -0
- package/src/repositories/cart-discount.ts +0 -219
- package/src/repositories/cart.ts +0 -659
- package/src/repositories/category.ts +0 -256
- package/src/repositories/customer.ts +0 -228
- package/src/repositories/discount-code.ts +0 -181
- package/src/repositories/inventory-entry.ts +0 -109
- package/src/repositories/order.ts +0 -514
- package/src/repositories/payment.ts +0 -342
- package/src/repositories/product.ts +0 -1106
- package/src/repositories/shipping-method.ts +0 -312
- package/src/repositories/shopping-list.ts +0 -392
- package/src/repositories/tax-category.ts +0 -111
- package/src/repositories/type.ts +0 -172
|
@@ -1,139 +1,130 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import { hashPassword } from
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
InvalidCurrentPasswordError,
|
|
10
|
-
} from '@commercetools/platform-sdk'
|
|
1
|
+
import { Update } from "@commercetools/platform-sdk";
|
|
2
|
+
import { Request, Response, Router } from "express";
|
|
3
|
+
import { updateRequestSchema } from "~src/schemas/update-request";
|
|
4
|
+
import { validateData } from "~src/validate";
|
|
5
|
+
import { hashPassword } from "../lib/password";
|
|
6
|
+
import { getRepositoryContext } from "../repositories/helpers";
|
|
7
|
+
import { MyCustomerRepository } from "../repositories/my-customer";
|
|
8
|
+
import AbstractService from "./abstract";
|
|
11
9
|
|
|
12
10
|
export class MyCustomerService extends AbstractService {
|
|
13
|
-
public repository:
|
|
11
|
+
public repository: MyCustomerRepository;
|
|
14
12
|
|
|
15
|
-
constructor(parent: Router, repository:
|
|
16
|
-
super(parent)
|
|
17
|
-
this.repository = repository
|
|
13
|
+
constructor(parent: Router, repository: MyCustomerRepository) {
|
|
14
|
+
super(parent);
|
|
15
|
+
this.repository = repository;
|
|
18
16
|
}
|
|
19
17
|
|
|
20
18
|
getBasePath() {
|
|
21
|
-
return
|
|
19
|
+
return "me";
|
|
22
20
|
}
|
|
23
21
|
|
|
24
22
|
registerRoutes(parent: Router) {
|
|
25
23
|
// Overwrite this function to be able to handle /me path.
|
|
26
|
-
const basePath = this.getBasePath()
|
|
27
|
-
const router = Router({ mergeParams: true })
|
|
24
|
+
const basePath = this.getBasePath();
|
|
25
|
+
const router = Router({ mergeParams: true });
|
|
28
26
|
|
|
29
|
-
this.extraRoutes(router)
|
|
27
|
+
this.extraRoutes(router);
|
|
30
28
|
|
|
31
|
-
router.get(
|
|
32
|
-
router.post(
|
|
33
|
-
router.delete(
|
|
29
|
+
router.get("", this.getMe.bind(this));
|
|
30
|
+
router.post("", this.updateMe.bind(this));
|
|
31
|
+
router.delete("", this.deleteMe.bind(this));
|
|
34
32
|
|
|
35
|
-
router.post(
|
|
33
|
+
router.post("/signup", this.signUp.bind(this));
|
|
36
34
|
|
|
37
|
-
router.post(
|
|
38
|
-
router.post(
|
|
35
|
+
router.post("/login", this.signIn.bind(this));
|
|
36
|
+
router.post("/password", this.changePassword.bind(this));
|
|
37
|
+
router.post("/password/reset", this.resetPassword.bind(this));
|
|
39
38
|
|
|
40
|
-
parent.use(`/${basePath}`, router)
|
|
39
|
+
parent.use(`/${basePath}`, router);
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
getMe(request: Request, response: Response) {
|
|
44
|
-
const resource = this.repository.getMe(getRepositoryContext(request))
|
|
43
|
+
const resource = this.repository.getMe(getRepositoryContext(request));
|
|
45
44
|
if (!resource) {
|
|
46
|
-
return response.status(404).send(
|
|
45
|
+
return response.status(404).send("Not found");
|
|
47
46
|
}
|
|
48
|
-
return response.status(200).send(resource)
|
|
47
|
+
return response.status(200).send(resource);
|
|
49
48
|
}
|
|
50
49
|
|
|
51
50
|
updateMe(request: Request, response: Response) {
|
|
52
|
-
const resource = this.repository.getMe(getRepositoryContext(request))
|
|
51
|
+
const resource = this.repository.getMe(getRepositoryContext(request));
|
|
53
52
|
|
|
54
53
|
if (!resource) {
|
|
55
|
-
return response.status(404).send(
|
|
54
|
+
return response.status(404).send("Not found");
|
|
56
55
|
}
|
|
57
|
-
const updateRequest
|
|
56
|
+
const updateRequest = validateData<Update>(
|
|
57
|
+
request.body,
|
|
58
|
+
updateRequestSchema,
|
|
59
|
+
);
|
|
58
60
|
const updatedResource = this.repository.processUpdateActions(
|
|
59
61
|
getRepositoryContext(request),
|
|
60
62
|
resource,
|
|
61
63
|
updateRequest.version,
|
|
62
|
-
updateRequest.actions
|
|
63
|
-
)
|
|
64
|
+
updateRequest.actions,
|
|
65
|
+
);
|
|
64
66
|
|
|
65
|
-
const result = this._expandWithId(request, updatedResource.id)
|
|
66
|
-
return response.status(200).send(result)
|
|
67
|
+
const result = this._expandWithId(request, updatedResource.id);
|
|
68
|
+
return response.status(200).send(result);
|
|
67
69
|
}
|
|
70
|
+
|
|
68
71
|
deleteMe(request: Request, response: Response) {
|
|
69
|
-
const resource = this.repository.deleteMe(getRepositoryContext(request))
|
|
72
|
+
const resource = this.repository.deleteMe(getRepositoryContext(request));
|
|
70
73
|
if (!resource) {
|
|
71
|
-
return response.status(404).send(
|
|
74
|
+
return response.status(404).send("Not found");
|
|
72
75
|
}
|
|
73
76
|
|
|
74
|
-
return response.status(200).send(resource)
|
|
77
|
+
return response.status(200).send(resource);
|
|
75
78
|
}
|
|
76
79
|
|
|
77
80
|
signUp(request: Request, response: Response) {
|
|
78
|
-
const draft = request.body
|
|
81
|
+
const draft = request.body;
|
|
79
82
|
const resource = this.repository.create(
|
|
80
83
|
getRepositoryContext(request),
|
|
81
|
-
draft
|
|
82
|
-
)
|
|
83
|
-
const result = this._expandWithId(request, resource.id)
|
|
84
|
-
return response.status(this.createStatusCode).send({ customer: result })
|
|
84
|
+
draft,
|
|
85
|
+
);
|
|
86
|
+
const result = this._expandWithId(request, resource.id);
|
|
87
|
+
return response.status(this.createStatusCode).send({ customer: result });
|
|
85
88
|
}
|
|
86
89
|
|
|
87
90
|
changePassword(request: Request, response: Response) {
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
where: [`password = "${encodedPassword}"`],
|
|
93
|
-
})
|
|
94
|
-
|
|
95
|
-
if (result.count === 0) {
|
|
96
|
-
return response.status(404).send({
|
|
97
|
-
message: 'Account with the given credentials not found.',
|
|
98
|
-
errors: [
|
|
99
|
-
{
|
|
100
|
-
code: 'InvalidCurrentPassword',
|
|
101
|
-
message: 'Account with the given credentials not found.',
|
|
102
|
-
} as InvalidCurrentPasswordError,
|
|
103
|
-
],
|
|
104
|
-
})
|
|
105
|
-
}
|
|
91
|
+
const customer = this.repository.changePassword(
|
|
92
|
+
getRepositoryContext(request),
|
|
93
|
+
request.body,
|
|
94
|
+
);
|
|
106
95
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
password: hashPassword(newPassword),
|
|
110
|
-
}
|
|
96
|
+
return response.status(200).send(customer);
|
|
97
|
+
}
|
|
111
98
|
|
|
112
|
-
|
|
99
|
+
resetPassword(request: Request, response: Response) {
|
|
100
|
+
const customer = this.repository.resetPassword(
|
|
101
|
+
getRepositoryContext(request),
|
|
102
|
+
request.body,
|
|
103
|
+
);
|
|
113
104
|
|
|
114
|
-
return response.status(200).send(
|
|
105
|
+
return response.status(200).send(customer);
|
|
115
106
|
}
|
|
116
107
|
|
|
117
108
|
signIn(request: Request, response: Response) {
|
|
118
|
-
const { email, password } = request.body
|
|
119
|
-
const encodedPassword = hashPassword(password)
|
|
109
|
+
const { email, password } = request.body;
|
|
110
|
+
const encodedPassword = hashPassword(password);
|
|
120
111
|
|
|
121
112
|
const result = this.repository.query(getRepositoryContext(request), {
|
|
122
113
|
where: [`email = "${email}"`, `password = "${encodedPassword}"`],
|
|
123
|
-
})
|
|
114
|
+
});
|
|
124
115
|
|
|
125
116
|
if (result.count === 0) {
|
|
126
117
|
return response.status(400).send({
|
|
127
|
-
message:
|
|
118
|
+
message: "Account with the given credentials not found.",
|
|
128
119
|
errors: [
|
|
129
120
|
{
|
|
130
|
-
code:
|
|
131
|
-
message:
|
|
121
|
+
code: "InvalidCredentials",
|
|
122
|
+
message: "Account with the given credentials not found.",
|
|
132
123
|
},
|
|
133
124
|
],
|
|
134
|
-
})
|
|
125
|
+
});
|
|
135
126
|
}
|
|
136
127
|
|
|
137
|
-
return response.status(200).send({ customer: result.results[0] })
|
|
128
|
+
return response.status(200).send({ customer: result.results[0] });
|
|
138
129
|
}
|
|
139
130
|
}
|
package/src/services/my-order.ts
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { Router } from
|
|
2
|
-
import { MyOrderRepository } from
|
|
3
|
-
import AbstractService from
|
|
1
|
+
import { Router } from "express";
|
|
2
|
+
import { MyOrderRepository } from "../repositories/my-order";
|
|
3
|
+
import AbstractService from "./abstract";
|
|
4
4
|
|
|
5
5
|
export class MyOrderService extends AbstractService {
|
|
6
|
-
public repository: MyOrderRepository
|
|
6
|
+
public repository: MyOrderRepository;
|
|
7
7
|
|
|
8
8
|
constructor(parent: Router, repository: MyOrderRepository) {
|
|
9
|
-
super(parent)
|
|
10
|
-
this.repository = repository
|
|
9
|
+
super(parent);
|
|
10
|
+
this.repository = repository;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
getBasePath() {
|
|
14
|
-
return
|
|
14
|
+
return "me";
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
registerRoutes(parent: Router) {
|
|
18
18
|
// Overwrite this function to be able to handle /me/active-cart path.
|
|
19
|
-
const basePath = this.getBasePath()
|
|
20
|
-
const router = Router({ mergeParams: true })
|
|
19
|
+
const basePath = this.getBasePath();
|
|
20
|
+
const router = Router({ mergeParams: true });
|
|
21
21
|
|
|
22
|
-
this.extraRoutes(router)
|
|
22
|
+
this.extraRoutes(router);
|
|
23
23
|
|
|
24
|
-
router.get(
|
|
25
|
-
router.get(
|
|
24
|
+
router.get("/orders/", this.get.bind(this));
|
|
25
|
+
router.get("/orders/:id", this.getWithId.bind(this));
|
|
26
26
|
|
|
27
|
-
router.delete(
|
|
27
|
+
router.delete("/orders/:id", this.deleteWithId.bind(this));
|
|
28
28
|
|
|
29
|
-
router.post(
|
|
30
|
-
router.post(
|
|
29
|
+
router.post("/orders/", this.post.bind(this));
|
|
30
|
+
router.post("/orders/:id", this.postWithId.bind(this));
|
|
31
31
|
|
|
32
|
-
parent.use(`/${basePath}`, router)
|
|
32
|
+
parent.use(`/${basePath}`, router);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
import type { MyPaymentDraft } from
|
|
2
|
-
import supertest from
|
|
3
|
-
import { beforeEach, describe, expect, test } from
|
|
4
|
-
import { CommercetoolsMock } from
|
|
1
|
+
import type { MyPaymentDraft } from "@commercetools/platform-sdk";
|
|
2
|
+
import supertest from "supertest";
|
|
3
|
+
import { beforeEach, describe, expect, test } from "vitest";
|
|
4
|
+
import { CommercetoolsMock } from "../index";
|
|
5
5
|
|
|
6
|
-
const ctMock = new CommercetoolsMock()
|
|
6
|
+
const ctMock = new CommercetoolsMock();
|
|
7
7
|
|
|
8
|
-
describe(
|
|
8
|
+
describe("MyPayment", () => {
|
|
9
9
|
beforeEach(async () => {
|
|
10
10
|
const response = await supertest(ctMock.app)
|
|
11
|
-
.post(
|
|
11
|
+
.post("/dummy/types")
|
|
12
12
|
.send({
|
|
13
|
-
key:
|
|
13
|
+
key: "custom-payment",
|
|
14
14
|
name: {
|
|
15
|
-
|
|
15
|
+
"nl-NL": "custom-payment",
|
|
16
16
|
},
|
|
17
|
-
resourceTypeIds: [
|
|
18
|
-
})
|
|
19
|
-
expect(response.status).toBe(201)
|
|
20
|
-
})
|
|
17
|
+
resourceTypeIds: ["payment"],
|
|
18
|
+
});
|
|
19
|
+
expect(response.status).toBe(201);
|
|
20
|
+
});
|
|
21
21
|
|
|
22
|
-
test(
|
|
22
|
+
test("Create payment", async () => {
|
|
23
23
|
const draft: MyPaymentDraft = {
|
|
24
|
-
amountPlanned: { currencyCode:
|
|
24
|
+
amountPlanned: { currencyCode: "EUR", centAmount: 1337 },
|
|
25
25
|
custom: {
|
|
26
|
-
type: { typeId:
|
|
26
|
+
type: { typeId: "type", key: "custom-payment" },
|
|
27
27
|
fields: {
|
|
28
|
-
foo:
|
|
28
|
+
foo: "bar",
|
|
29
29
|
},
|
|
30
30
|
},
|
|
31
|
-
}
|
|
31
|
+
};
|
|
32
32
|
const response = await supertest(ctMock.app)
|
|
33
|
-
.post(
|
|
34
|
-
.send(draft)
|
|
33
|
+
.post("/dummy/me/payments")
|
|
34
|
+
.send(draft);
|
|
35
35
|
|
|
36
|
-
expect(response.status).toBe(201)
|
|
36
|
+
expect(response.status).toBe(201);
|
|
37
37
|
expect(response.body).toEqual({
|
|
38
38
|
id: expect.anything(),
|
|
39
39
|
createdAt: expect.anything(),
|
|
40
40
|
lastModifiedAt: expect.anything(),
|
|
41
41
|
version: 1,
|
|
42
42
|
amountPlanned: {
|
|
43
|
-
type:
|
|
43
|
+
type: "centPrecision",
|
|
44
44
|
fractionDigits: 2,
|
|
45
|
-
currencyCode:
|
|
45
|
+
currencyCode: "EUR",
|
|
46
46
|
centAmount: 1337,
|
|
47
47
|
},
|
|
48
48
|
paymentStatus: {},
|
|
49
49
|
transactions: [],
|
|
50
50
|
interfaceInteractions: [],
|
|
51
51
|
custom: {
|
|
52
|
-
type: { typeId:
|
|
53
|
-
fields: { foo:
|
|
52
|
+
type: { typeId: "type", id: expect.anything() },
|
|
53
|
+
fields: { foo: "bar" },
|
|
54
54
|
},
|
|
55
|
-
})
|
|
56
|
-
})
|
|
57
|
-
test(
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
test("Get payment", async () => {
|
|
58
58
|
const draft: MyPaymentDraft = {
|
|
59
|
-
amountPlanned: { currencyCode:
|
|
59
|
+
amountPlanned: { currencyCode: "EUR", centAmount: 1337 },
|
|
60
60
|
custom: {
|
|
61
|
-
type: { typeId:
|
|
61
|
+
type: { typeId: "type", key: "custom-payment" },
|
|
62
62
|
fields: {
|
|
63
|
-
foo:
|
|
63
|
+
foo: "bar",
|
|
64
64
|
},
|
|
65
65
|
},
|
|
66
|
-
}
|
|
66
|
+
};
|
|
67
67
|
const createResponse = await supertest(ctMock.app)
|
|
68
|
-
.post(
|
|
69
|
-
.send(draft)
|
|
68
|
+
.post("/dummy/me/payments")
|
|
69
|
+
.send(draft);
|
|
70
70
|
|
|
71
71
|
const response = await supertest(ctMock.app).get(
|
|
72
|
-
`/dummy/me/payments/${createResponse.body.id}
|
|
73
|
-
)
|
|
72
|
+
`/dummy/me/payments/${createResponse.body.id}`,
|
|
73
|
+
);
|
|
74
74
|
|
|
75
|
-
expect(response.status).toBe(200)
|
|
76
|
-
expect(response.body).toEqual(createResponse.body)
|
|
77
|
-
})
|
|
78
|
-
})
|
|
75
|
+
expect(response.status).toBe(200);
|
|
76
|
+
expect(response.body).toEqual(createResponse.body);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { Router } from
|
|
2
|
-
import { PaymentRepository } from
|
|
3
|
-
import AbstractService from
|
|
1
|
+
import { Router } from "express";
|
|
2
|
+
import { PaymentRepository } from "../repositories/payment";
|
|
3
|
+
import AbstractService from "./abstract";
|
|
4
4
|
|
|
5
5
|
export class MyPaymentService extends AbstractService {
|
|
6
|
-
public repository: PaymentRepository
|
|
6
|
+
public repository: PaymentRepository;
|
|
7
7
|
|
|
8
8
|
constructor(parent: Router, repository: PaymentRepository) {
|
|
9
|
-
super(parent)
|
|
10
|
-
this.repository = repository
|
|
9
|
+
super(parent);
|
|
10
|
+
this.repository = repository;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
getBasePath() {
|
|
14
|
-
return
|
|
14
|
+
return "me/payments";
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { Router } from
|
|
2
|
-
import { ShoppingListRepository } from
|
|
3
|
-
import AbstractService from
|
|
1
|
+
import { Router } from "express";
|
|
2
|
+
import { ShoppingListRepository } from "../repositories/shopping-list";
|
|
3
|
+
import AbstractService from "./abstract";
|
|
4
4
|
|
|
5
5
|
export class MyShoppingListService extends AbstractService {
|
|
6
|
-
public repository: ShoppingListRepository
|
|
6
|
+
public repository: ShoppingListRepository;
|
|
7
7
|
|
|
8
8
|
constructor(parent: Router, repository: ShoppingListRepository) {
|
|
9
|
-
super(parent)
|
|
10
|
-
this.repository = repository
|
|
9
|
+
super(parent);
|
|
10
|
+
this.repository = repository;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
getBasePath() {
|
|
14
|
-
return
|
|
14
|
+
return "me/shopping-lists";
|
|
15
15
|
}
|
|
16
16
|
}
|