@labdigital/commercetools-mock 0.6.1 → 0.6.4
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 +365 -332
- 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 +365 -332
- package/dist/commercetools-mock.esm.js.map +1 -1
- package/dist/projectAPI.d.ts +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 +12 -12
- 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/dist/storage.d.ts +1 -1
- package/package.json +1 -1
- package/src/ctMock.ts +6 -0
- package/src/projectAPI.ts +1 -1
- package/src/repositories/abstract.ts +37 -17
- package/src/repositories/cart-discount.ts +11 -11
- package/src/repositories/cart.ts +28 -19
- 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/errors.ts +3 -3
- 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 +17 -9
- package/src/services/cart.ts +6 -12
- 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 -4
- package/src/services/store.ts +2 -1
- package/src/services/tax-category.ts +2 -1
- package/src/storage.ts +1 -1
|
@@ -22,20 +22,30 @@ export type GetParams = {
|
|
|
22
22
|
expand?: string[]
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
export type RepositoryContext = {
|
|
26
|
+
projectKey: string
|
|
27
|
+
storeKey?: string
|
|
28
|
+
}
|
|
25
29
|
export abstract class AbstractRepository {
|
|
26
30
|
protected _storage: AbstractStorage
|
|
27
31
|
protected actions: Partial<
|
|
28
|
-
Record<
|
|
32
|
+
Record<
|
|
33
|
+
any,
|
|
34
|
+
(context: RepositoryContext, resource: any, action: any) => void
|
|
35
|
+
>
|
|
29
36
|
> = {}
|
|
30
37
|
|
|
31
38
|
constructor(storage: AbstractStorage) {
|
|
32
39
|
this._storage = storage
|
|
33
40
|
}
|
|
34
41
|
|
|
35
|
-
abstract save(
|
|
42
|
+
abstract save(
|
|
43
|
+
{ projectKey }: RepositoryContext,
|
|
44
|
+
resource: BaseResource | Project
|
|
45
|
+
): void
|
|
36
46
|
|
|
37
47
|
processUpdateActions(
|
|
38
|
-
|
|
48
|
+
context: RepositoryContext,
|
|
39
49
|
resource: BaseResource | Project,
|
|
40
50
|
actions: UpdateAction[]
|
|
41
51
|
): BaseResource {
|
|
@@ -49,18 +59,18 @@ export abstract class AbstractRepository {
|
|
|
49
59
|
console.error(`No mock implemented for update action ${action.action}`)
|
|
50
60
|
return
|
|
51
61
|
}
|
|
52
|
-
updateFunc(
|
|
62
|
+
updateFunc(context, modifiedResource, action)
|
|
53
63
|
})
|
|
54
64
|
|
|
55
65
|
if (!deepEqual(modifiedResource, resource)) {
|
|
56
|
-
this.save(
|
|
66
|
+
this.save(context, modifiedResource)
|
|
57
67
|
}
|
|
58
68
|
return modifiedResource
|
|
59
69
|
}
|
|
60
70
|
}
|
|
61
71
|
|
|
62
72
|
export abstract class AbstractResourceRepository extends AbstractRepository {
|
|
63
|
-
abstract create(
|
|
73
|
+
abstract create(context: RepositoryContext, draft: any): BaseResource
|
|
64
74
|
abstract getTypeId(): RepositoryTypes
|
|
65
75
|
|
|
66
76
|
constructor(storage: AbstractStorage) {
|
|
@@ -68,8 +78,8 @@ export abstract class AbstractResourceRepository extends AbstractRepository {
|
|
|
68
78
|
this._storage.assertStorage(this.getTypeId())
|
|
69
79
|
}
|
|
70
80
|
|
|
71
|
-
query(
|
|
72
|
-
return this._storage.query(projectKey, this.getTypeId(), {
|
|
81
|
+
query(context: RepositoryContext, params: QueryParams = {}) {
|
|
82
|
+
return this._storage.query(context.projectKey, this.getTypeId(), {
|
|
73
83
|
expand: params.expand,
|
|
74
84
|
where: params.where,
|
|
75
85
|
offset: params.offset,
|
|
@@ -78,31 +88,41 @@ export abstract class AbstractResourceRepository extends AbstractRepository {
|
|
|
78
88
|
}
|
|
79
89
|
|
|
80
90
|
get(
|
|
81
|
-
|
|
91
|
+
context: RepositoryContext,
|
|
82
92
|
id: string,
|
|
83
93
|
params: GetParams = {}
|
|
84
94
|
): BaseResource | null {
|
|
85
|
-
return this._storage.get(projectKey, this.getTypeId(), id, params)
|
|
95
|
+
return this._storage.get(context.projectKey, this.getTypeId(), id, params)
|
|
86
96
|
}
|
|
87
97
|
|
|
88
98
|
getByKey(
|
|
89
|
-
|
|
99
|
+
context: RepositoryContext,
|
|
90
100
|
key: string,
|
|
91
101
|
params: GetParams = {}
|
|
92
102
|
): BaseResource | null {
|
|
93
|
-
return this._storage.getByKey(
|
|
103
|
+
return this._storage.getByKey(
|
|
104
|
+
context.projectKey,
|
|
105
|
+
this.getTypeId(),
|
|
106
|
+
key,
|
|
107
|
+
params
|
|
108
|
+
)
|
|
94
109
|
}
|
|
95
110
|
|
|
96
111
|
delete(
|
|
97
|
-
|
|
112
|
+
context: RepositoryContext,
|
|
98
113
|
id: string,
|
|
99
114
|
params: GetParams = {}
|
|
100
115
|
): BaseResource | null {
|
|
101
|
-
return this._storage.delete(
|
|
116
|
+
return this._storage.delete(
|
|
117
|
+
context.projectKey,
|
|
118
|
+
this.getTypeId(),
|
|
119
|
+
id,
|
|
120
|
+
params
|
|
121
|
+
)
|
|
102
122
|
}
|
|
103
123
|
|
|
104
|
-
save(
|
|
105
|
-
const current = this.get(
|
|
124
|
+
save(context: RepositoryContext, resource: BaseResource) {
|
|
125
|
+
const current = this.get(context, resource.id)
|
|
106
126
|
|
|
107
127
|
if (current) {
|
|
108
128
|
checkConcurrentModification(current, resource.version)
|
|
@@ -120,6 +140,6 @@ export abstract class AbstractResourceRepository extends AbstractRepository {
|
|
|
120
140
|
|
|
121
141
|
// @ts-ignore
|
|
122
142
|
resource.version += 1
|
|
123
|
-
this._storage.add(projectKey, this.getTypeId(), resource as any)
|
|
143
|
+
this._storage.add(context.projectKey, this.getTypeId(), resource as any)
|
|
124
144
|
}
|
|
125
145
|
}
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
} from '@commercetools/platform-sdk'
|
|
19
19
|
import { Writable } from 'types'
|
|
20
20
|
import { getBaseResourceProperties } from '../helpers'
|
|
21
|
-
import { AbstractResourceRepository } from './abstract'
|
|
21
|
+
import { AbstractResourceRepository, RepositoryContext } from './abstract'
|
|
22
22
|
import { createTypedMoney } from './helpers'
|
|
23
23
|
|
|
24
24
|
export class CartDiscountRepository extends AbstractResourceRepository {
|
|
@@ -26,7 +26,7 @@ export class CartDiscountRepository extends AbstractResourceRepository {
|
|
|
26
26
|
return 'cart-discount'
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
create(
|
|
29
|
+
create(context: RepositoryContext, draft: CartDiscountDraft): CartDiscount {
|
|
30
30
|
const resource: CartDiscount = {
|
|
31
31
|
...getBaseResourceProperties(),
|
|
32
32
|
key: draft.key,
|
|
@@ -43,7 +43,7 @@ export class CartDiscountRepository extends AbstractResourceRepository {
|
|
|
43
43
|
validUntil: draft.validUntil,
|
|
44
44
|
value: this.transformValueDraft(draft.value),
|
|
45
45
|
}
|
|
46
|
-
this.save(
|
|
46
|
+
this.save(context, resource)
|
|
47
47
|
return resource
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -80,42 +80,42 @@ export class CartDiscountRepository extends AbstractResourceRepository {
|
|
|
80
80
|
Record<
|
|
81
81
|
CartDiscountUpdateAction['action'],
|
|
82
82
|
(
|
|
83
|
-
|
|
83
|
+
context: RepositoryContext,
|
|
84
84
|
resource: Writable<CartDiscount>,
|
|
85
85
|
action: any
|
|
86
86
|
) => void
|
|
87
87
|
>
|
|
88
88
|
> = {
|
|
89
89
|
setKey: (
|
|
90
|
-
|
|
90
|
+
context: RepositoryContext,
|
|
91
91
|
resource: Writable<CartDiscount>,
|
|
92
92
|
{ key }: CartDiscountSetKeyAction
|
|
93
93
|
) => {
|
|
94
94
|
resource.key = key
|
|
95
95
|
},
|
|
96
96
|
setDescription: (
|
|
97
|
-
|
|
97
|
+
context: RepositoryContext,
|
|
98
98
|
resource: Writable<CartDiscount>,
|
|
99
99
|
{ description }: CartDiscountSetDescriptionAction
|
|
100
100
|
) => {
|
|
101
101
|
resource.description = description
|
|
102
102
|
},
|
|
103
103
|
setValidFrom: (
|
|
104
|
-
|
|
104
|
+
context: RepositoryContext,
|
|
105
105
|
resource: Writable<CartDiscount>,
|
|
106
106
|
{ validFrom }: CartDiscountSetValidFromAction
|
|
107
107
|
) => {
|
|
108
108
|
resource.validFrom = validFrom
|
|
109
109
|
},
|
|
110
110
|
setValidUntil: (
|
|
111
|
-
|
|
111
|
+
context: RepositoryContext,
|
|
112
112
|
resource: Writable<CartDiscount>,
|
|
113
113
|
{ validUntil }: CartDiscountSetValidUntilAction
|
|
114
114
|
) => {
|
|
115
115
|
resource.validUntil = validUntil
|
|
116
116
|
},
|
|
117
117
|
setValidFromAndUntil: (
|
|
118
|
-
|
|
118
|
+
context: RepositoryContext,
|
|
119
119
|
resource: Writable<CartDiscount>,
|
|
120
120
|
{ validFrom, validUntil }: CartDiscountSetValidFromAndUntilAction
|
|
121
121
|
) => {
|
|
@@ -123,14 +123,14 @@ export class CartDiscountRepository extends AbstractResourceRepository {
|
|
|
123
123
|
resource.validUntil = validUntil
|
|
124
124
|
},
|
|
125
125
|
changeSortOrder: (
|
|
126
|
-
|
|
126
|
+
context: RepositoryContext,
|
|
127
127
|
resource: Writable<CartDiscount>,
|
|
128
128
|
{ sortOrder }: CartDiscountChangeSortOrderAction
|
|
129
129
|
) => {
|
|
130
130
|
resource.sortOrder = sortOrder
|
|
131
131
|
},
|
|
132
132
|
changeIsActive: (
|
|
133
|
-
|
|
133
|
+
context: RepositoryContext,
|
|
134
134
|
resource: Writable<CartDiscount>,
|
|
135
135
|
{ isActive }: CartDiscountChangeIsActiveAction
|
|
136
136
|
) => {
|
package/src/repositories/cart.ts
CHANGED
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
} from '@commercetools/platform-sdk'
|
|
23
23
|
import { v4 as uuidv4 } from 'uuid'
|
|
24
24
|
import { getBaseResourceProperties } from '../helpers'
|
|
25
|
-
import { AbstractResourceRepository } from './abstract'
|
|
25
|
+
import { AbstractResourceRepository, RepositoryContext } from './abstract'
|
|
26
26
|
import { createCustomFields } from './helpers'
|
|
27
27
|
import { Writable } from '../types'
|
|
28
28
|
import { CommercetoolsError } from '../exceptions'
|
|
@@ -32,11 +32,11 @@ export class CartRepository extends AbstractResourceRepository {
|
|
|
32
32
|
return 'cart'
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
create(
|
|
35
|
+
create(context: RepositoryContext, draft: CartDraft): Cart {
|
|
36
36
|
const lineItems =
|
|
37
37
|
draft.lineItems?.map(draftLineItem =>
|
|
38
38
|
this.draftLineItemtoLineItem(
|
|
39
|
-
projectKey,
|
|
39
|
+
context.projectKey,
|
|
40
40
|
draftLineItem,
|
|
41
41
|
draft.currency,
|
|
42
42
|
draft.country
|
|
@@ -61,13 +61,17 @@ export class CartRepository extends AbstractResourceRepository {
|
|
|
61
61
|
locale: draft.locale,
|
|
62
62
|
country: draft.country,
|
|
63
63
|
origin: draft.origin ?? 'Customer',
|
|
64
|
-
custom: createCustomFields(
|
|
64
|
+
custom: createCustomFields(
|
|
65
|
+
draft.custom,
|
|
66
|
+
context.projectKey,
|
|
67
|
+
this._storage
|
|
68
|
+
),
|
|
65
69
|
}
|
|
66
70
|
|
|
67
71
|
// @ts-ignore
|
|
68
72
|
resource.totalPrice.centAmount = calculateCartTotalPrice(resource)
|
|
69
73
|
|
|
70
|
-
this.save(
|
|
74
|
+
this.save(context, resource)
|
|
71
75
|
return resource
|
|
72
76
|
}
|
|
73
77
|
|
|
@@ -85,7 +89,7 @@ export class CartRepository extends AbstractResourceRepository {
|
|
|
85
89
|
|
|
86
90
|
actions = {
|
|
87
91
|
addLineItem: (
|
|
88
|
-
|
|
92
|
+
context: RepositoryContext,
|
|
89
93
|
resource: Writable<Cart>,
|
|
90
94
|
{ productId, variantId, sku, quantity = 1 }: CartAddLineItemAction
|
|
91
95
|
) => {
|
|
@@ -94,10 +98,15 @@ export class CartRepository extends AbstractResourceRepository {
|
|
|
94
98
|
|
|
95
99
|
if (productId && variantId) {
|
|
96
100
|
// Fetch product and variant by ID
|
|
97
|
-
product = this._storage.get(
|
|
101
|
+
product = this._storage.get(
|
|
102
|
+
context.projectKey,
|
|
103
|
+
'product',
|
|
104
|
+
productId,
|
|
105
|
+
{}
|
|
106
|
+
)
|
|
98
107
|
} else if (sku) {
|
|
99
108
|
// Fetch product and variant by SKU
|
|
100
|
-
const items = this._storage.query(projectKey, 'product', {
|
|
109
|
+
const items = this._storage.query(context.projectKey, 'product', {
|
|
101
110
|
where: [
|
|
102
111
|
`masterData(current(masterVariant(sku="${sku}"))) or masterData(current(variants(sku="${sku}")))`,
|
|
103
112
|
],
|
|
@@ -196,7 +205,7 @@ export class CartRepository extends AbstractResourceRepository {
|
|
|
196
205
|
resource.totalPrice.centAmount = calculateCartTotalPrice(resource)
|
|
197
206
|
},
|
|
198
207
|
removeLineItem: (
|
|
199
|
-
|
|
208
|
+
context: RepositoryContext,
|
|
200
209
|
resource: Writable<Cart>,
|
|
201
210
|
{ lineItemId, quantity }: CartRemoveLineItemAction
|
|
202
211
|
) => {
|
|
@@ -228,19 +237,19 @@ export class CartRepository extends AbstractResourceRepository {
|
|
|
228
237
|
resource.totalPrice.centAmount = calculateCartTotalPrice(resource)
|
|
229
238
|
},
|
|
230
239
|
setBillingAddress: (
|
|
231
|
-
|
|
240
|
+
context: RepositoryContext,
|
|
232
241
|
resource: Writable<Cart>,
|
|
233
242
|
{ address }: CartSetBillingAddressAction
|
|
234
243
|
) => {
|
|
235
244
|
resource.billingAddress = address
|
|
236
245
|
},
|
|
237
246
|
setShippingMethod: (
|
|
238
|
-
|
|
247
|
+
context: RepositoryContext,
|
|
239
248
|
resource: Writable<Cart>,
|
|
240
249
|
{ shippingMethod }: CartSetShippingMethodAction
|
|
241
250
|
) => {
|
|
242
251
|
const resolvedType = this._storage.getByResourceIdentifier(
|
|
243
|
-
projectKey,
|
|
252
|
+
context.projectKey,
|
|
244
253
|
//@ts-ignore
|
|
245
254
|
shippingMethod
|
|
246
255
|
)
|
|
@@ -257,21 +266,21 @@ export class CartRepository extends AbstractResourceRepository {
|
|
|
257
266
|
}
|
|
258
267
|
},
|
|
259
268
|
setCountry: (
|
|
260
|
-
|
|
269
|
+
context: RepositoryContext,
|
|
261
270
|
resource: Writable<Cart>,
|
|
262
271
|
{ country }: CartSetCountryAction
|
|
263
272
|
) => {
|
|
264
273
|
resource.country = country
|
|
265
274
|
},
|
|
266
275
|
setCustomerEmail: (
|
|
267
|
-
|
|
276
|
+
context: RepositoryContext,
|
|
268
277
|
resource: Writable<Cart>,
|
|
269
278
|
{ email }: CartSetCustomerEmailAction
|
|
270
279
|
) => {
|
|
271
280
|
resource.customerEmail = email
|
|
272
281
|
},
|
|
273
282
|
setCustomField: (
|
|
274
|
-
|
|
283
|
+
context: RepositoryContext,
|
|
275
284
|
resource: Cart,
|
|
276
285
|
{ name, value }: CartSetCustomFieldAction
|
|
277
286
|
) => {
|
|
@@ -281,7 +290,7 @@ export class CartRepository extends AbstractResourceRepository {
|
|
|
281
290
|
resource.custom.fields[name] = value
|
|
282
291
|
},
|
|
283
292
|
setCustomType: (
|
|
284
|
-
|
|
293
|
+
context: RepositoryContext,
|
|
285
294
|
resource: Writable<Cart>,
|
|
286
295
|
{ type, fields }: CartSetCustomTypeAction
|
|
287
296
|
) => {
|
|
@@ -289,7 +298,7 @@ export class CartRepository extends AbstractResourceRepository {
|
|
|
289
298
|
resource.custom = undefined
|
|
290
299
|
} else {
|
|
291
300
|
const resolvedType = this._storage.getByResourceIdentifier(
|
|
292
|
-
projectKey,
|
|
301
|
+
context.projectKey,
|
|
293
302
|
type
|
|
294
303
|
)
|
|
295
304
|
if (!resolvedType) {
|
|
@@ -306,14 +315,14 @@ export class CartRepository extends AbstractResourceRepository {
|
|
|
306
315
|
}
|
|
307
316
|
},
|
|
308
317
|
setLocale: (
|
|
309
|
-
|
|
318
|
+
context: RepositoryContext,
|
|
310
319
|
resource: Writable<Cart>,
|
|
311
320
|
{ locale }: CartSetLocaleAction
|
|
312
321
|
) => {
|
|
313
322
|
resource.locale = locale
|
|
314
323
|
},
|
|
315
324
|
setShippingAddress: (
|
|
316
|
-
|
|
325
|
+
context: RepositoryContext,
|
|
317
326
|
resource: Writable<Cart>,
|
|
318
327
|
{ address }: CartSetShippingAddressAction
|
|
319
328
|
) => {
|
|
@@ -16,14 +16,14 @@ import {
|
|
|
16
16
|
import { Writable } from 'types'
|
|
17
17
|
import { getBaseResourceProperties } from '../helpers'
|
|
18
18
|
import { createCustomFields } from './helpers'
|
|
19
|
-
import { AbstractResourceRepository } from './abstract'
|
|
19
|
+
import { AbstractResourceRepository, RepositoryContext } from './abstract'
|
|
20
20
|
|
|
21
21
|
export class CategoryRepository extends AbstractResourceRepository {
|
|
22
22
|
getTypeId(): ReferenceTypeId {
|
|
23
23
|
return 'category'
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
create(
|
|
26
|
+
create(context: RepositoryContext, draft: CategoryDraft): Category {
|
|
27
27
|
const resource: Category = {
|
|
28
28
|
...getBaseResourceProperties(),
|
|
29
29
|
key: draft.key,
|
|
@@ -44,17 +44,21 @@ export class CategoryRepository extends AbstractResourceRepository {
|
|
|
44
44
|
sources: d.sources,
|
|
45
45
|
tags: d.tags,
|
|
46
46
|
key: d.key,
|
|
47
|
-
custom: createCustomFields(
|
|
47
|
+
custom: createCustomFields(
|
|
48
|
+
draft.custom,
|
|
49
|
+
context.projectKey,
|
|
50
|
+
this._storage
|
|
51
|
+
),
|
|
48
52
|
}
|
|
49
53
|
}) || [],
|
|
50
54
|
}
|
|
51
|
-
this.save(
|
|
55
|
+
this.save(context, resource)
|
|
52
56
|
return resource
|
|
53
57
|
}
|
|
54
58
|
|
|
55
59
|
actions = {
|
|
56
60
|
changeAssetName: (
|
|
57
|
-
|
|
61
|
+
context: RepositoryContext,
|
|
58
62
|
resource: Writable<Category>,
|
|
59
63
|
{ assetId, assetKey, name }: CategoryChangeAssetNameAction
|
|
60
64
|
) => {
|
|
@@ -68,21 +72,21 @@ export class CategoryRepository extends AbstractResourceRepository {
|
|
|
68
72
|
})
|
|
69
73
|
},
|
|
70
74
|
changeSlug: (
|
|
71
|
-
|
|
75
|
+
context: RepositoryContext,
|
|
72
76
|
resource: Writable<Category>,
|
|
73
77
|
{ slug }: CategoryChangeSlugAction
|
|
74
78
|
) => {
|
|
75
79
|
resource.slug = slug
|
|
76
80
|
},
|
|
77
81
|
setKey: (
|
|
78
|
-
|
|
82
|
+
context: RepositoryContext,
|
|
79
83
|
resource: Writable<Category>,
|
|
80
84
|
{ key }: CategorySetKeyAction
|
|
81
85
|
) => {
|
|
82
86
|
resource.key = key
|
|
83
87
|
},
|
|
84
88
|
setAssetDescription: (
|
|
85
|
-
|
|
89
|
+
context: RepositoryContext,
|
|
86
90
|
resource: Writable<Category>,
|
|
87
91
|
{ assetId, assetKey, description }: CategorySetAssetDescriptionAction
|
|
88
92
|
) => {
|
|
@@ -96,7 +100,7 @@ export class CategoryRepository extends AbstractResourceRepository {
|
|
|
96
100
|
})
|
|
97
101
|
},
|
|
98
102
|
setAssetSources: (
|
|
99
|
-
|
|
103
|
+
context: RepositoryContext,
|
|
100
104
|
resource: Writable<Category>,
|
|
101
105
|
{ assetId, assetKey, sources }: CategorySetAssetSourcesAction
|
|
102
106
|
) => {
|
|
@@ -110,28 +114,28 @@ export class CategoryRepository extends AbstractResourceRepository {
|
|
|
110
114
|
})
|
|
111
115
|
},
|
|
112
116
|
setDescription: (
|
|
113
|
-
|
|
117
|
+
context: RepositoryContext,
|
|
114
118
|
resource: Writable<Category>,
|
|
115
119
|
{ description }: CategorySetDescriptionAction
|
|
116
120
|
) => {
|
|
117
121
|
resource.description = description
|
|
118
122
|
},
|
|
119
123
|
setMetaDescription: (
|
|
120
|
-
|
|
124
|
+
context: RepositoryContext,
|
|
121
125
|
resource: Writable<Category>,
|
|
122
126
|
{ metaDescription }: CategorySetMetaDescriptionAction
|
|
123
127
|
) => {
|
|
124
128
|
resource.metaDescription = metaDescription
|
|
125
129
|
},
|
|
126
130
|
setMetaKeywords: (
|
|
127
|
-
|
|
131
|
+
context: RepositoryContext,
|
|
128
132
|
resource: Writable<Category>,
|
|
129
133
|
{ metaKeywords }: CategorySetMetaKeywordsAction
|
|
130
134
|
) => {
|
|
131
135
|
resource.metaKeywords = metaKeywords
|
|
132
136
|
},
|
|
133
137
|
setMetaTitle: (
|
|
134
|
-
|
|
138
|
+
context: RepositoryContext,
|
|
135
139
|
resource: Writable<Category>,
|
|
136
140
|
{ metaTitle }: CategorySetMetaTitleAction
|
|
137
141
|
) => {
|
|
@@ -4,20 +4,20 @@ import {
|
|
|
4
4
|
ReferenceTypeId,
|
|
5
5
|
} from '@commercetools/platform-sdk'
|
|
6
6
|
import { getBaseResourceProperties } from '../helpers'
|
|
7
|
-
import { AbstractResourceRepository } from './abstract'
|
|
7
|
+
import { AbstractResourceRepository, RepositoryContext } from './abstract'
|
|
8
8
|
|
|
9
9
|
export class ChannelRepository extends AbstractResourceRepository {
|
|
10
10
|
getTypeId(): ReferenceTypeId {
|
|
11
11
|
return 'channel'
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
create(
|
|
14
|
+
create(context: RepositoryContext, draft: ChannelDraft): Channel {
|
|
15
15
|
const resource: Channel = {
|
|
16
16
|
...getBaseResourceProperties(),
|
|
17
17
|
key: draft.key,
|
|
18
18
|
roles: draft.roles || [],
|
|
19
19
|
}
|
|
20
|
-
this.save(
|
|
20
|
+
this.save(context, resource)
|
|
21
21
|
return resource
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
ReferenceTypeId,
|
|
5
5
|
} from '@commercetools/platform-sdk'
|
|
6
6
|
import { checkConcurrentModification } from './errors'
|
|
7
|
-
import { AbstractResourceRepository } from './abstract'
|
|
7
|
+
import { AbstractResourceRepository, RepositoryContext } from './abstract'
|
|
8
8
|
import { Writable } from '../types'
|
|
9
9
|
import { getBaseResourceProperties } from '../helpers'
|
|
10
10
|
|
|
@@ -13,9 +13,12 @@ export class CustomObjectRepository extends AbstractResourceRepository {
|
|
|
13
13
|
return 'key-value-document'
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
create(
|
|
16
|
+
create(
|
|
17
|
+
context: RepositoryContext,
|
|
18
|
+
draft: Writable<CustomObjectDraft>
|
|
19
|
+
): CustomObject {
|
|
17
20
|
const current = this.getWithContainerAndKey(
|
|
18
|
-
|
|
21
|
+
context,
|
|
19
22
|
draft.container,
|
|
20
23
|
draft.key
|
|
21
24
|
)
|
|
@@ -47,14 +50,19 @@ export class CustomObjectRepository extends AbstractResourceRepository {
|
|
|
47
50
|
value: draft.value,
|
|
48
51
|
}
|
|
49
52
|
|
|
50
|
-
this.save(
|
|
53
|
+
this.save(context, resource)
|
|
51
54
|
return resource
|
|
52
55
|
}
|
|
53
56
|
|
|
54
|
-
getWithContainerAndKey(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
getWithContainerAndKey(
|
|
58
|
+
context: RepositoryContext,
|
|
59
|
+
container: string,
|
|
60
|
+
key: string
|
|
61
|
+
) {
|
|
62
|
+
const items = this._storage.all(
|
|
63
|
+
context.projectKey,
|
|
64
|
+
this.getTypeId()
|
|
65
|
+
) as Array<CustomObject>
|
|
58
66
|
return items.find(item => item.container === container && item.key === key)
|
|
59
67
|
}
|
|
60
68
|
}
|
|
@@ -7,32 +7,32 @@ import {
|
|
|
7
7
|
} from '@commercetools/platform-sdk'
|
|
8
8
|
import { Writable } from 'types'
|
|
9
9
|
import { getBaseResourceProperties } from '../helpers'
|
|
10
|
-
import { AbstractResourceRepository } from './abstract'
|
|
10
|
+
import { AbstractResourceRepository, RepositoryContext } from './abstract'
|
|
11
11
|
|
|
12
12
|
export class CustomerGroupRepository extends AbstractResourceRepository {
|
|
13
13
|
getTypeId(): ReferenceTypeId {
|
|
14
14
|
return 'customer'
|
|
15
15
|
}
|
|
16
|
-
create(
|
|
16
|
+
create(context: RepositoryContext, draft: CustomerGroupDraft): CustomerGroup {
|
|
17
17
|
const resource: CustomerGroup = {
|
|
18
18
|
...getBaseResourceProperties(),
|
|
19
19
|
key: draft.key,
|
|
20
20
|
name: draft.groupName,
|
|
21
21
|
}
|
|
22
|
-
this.save(
|
|
22
|
+
this.save(context, resource)
|
|
23
23
|
return resource
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
actions = {
|
|
27
27
|
setKey: (
|
|
28
|
-
|
|
28
|
+
context: RepositoryContext,
|
|
29
29
|
resource: Writable<CustomerGroup>,
|
|
30
30
|
{ key }: CustomerGroupSetKeyAction
|
|
31
31
|
) => {
|
|
32
32
|
resource.key = key
|
|
33
33
|
},
|
|
34
34
|
changeName: (
|
|
35
|
-
|
|
35
|
+
context: RepositoryContext,
|
|
36
36
|
resource: Writable<CustomerGroup>,
|
|
37
37
|
{ name }: CustomerGroupChangeNameAction
|
|
38
38
|
) => {
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
} from '@commercetools/platform-sdk'
|
|
7
7
|
import { Writable } from 'types'
|
|
8
8
|
import { getBaseResourceProperties } from '../helpers'
|
|
9
|
-
import { AbstractResourceRepository } from './abstract'
|
|
9
|
+
import { AbstractResourceRepository, RepositoryContext } from './abstract'
|
|
10
10
|
|
|
11
11
|
export class CustomerRepository extends AbstractResourceRepository {
|
|
12
12
|
getTypeId(): ReferenceTypeId {
|
|
13
13
|
return 'customer'
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
create(
|
|
16
|
+
create(context: RepositoryContext, draft: CustomerDraft): Customer {
|
|
17
17
|
const resource: Customer = {
|
|
18
18
|
...getBaseResourceProperties(),
|
|
19
19
|
email: draft.email,
|
|
@@ -23,12 +23,16 @@ export class CustomerRepository extends AbstractResourceRepository {
|
|
|
23
23
|
isEmailVerified: draft.isEmailVerified || false,
|
|
24
24
|
addresses: [],
|
|
25
25
|
}
|
|
26
|
-
this.save(
|
|
26
|
+
this.save(context, resource)
|
|
27
27
|
return resource
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
getMe(
|
|
31
|
-
const results = this._storage.query(
|
|
30
|
+
getMe(context: RepositoryContext): Customer | undefined {
|
|
31
|
+
const results = this._storage.query(
|
|
32
|
+
context.projectKey,
|
|
33
|
+
this.getTypeId(),
|
|
34
|
+
{}
|
|
35
|
+
) // grab the first customer you can find
|
|
32
36
|
if (results.count > 0) {
|
|
33
37
|
return results.results[0] as Customer
|
|
34
38
|
}
|
|
@@ -38,7 +42,7 @@ export class CustomerRepository extends AbstractResourceRepository {
|
|
|
38
42
|
|
|
39
43
|
actions = {
|
|
40
44
|
changeEmail: (
|
|
41
|
-
|
|
45
|
+
_context: RepositoryContext,
|
|
42
46
|
resource: Writable<Customer>,
|
|
43
47
|
{ email }: CustomerChangeEmailAction
|
|
44
48
|
) => {
|