@labdigital/commercetools-mock 0.6.0 → 0.6.3
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/commercetools-mock.cjs.development.js +423 -352
- package/dist/commercetools-mock.cjs.development.js.map +1 -1
- package/dist/commercetools-mock.cjs.production.min.js +1 -1
- package/dist/commercetools-mock.cjs.production.min.js.map +1 -1
- package/dist/commercetools-mock.esm.js +423 -352
- package/dist/commercetools-mock.esm.js.map +1 -1
- package/dist/repositories/abstract.d.ts +13 -9
- package/dist/repositories/cart-discount.d.ts +3 -3
- package/dist/repositories/cart.d.ts +13 -13
- package/dist/repositories/category.d.ts +11 -11
- package/dist/repositories/channel.d.ts +2 -2
- package/dist/repositories/custom-object.d.ts +3 -3
- package/dist/repositories/customer-group.d.ts +4 -4
- package/dist/repositories/customer.d.ts +4 -4
- package/dist/repositories/discount-code.d.ts +3 -3
- package/dist/repositories/extension.d.ts +3 -3
- package/dist/repositories/helpers.d.ts +3 -0
- package/dist/repositories/inventory-entry.d.ts +7 -7
- package/dist/repositories/my-order.d.ts +6 -0
- package/dist/repositories/order.d.ts +18 -17
- package/dist/repositories/payment.d.ts +8 -8
- package/dist/repositories/product-projection.d.ts +3 -3
- package/dist/repositories/product-type.d.ts +5 -5
- package/dist/repositories/product.d.ts +4 -4
- package/dist/repositories/project.d.ts +4 -4
- package/dist/repositories/shipping-method.d.ts +3 -3
- package/dist/repositories/shopping-list.d.ts +2 -2
- package/dist/repositories/state.d.ts +3 -3
- package/dist/repositories/store.d.ts +4 -4
- package/dist/repositories/subscription.d.ts +2 -2
- package/dist/repositories/tax-category.d.ts +4 -4
- package/dist/repositories/type.d.ts +3 -3
- package/dist/repositories/zone.d.ts +3 -3
- package/dist/services/my-order.d.ts +2 -2
- package/package.json +1 -1
- package/src/ctMock.ts +6 -0
- package/src/repositories/abstract.ts +37 -17
- package/src/repositories/cart-discount.ts +11 -11
- package/src/repositories/cart.ts +88 -36
- package/src/repositories/category.ts +17 -13
- package/src/repositories/channel.ts +3 -3
- package/src/repositories/custom-object.ts +16 -8
- package/src/repositories/customer-group.ts +5 -5
- package/src/repositories/customer.ts +10 -6
- package/src/repositories/discount-code.ts +14 -14
- package/src/repositories/extension.ts +12 -8
- package/src/repositories/helpers.ts +9 -0
- package/src/repositories/inventory-entry.ts +17 -10
- package/src/repositories/my-order.ts +19 -0
- package/src/repositories/order.test.ts +79 -3
- package/src/repositories/order.ts +77 -37
- package/src/repositories/payment.ts +21 -17
- package/src/repositories/product-projection.ts +5 -5
- package/src/repositories/product-type.ts +14 -10
- package/src/repositories/product.ts +5 -5
- package/src/repositories/project.ts +21 -17
- package/src/repositories/shipping-method.ts +27 -20
- package/src/repositories/shopping-list.ts +10 -6
- package/src/repositories/state.ts +13 -9
- package/src/repositories/store.ts +18 -14
- package/src/repositories/subscription.ts +3 -3
- package/src/repositories/tax-category.ts +16 -12
- package/src/repositories/type.ts +15 -11
- package/src/repositories/zone.ts +13 -9
- package/src/services/abstract.ts +21 -10
- package/src/services/cart.test.ts +48 -8
- package/src/services/cart.ts +17 -11
- package/src/services/custom-object.ts +8 -4
- package/src/services/customer.ts +5 -2
- package/src/services/my-customer.ts +7 -3
- package/src/services/my-order.ts +3 -3
- package/src/services/order.ts +3 -2
- package/src/services/product-projection.ts +2 -1
- package/src/services/product-type.ts +2 -1
- package/src/services/project.ts +4 -3
- package/src/services/store.ts +2 -1
- package/src/services/tax-category.ts +2 -1
package/src/repositories/type.ts
CHANGED
|
@@ -14,14 +14,14 @@ import {
|
|
|
14
14
|
} from '@commercetools/platform-sdk'
|
|
15
15
|
import { Writable } from 'types'
|
|
16
16
|
import { getBaseResourceProperties } from '../helpers'
|
|
17
|
-
import { AbstractResourceRepository } from './abstract'
|
|
17
|
+
import { AbstractResourceRepository, RepositoryContext } from './abstract'
|
|
18
18
|
|
|
19
19
|
export class TypeRepository extends AbstractResourceRepository {
|
|
20
20
|
getTypeId(): ReferenceTypeId {
|
|
21
21
|
return 'type'
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
create(
|
|
24
|
+
create(context: RepositoryContext, draft: TypeDraft): Type {
|
|
25
25
|
const resource: Type = {
|
|
26
26
|
...getBaseResourceProperties(),
|
|
27
27
|
key: draft.key,
|
|
@@ -30,24 +30,28 @@ export class TypeRepository extends AbstractResourceRepository {
|
|
|
30
30
|
fieldDefinitions: draft.fieldDefinitions || [],
|
|
31
31
|
description: draft.description,
|
|
32
32
|
}
|
|
33
|
-
this.save(
|
|
33
|
+
this.save(context, resource)
|
|
34
34
|
return resource
|
|
35
35
|
}
|
|
36
36
|
actions: Partial<
|
|
37
37
|
Record<
|
|
38
38
|
TypeUpdateAction['action'],
|
|
39
|
-
(
|
|
39
|
+
(
|
|
40
|
+
context: RepositoryContext,
|
|
41
|
+
resource: Writable<Type>,
|
|
42
|
+
action: any
|
|
43
|
+
) => void
|
|
40
44
|
>
|
|
41
45
|
> = {
|
|
42
46
|
addFieldDefinition: (
|
|
43
|
-
|
|
47
|
+
context: RepositoryContext,
|
|
44
48
|
resource: Writable<Type>,
|
|
45
49
|
{ fieldDefinition }: TypeAddFieldDefinitionAction
|
|
46
50
|
) => {
|
|
47
51
|
resource.fieldDefinitions.push(fieldDefinition)
|
|
48
52
|
},
|
|
49
53
|
removeFieldDefinition: (
|
|
50
|
-
|
|
54
|
+
context: RepositoryContext,
|
|
51
55
|
resource: Writable<Type>,
|
|
52
56
|
{ fieldName }: TypeRemoveFieldDefinitionAction
|
|
53
57
|
) => {
|
|
@@ -56,21 +60,21 @@ export class TypeRepository extends AbstractResourceRepository {
|
|
|
56
60
|
})
|
|
57
61
|
},
|
|
58
62
|
setDescription: (
|
|
59
|
-
|
|
63
|
+
context: RepositoryContext,
|
|
60
64
|
resource: Writable<Type>,
|
|
61
65
|
{ description }: TypeSetDescriptionAction
|
|
62
66
|
) => {
|
|
63
67
|
resource.description = description
|
|
64
68
|
},
|
|
65
69
|
changeName: (
|
|
66
|
-
|
|
70
|
+
context: RepositoryContext,
|
|
67
71
|
resource: Writable<Type>,
|
|
68
72
|
{ name }: TypeChangeNameAction
|
|
69
73
|
) => {
|
|
70
74
|
resource.name = name
|
|
71
75
|
},
|
|
72
76
|
changeFieldDefinitionOrder: (
|
|
73
|
-
|
|
77
|
+
context: RepositoryContext,
|
|
74
78
|
resource: Writable<Type>,
|
|
75
79
|
{ fieldNames }: TypeChangeFieldDefinitionOrderAction
|
|
76
80
|
) => {
|
|
@@ -99,7 +103,7 @@ export class TypeRepository extends AbstractResourceRepository {
|
|
|
99
103
|
resource.fieldDefinitions.push(...current)
|
|
100
104
|
},
|
|
101
105
|
addEnumValue: (
|
|
102
|
-
|
|
106
|
+
context: RepositoryContext,
|
|
103
107
|
resource: Writable<Type>,
|
|
104
108
|
{ fieldName, value }: TypeAddEnumValueAction
|
|
105
109
|
) => {
|
|
@@ -120,7 +124,7 @@ export class TypeRepository extends AbstractResourceRepository {
|
|
|
120
124
|
})
|
|
121
125
|
},
|
|
122
126
|
changeEnumValueLabel: (
|
|
123
|
-
|
|
127
|
+
context: RepositoryContext,
|
|
124
128
|
resource: Writable<Type>,
|
|
125
129
|
{ fieldName, value }: TypeChangeEnumValueLabelAction
|
|
126
130
|
) => {
|
package/src/repositories/zone.ts
CHANGED
|
@@ -11,14 +11,14 @@ import {
|
|
|
11
11
|
} from '@commercetools/platform-sdk'
|
|
12
12
|
import { Writable } from 'types'
|
|
13
13
|
import { getBaseResourceProperties } from '../helpers'
|
|
14
|
-
import { AbstractResourceRepository } from './abstract'
|
|
14
|
+
import { AbstractResourceRepository, RepositoryContext } from './abstract'
|
|
15
15
|
|
|
16
16
|
export class ZoneRepository extends AbstractResourceRepository {
|
|
17
17
|
getTypeId(): ReferenceTypeId {
|
|
18
18
|
return 'zone'
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
create(
|
|
21
|
+
create(context: RepositoryContext, draft: ZoneDraft): Zone {
|
|
22
22
|
const resource: Zone = {
|
|
23
23
|
...getBaseResourceProperties(),
|
|
24
24
|
key: draft.key,
|
|
@@ -26,25 +26,29 @@ export class ZoneRepository extends AbstractResourceRepository {
|
|
|
26
26
|
name: draft.name,
|
|
27
27
|
description: draft.description,
|
|
28
28
|
}
|
|
29
|
-
this.save(
|
|
29
|
+
this.save(context, resource)
|
|
30
30
|
return resource
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
actions: Partial<
|
|
34
34
|
Record<
|
|
35
35
|
ZoneUpdateAction['action'],
|
|
36
|
-
(
|
|
36
|
+
(
|
|
37
|
+
context: RepositoryContext,
|
|
38
|
+
resource: Writable<Zone>,
|
|
39
|
+
action: any
|
|
40
|
+
) => void
|
|
37
41
|
>
|
|
38
42
|
> = {
|
|
39
43
|
addLocation: (
|
|
40
|
-
|
|
44
|
+
context: RepositoryContext,
|
|
41
45
|
resource: Writable<Zone>,
|
|
42
46
|
{ location }: ZoneAddLocationAction
|
|
43
47
|
) => {
|
|
44
48
|
resource.locations.push(location)
|
|
45
49
|
},
|
|
46
50
|
removeLocation: (
|
|
47
|
-
|
|
51
|
+
context: RepositoryContext,
|
|
48
52
|
resource: Writable<Zone>,
|
|
49
53
|
{ location }: ZoneRemoveLocationAction
|
|
50
54
|
) => {
|
|
@@ -55,21 +59,21 @@ export class ZoneRepository extends AbstractResourceRepository {
|
|
|
55
59
|
})
|
|
56
60
|
},
|
|
57
61
|
changeName: (
|
|
58
|
-
|
|
62
|
+
context: RepositoryContext,
|
|
59
63
|
resource: Writable<Zone>,
|
|
60
64
|
{ name }: ZoneChangeNameAction
|
|
61
65
|
) => {
|
|
62
66
|
resource.name = name
|
|
63
67
|
},
|
|
64
68
|
setDescription: (
|
|
65
|
-
|
|
69
|
+
context: RepositoryContext,
|
|
66
70
|
resource: Writable<Zone>,
|
|
67
71
|
{ description }: ZoneSetDescriptionAction
|
|
68
72
|
) => {
|
|
69
73
|
resource.description = description
|
|
70
74
|
},
|
|
71
75
|
setKey: (
|
|
72
|
-
|
|
76
|
+
context: RepositoryContext,
|
|
73
77
|
resource: Writable<Zone>,
|
|
74
78
|
{ key }: ZoneSetKeyAction
|
|
75
79
|
) => {
|
package/src/services/abstract.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { Update } from '@commercetools/platform-sdk'
|
|
2
2
|
import { ParsedQs } from 'qs'
|
|
3
3
|
import { Request, Response, Router } from 'express'
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
AbstractResourceRepository,
|
|
6
|
+
RepositoryContext,
|
|
7
|
+
} from '../repositories/abstract'
|
|
8
|
+
import { getRepositoryContext } from '../repositories/helpers'
|
|
5
9
|
|
|
6
10
|
export default abstract class AbstractService {
|
|
7
11
|
protected abstract getBasePath(): string
|
|
@@ -40,7 +44,7 @@ export default abstract class AbstractService {
|
|
|
40
44
|
const limit = this._parseParam(request.query.limit)
|
|
41
45
|
const offset = this._parseParam(request.query.offset)
|
|
42
46
|
|
|
43
|
-
const result = this.repository.query(request
|
|
47
|
+
const result = this.repository.query(getRepositoryContext(request), {
|
|
44
48
|
expand: this._parseParam(request.query.expand),
|
|
45
49
|
where: this._parseParam(request.query.where),
|
|
46
50
|
limit: limit !== undefined ? Number(limit) : undefined,
|
|
@@ -59,7 +63,7 @@ export default abstract class AbstractService {
|
|
|
59
63
|
|
|
60
64
|
getWithKey(request: Request, response: Response) {
|
|
61
65
|
const result = this.repository.getByKey(
|
|
62
|
-
request
|
|
66
|
+
getRepositoryContext(request),
|
|
63
67
|
request.params['key'],
|
|
64
68
|
{ expand: this._parseParam(request.query.expand) }
|
|
65
69
|
)
|
|
@@ -69,7 +73,7 @@ export default abstract class AbstractService {
|
|
|
69
73
|
|
|
70
74
|
deletewithId(request: Request, response: Response) {
|
|
71
75
|
const result = this.repository.delete(
|
|
72
|
-
request
|
|
76
|
+
getRepositoryContext(request),
|
|
73
77
|
request.params['id'],
|
|
74
78
|
{
|
|
75
79
|
expand: this._parseParam(request.query.expand),
|
|
@@ -87,7 +91,10 @@ export default abstract class AbstractService {
|
|
|
87
91
|
|
|
88
92
|
post(request: Request, response: Response) {
|
|
89
93
|
const draft = request.body
|
|
90
|
-
const resource = this.repository.create(
|
|
94
|
+
const resource = this.repository.create(
|
|
95
|
+
getRepositoryContext(request),
|
|
96
|
+
draft
|
|
97
|
+
)
|
|
91
98
|
const result = this._expandWithId(request, resource.id)
|
|
92
99
|
return response.status(this.createStatusCode).send(result)
|
|
93
100
|
}
|
|
@@ -95,7 +102,7 @@ export default abstract class AbstractService {
|
|
|
95
102
|
postWithId(request: Request, response: Response) {
|
|
96
103
|
const updateRequest: Update = request.body
|
|
97
104
|
const resource = this.repository.get(
|
|
98
|
-
request
|
|
105
|
+
getRepositoryContext(request),
|
|
99
106
|
request.params['id']
|
|
100
107
|
)
|
|
101
108
|
if (!resource) {
|
|
@@ -107,7 +114,7 @@ export default abstract class AbstractService {
|
|
|
107
114
|
}
|
|
108
115
|
|
|
109
116
|
const updatedResource = this.repository.processUpdateActions(
|
|
110
|
-
request
|
|
117
|
+
getRepositoryContext(request),
|
|
111
118
|
resource,
|
|
112
119
|
updateRequest.actions
|
|
113
120
|
)
|
|
@@ -121,9 +128,13 @@ export default abstract class AbstractService {
|
|
|
121
128
|
}
|
|
122
129
|
|
|
123
130
|
protected _expandWithId(request: Request, resourceId: string) {
|
|
124
|
-
const result = this.repository.get(
|
|
125
|
-
|
|
126
|
-
|
|
131
|
+
const result = this.repository.get(
|
|
132
|
+
getRepositoryContext(request),
|
|
133
|
+
resourceId,
|
|
134
|
+
{
|
|
135
|
+
expand: this._parseParam(request.query.expand),
|
|
136
|
+
}
|
|
137
|
+
)
|
|
127
138
|
return result
|
|
128
139
|
}
|
|
129
140
|
|
|
@@ -76,9 +76,20 @@ describe('Carts Query', () => {
|
|
|
76
76
|
})
|
|
77
77
|
})
|
|
78
78
|
|
|
79
|
-
describe('
|
|
79
|
+
describe('Cart Update Actions', () => {
|
|
80
80
|
const ctMock = new CommercetoolsMock()
|
|
81
81
|
let cart: Cart | undefined
|
|
82
|
+
|
|
83
|
+
const createCart = async (currency: string) => {
|
|
84
|
+
let response = await supertest(ctMock.app)
|
|
85
|
+
.post('/dummy/carts')
|
|
86
|
+
.send({
|
|
87
|
+
currency,
|
|
88
|
+
})
|
|
89
|
+
expect(response.status).toBe(201)
|
|
90
|
+
cart = response.body
|
|
91
|
+
}
|
|
92
|
+
|
|
82
93
|
const productDraft: ProductDraft = {
|
|
83
94
|
name: {
|
|
84
95
|
'nl-NL': 'test product',
|
|
@@ -98,6 +109,14 @@ describe('Order Update Actions', () => {
|
|
|
98
109
|
fractionDigits: 2,
|
|
99
110
|
} as CentPrecisionMoney,
|
|
100
111
|
},
|
|
112
|
+
{
|
|
113
|
+
value: {
|
|
114
|
+
type: 'centPrecision',
|
|
115
|
+
currencyCode: 'GBP',
|
|
116
|
+
centAmount: 18900,
|
|
117
|
+
fractionDigits: 2,
|
|
118
|
+
} as CentPrecisionMoney,
|
|
119
|
+
},
|
|
101
120
|
],
|
|
102
121
|
|
|
103
122
|
attributes: [
|
|
@@ -135,13 +154,7 @@ describe('Order Update Actions', () => {
|
|
|
135
154
|
}
|
|
136
155
|
|
|
137
156
|
beforeEach(async () => {
|
|
138
|
-
|
|
139
|
-
.post('/dummy/carts')
|
|
140
|
-
.send({
|
|
141
|
-
currency: 'EUR',
|
|
142
|
-
})
|
|
143
|
-
expect(response.status).toBe(201)
|
|
144
|
-
cart = response.body
|
|
157
|
+
await createCart('EUR')
|
|
145
158
|
})
|
|
146
159
|
|
|
147
160
|
afterEach(() => {
|
|
@@ -220,6 +233,33 @@ describe('Order Update Actions', () => {
|
|
|
220
233
|
expect(response.body.totalPrice.centAmount).toEqual(29800)
|
|
221
234
|
})
|
|
222
235
|
|
|
236
|
+
test.each([
|
|
237
|
+
['EUR', 29800],
|
|
238
|
+
['GBP', 37800],
|
|
239
|
+
])('addLineItem with price selection', async (currency, total) => {
|
|
240
|
+
await createCart(currency)
|
|
241
|
+
|
|
242
|
+
const product = await supertest(ctMock.app)
|
|
243
|
+
.post(`/dummy/products`)
|
|
244
|
+
.send(productDraft)
|
|
245
|
+
.then(x => x.body)
|
|
246
|
+
|
|
247
|
+
assert(cart, 'cart not created')
|
|
248
|
+
assert(product, 'product not created')
|
|
249
|
+
|
|
250
|
+
const response = await supertest(ctMock.app)
|
|
251
|
+
.post(`/dummy/carts/${cart.id}`)
|
|
252
|
+
.send({
|
|
253
|
+
version: 1,
|
|
254
|
+
actions: [{ action: 'addLineItem', sku: '1337', quantity: 2 }],
|
|
255
|
+
})
|
|
256
|
+
expect(response.status).toBe(200)
|
|
257
|
+
expect(response.body.version).toBe(2)
|
|
258
|
+
expect(response.body.lineItems).toHaveLength(1)
|
|
259
|
+
expect(response.body.lineItems[0].price.value.currencyCode).toBe(currency)
|
|
260
|
+
expect(response.body.totalPrice.centAmount).toEqual(total)
|
|
261
|
+
})
|
|
262
|
+
|
|
223
263
|
test('addLineItem unknown product', async () => {
|
|
224
264
|
assert(cart, 'cart not created')
|
|
225
265
|
|
package/src/services/cart.ts
CHANGED
|
@@ -2,8 +2,9 @@ import AbstractService from './abstract'
|
|
|
2
2
|
import { Router } from 'express'
|
|
3
3
|
import { CartRepository } from '../repositories/cart'
|
|
4
4
|
import { AbstractStorage } from '../storage'
|
|
5
|
-
import { Cart, Order } from '@commercetools/platform-sdk'
|
|
5
|
+
import { Cart, CartDraft, Order } from '@commercetools/platform-sdk'
|
|
6
6
|
import { OrderRepository } from '../repositories/order'
|
|
7
|
+
import { getRepositoryContext } from '../repositories/helpers'
|
|
7
8
|
|
|
8
9
|
export class CartService extends AbstractService {
|
|
9
10
|
public repository: CartRepository
|
|
@@ -21,27 +22,32 @@ export class CartService extends AbstractService {
|
|
|
21
22
|
|
|
22
23
|
extraRoutes(parent: Router) {
|
|
23
24
|
parent.post('/replicate', (request, response) => {
|
|
25
|
+
const context = getRepositoryContext(request)
|
|
26
|
+
|
|
24
27
|
// @ts-ignore
|
|
25
28
|
const cartOrOrder: Cart | Order | null =
|
|
26
29
|
request.body.reference.typeId === 'order'
|
|
27
|
-
? this.orderRepository.get(
|
|
28
|
-
|
|
29
|
-
request.body.reference.id
|
|
30
|
-
)
|
|
31
|
-
: this.repository.get(
|
|
32
|
-
request.params.projectKey,
|
|
33
|
-
request.body.reference.id
|
|
34
|
-
)
|
|
30
|
+
? this.orderRepository.get(context, request.body.reference.id)
|
|
31
|
+
: this.repository.get(context, request.body.reference.id)
|
|
35
32
|
|
|
36
33
|
if (!cartOrOrder) {
|
|
37
34
|
return response.status(400).send()
|
|
38
35
|
}
|
|
39
36
|
|
|
40
|
-
const
|
|
37
|
+
const cartDraft: CartDraft = {
|
|
41
38
|
...cartOrOrder,
|
|
42
39
|
currency: cartOrOrder.totalPrice.currencyCode,
|
|
43
40
|
discountCodes: [],
|
|
44
|
-
|
|
41
|
+
lineItems: cartOrOrder.lineItems.map(lineItem => {
|
|
42
|
+
return {
|
|
43
|
+
...lineItem,
|
|
44
|
+
variantId: lineItem.variant.id,
|
|
45
|
+
sku: lineItem.variant.sku,
|
|
46
|
+
}
|
|
47
|
+
}),
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const newCart = this.repository.create(context, cartDraft)
|
|
45
51
|
|
|
46
52
|
return response.status(200).send(newCart)
|
|
47
53
|
})
|
|
@@ -3,6 +3,7 @@ import { Request, Response, Router } from 'express'
|
|
|
3
3
|
import { CustomObjectRepository } from '../repositories/custom-object'
|
|
4
4
|
import { AbstractStorage } from '../storage'
|
|
5
5
|
import { CustomObjectDraft } from '@commercetools/platform-sdk'
|
|
6
|
+
import { getRepositoryContext } from '../repositories/helpers'
|
|
6
7
|
|
|
7
8
|
export class CustomObjectService extends AbstractService {
|
|
8
9
|
public repository: CustomObjectRepository
|
|
@@ -24,7 +25,7 @@ export class CustomObjectService extends AbstractService {
|
|
|
24
25
|
|
|
25
26
|
getWithContainerAndKey(request: Request, response: Response) {
|
|
26
27
|
const result = this.repository.getWithContainerAndKey(
|
|
27
|
-
request
|
|
28
|
+
getRepositoryContext(request),
|
|
28
29
|
request.params.container,
|
|
29
30
|
request.params.key
|
|
30
31
|
)
|
|
@@ -42,13 +43,13 @@ export class CustomObjectService extends AbstractService {
|
|
|
42
43
|
container: request.params.container,
|
|
43
44
|
}
|
|
44
45
|
|
|
45
|
-
const result = this.repository.create(request
|
|
46
|
+
const result = this.repository.create(getRepositoryContext(request), draft)
|
|
46
47
|
return response.status(200).send(result)
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
deleteWithContainerAndKey(request: Request, response: Response) {
|
|
50
51
|
const current = this.repository.getWithContainerAndKey(
|
|
51
|
-
request
|
|
52
|
+
getRepositoryContext(request),
|
|
52
53
|
request.params.container,
|
|
53
54
|
request.params.key
|
|
54
55
|
)
|
|
@@ -57,7 +58,10 @@ export class CustomObjectService extends AbstractService {
|
|
|
57
58
|
return response.status(404).send('Not Found')
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
const result = this.repository.delete(
|
|
61
|
+
const result = this.repository.delete(
|
|
62
|
+
getRepositoryContext(request),
|
|
63
|
+
current.id
|
|
64
|
+
)
|
|
61
65
|
|
|
62
66
|
return response.status(200).send(result)
|
|
63
67
|
}
|
package/src/services/customer.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { CustomerRepository } from '../repositories/customer'
|
|
|
4
4
|
import { AbstractStorage } from '../storage'
|
|
5
5
|
import { getBaseResourceProperties } from '../helpers'
|
|
6
6
|
import { v4 as uuidv4 } from 'uuid'
|
|
7
|
+
import { getRepositoryContext } from '../repositories/helpers'
|
|
7
8
|
|
|
8
9
|
export class CustomerService extends AbstractService {
|
|
9
10
|
public repository: CustomerRepository
|
|
@@ -19,11 +20,13 @@ export class CustomerService extends AbstractService {
|
|
|
19
20
|
|
|
20
21
|
extraRoutes(parent: Router) {
|
|
21
22
|
parent.post('/password-token', (request, response) => {
|
|
22
|
-
const customer = this.repository.query(request
|
|
23
|
+
const customer = this.repository.query(getRepositoryContext(request), {
|
|
23
24
|
where: [`email="${request.body.email}"`],
|
|
24
25
|
})
|
|
26
|
+
// @ts-ignore
|
|
25
27
|
const ttlMinutes: number = request.params.ttlMinutes
|
|
26
|
-
?
|
|
28
|
+
? // @ts-ignore
|
|
29
|
+
+request.params.ttlMinutes
|
|
27
30
|
: 34560
|
|
28
31
|
const { version, ...rest } = getBaseResourceProperties()
|
|
29
32
|
|
|
@@ -2,6 +2,7 @@ import AbstractService from './abstract'
|
|
|
2
2
|
import { Request, Response, Router } from 'express'
|
|
3
3
|
import { AbstractStorage } from '../storage'
|
|
4
4
|
import { CustomerRepository } from '../repositories/customer'
|
|
5
|
+
import { getRepositoryContext } from '../repositories/helpers'
|
|
5
6
|
|
|
6
7
|
export class MyCustomerService extends AbstractService {
|
|
7
8
|
public repository: CustomerRepository
|
|
@@ -32,7 +33,7 @@ export class MyCustomerService extends AbstractService {
|
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
getMe(request: Request, response: Response) {
|
|
35
|
-
const resource = this.repository.getMe(request
|
|
36
|
+
const resource = this.repository.getMe(getRepositoryContext(request))
|
|
36
37
|
if (!resource) {
|
|
37
38
|
return response.status(404).send('Not found')
|
|
38
39
|
}
|
|
@@ -41,7 +42,10 @@ export class MyCustomerService extends AbstractService {
|
|
|
41
42
|
|
|
42
43
|
signUp(request: Request, response: Response) {
|
|
43
44
|
const draft = request.body
|
|
44
|
-
const resource = this.repository.create(
|
|
45
|
+
const resource = this.repository.create(
|
|
46
|
+
getRepositoryContext(request),
|
|
47
|
+
draft
|
|
48
|
+
)
|
|
45
49
|
const result = this._expandWithId(request, resource.id)
|
|
46
50
|
return response.status(this.createStatusCode).send({ customer: result })
|
|
47
51
|
}
|
|
@@ -50,7 +54,7 @@ export class MyCustomerService extends AbstractService {
|
|
|
50
54
|
const { email, password } = request.body
|
|
51
55
|
const encodedPassword = Buffer.from(password).toString('base64')
|
|
52
56
|
|
|
53
|
-
const result = this.repository.query(request
|
|
57
|
+
const result = this.repository.query(getRepositoryContext(request), {
|
|
54
58
|
where: [`email = "${email}"`, `password = "${encodedPassword}"`],
|
|
55
59
|
})
|
|
56
60
|
|
package/src/services/my-order.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import AbstractService from './abstract'
|
|
2
2
|
import { Router } from 'express'
|
|
3
3
|
import { AbstractStorage } from '../storage'
|
|
4
|
-
import {
|
|
4
|
+
import { MyOrderRepository } from '../repositories/my-order'
|
|
5
5
|
|
|
6
6
|
export class MyOrderService extends AbstractService {
|
|
7
|
-
public repository:
|
|
7
|
+
public repository: MyOrderRepository
|
|
8
8
|
|
|
9
9
|
constructor(parent: Router, storage: AbstractStorage) {
|
|
10
10
|
super(parent)
|
|
11
|
-
this.repository = new
|
|
11
|
+
this.repository = new MyOrderRepository(storage)
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
getBasePath() {
|
package/src/services/order.ts
CHANGED
|
@@ -2,6 +2,7 @@ import AbstractService from './abstract'
|
|
|
2
2
|
import { Request, Response, Router } from 'express'
|
|
3
3
|
import { OrderRepository } from '../repositories/order'
|
|
4
4
|
import { AbstractStorage } from '../storage'
|
|
5
|
+
import { getRepositoryContext } from '../repositories/helpers'
|
|
5
6
|
|
|
6
7
|
export class OrderService extends AbstractService {
|
|
7
8
|
public repository: OrderRepository
|
|
@@ -23,7 +24,7 @@ export class OrderService extends AbstractService {
|
|
|
23
24
|
import(request: Request, response: Response) {
|
|
24
25
|
const importDraft = request.body
|
|
25
26
|
const resource = this.repository.import(
|
|
26
|
-
request
|
|
27
|
+
getRepositoryContext(request),
|
|
27
28
|
importDraft
|
|
28
29
|
)
|
|
29
30
|
return response.status(200).send(resource)
|
|
@@ -31,7 +32,7 @@ export class OrderService extends AbstractService {
|
|
|
31
32
|
|
|
32
33
|
getWithOrderNumber(request: Request, response: Response) {
|
|
33
34
|
const resource = this.repository.getWithOrderNumber(
|
|
34
|
-
request
|
|
35
|
+
getRepositoryContext(request),
|
|
35
36
|
request.params.orderNumber,
|
|
36
37
|
request.query
|
|
37
38
|
)
|
|
@@ -2,6 +2,7 @@ import { ProductProjectionRepository } from './../repositories/product-projectio
|
|
|
2
2
|
import AbstractService from './abstract'
|
|
3
3
|
import { AbstractStorage } from '../storage'
|
|
4
4
|
import { Request, Response, Router } from 'express'
|
|
5
|
+
import { getRepositoryContext } from '../repositories/helpers'
|
|
5
6
|
|
|
6
7
|
export class ProductProjectionService extends AbstractService {
|
|
7
8
|
public repository: ProductProjectionRepository
|
|
@@ -21,7 +22,7 @@ export class ProductProjectionService extends AbstractService {
|
|
|
21
22
|
|
|
22
23
|
search(request: Request, response: Response) {
|
|
23
24
|
const resource = this.repository.search(
|
|
24
|
-
request
|
|
25
|
+
getRepositoryContext(request),
|
|
25
26
|
request.query
|
|
26
27
|
)
|
|
27
28
|
return response.status(200).send(resource)
|
|
@@ -2,6 +2,7 @@ import { ProductTypeRepository } from '../repositories/product-type'
|
|
|
2
2
|
import AbstractService from './abstract'
|
|
3
3
|
import { Request, Response, Router } from 'express'
|
|
4
4
|
import { AbstractStorage } from '../storage'
|
|
5
|
+
import { getRepositoryContext } from '../repositories/helpers'
|
|
5
6
|
|
|
6
7
|
export class ProductTypeService extends AbstractService {
|
|
7
8
|
public repository: ProductTypeRepository
|
|
@@ -21,7 +22,7 @@ export class ProductTypeService extends AbstractService {
|
|
|
21
22
|
|
|
22
23
|
getWithKey(request: Request, response: Response) {
|
|
23
24
|
const resource = this.repository.getWithKey(
|
|
24
|
-
request
|
|
25
|
+
getRepositoryContext(request),
|
|
25
26
|
request.params.key
|
|
26
27
|
)
|
|
27
28
|
if (resource) {
|
package/src/services/project.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { Request, Response } from 'express'
|
|
|
3
3
|
import { AbstractStorage } from '../storage'
|
|
4
4
|
import { ProjectRepository } from '../repositories/project'
|
|
5
5
|
import { Update } from '@commercetools/platform-sdk'
|
|
6
|
+
import { getRepositoryContext } from '../repositories/helpers'
|
|
6
7
|
|
|
7
8
|
export class ProjectService {
|
|
8
9
|
public repository: ProjectRepository
|
|
@@ -19,20 +20,20 @@ export class ProjectService {
|
|
|
19
20
|
|
|
20
21
|
get(request: Request, response: Response) {
|
|
21
22
|
const projectKey = request.params.projectKey
|
|
22
|
-
const project = this.repository.get(
|
|
23
|
+
const project = this.repository.get(getRepositoryContext(request))
|
|
23
24
|
return response.status(200).send(project)
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
post(request: Request, response: Response) {
|
|
27
28
|
const updateRequest: Update = request.body
|
|
28
|
-
const project = this.repository.get(request
|
|
29
|
+
const project = this.repository.get(getRepositoryContext(request))
|
|
29
30
|
|
|
30
31
|
if (!project) {
|
|
31
32
|
return response.status(404).send({})
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
this.repository.processUpdateActions(
|
|
35
|
-
request
|
|
36
|
+
getRepositoryContext(request),
|
|
36
37
|
project,
|
|
37
38
|
updateRequest.actions
|
|
38
39
|
)
|
package/src/services/store.ts
CHANGED
|
@@ -2,6 +2,7 @@ import AbstractService from './abstract'
|
|
|
2
2
|
import { Router, Request, Response } from 'express'
|
|
3
3
|
import { StoreRepository } from '../repositories/store'
|
|
4
4
|
import { AbstractStorage } from '../storage'
|
|
5
|
+
import { getRepositoryContext } from '../repositories/helpers'
|
|
5
6
|
|
|
6
7
|
export class StoreService extends AbstractService {
|
|
7
8
|
public repository: StoreRepository
|
|
@@ -21,7 +22,7 @@ export class StoreService extends AbstractService {
|
|
|
21
22
|
|
|
22
23
|
getWithKey(request: Request, response: Response) {
|
|
23
24
|
const resource = this.repository.getWithKey(
|
|
24
|
-
request
|
|
25
|
+
getRepositoryContext(request),
|
|
25
26
|
request.params.key
|
|
26
27
|
)
|
|
27
28
|
if (resource) {
|
|
@@ -2,6 +2,7 @@ import { TaxCategoryRepository } from '../repositories/tax-category'
|
|
|
2
2
|
import AbstractService from './abstract'
|
|
3
3
|
import { AbstractStorage } from '../storage'
|
|
4
4
|
import { Request, Response, Router } from 'express'
|
|
5
|
+
import { getRepositoryContext } from '../repositories/helpers'
|
|
5
6
|
|
|
6
7
|
export class TaxCategoryService extends AbstractService {
|
|
7
8
|
public repository: TaxCategoryRepository
|
|
@@ -21,7 +22,7 @@ export class TaxCategoryService extends AbstractService {
|
|
|
21
22
|
|
|
22
23
|
getWithKey(request: Request, response: Response) {
|
|
23
24
|
const resource = this.repository.getWithKey(
|
|
24
|
-
request
|
|
25
|
+
getRepositoryContext(request),
|
|
25
26
|
request.params.key
|
|
26
27
|
)
|
|
27
28
|
if (resource) {
|