@labdigital/commercetools-mock 0.5.23 → 0.6.2

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.
Files changed (77) hide show
  1. package/dist/commercetools-mock.cjs.development.js +364 -298
  2. package/dist/commercetools-mock.cjs.development.js.map +1 -1
  3. package/dist/commercetools-mock.cjs.production.min.js +1 -1
  4. package/dist/commercetools-mock.cjs.production.min.js.map +1 -1
  5. package/dist/commercetools-mock.esm.js +364 -298
  6. package/dist/commercetools-mock.esm.js.map +1 -1
  7. package/dist/repositories/abstract.d.ts +13 -9
  8. package/dist/repositories/cart-discount.d.ts +3 -3
  9. package/dist/repositories/cart.d.ts +13 -13
  10. package/dist/repositories/category.d.ts +11 -11
  11. package/dist/repositories/channel.d.ts +2 -2
  12. package/dist/repositories/custom-object.d.ts +3 -3
  13. package/dist/repositories/customer-group.d.ts +4 -4
  14. package/dist/repositories/customer.d.ts +4 -4
  15. package/dist/repositories/discount-code.d.ts +3 -3
  16. package/dist/repositories/extension.d.ts +3 -3
  17. package/dist/repositories/helpers.d.ts +3 -0
  18. package/dist/repositories/inventory-entry.d.ts +7 -7
  19. package/dist/repositories/my-order.d.ts +6 -0
  20. package/dist/repositories/order.d.ts +18 -17
  21. package/dist/repositories/payment.d.ts +8 -8
  22. package/dist/repositories/product-projection.d.ts +3 -3
  23. package/dist/repositories/product-type.d.ts +5 -5
  24. package/dist/repositories/product.d.ts +4 -4
  25. package/dist/repositories/project.d.ts +4 -4
  26. package/dist/repositories/shipping-method.d.ts +3 -3
  27. package/dist/repositories/shopping-list.d.ts +2 -2
  28. package/dist/repositories/state.d.ts +3 -3
  29. package/dist/repositories/store.d.ts +4 -4
  30. package/dist/repositories/subscription.d.ts +2 -2
  31. package/dist/repositories/tax-category.d.ts +4 -4
  32. package/dist/repositories/type.d.ts +3 -3
  33. package/dist/repositories/zone.d.ts +3 -3
  34. package/dist/services/my-order.d.ts +2 -2
  35. package/package.json +5 -2
  36. package/src/ctMock.ts +6 -0
  37. package/src/repositories/abstract.ts +37 -17
  38. package/src/repositories/cart-discount.ts +11 -11
  39. package/src/repositories/cart.ts +88 -36
  40. package/src/repositories/category.ts +17 -13
  41. package/src/repositories/channel.ts +3 -3
  42. package/src/repositories/custom-object.ts +16 -8
  43. package/src/repositories/customer-group.ts +5 -5
  44. package/src/repositories/customer.ts +13 -7
  45. package/src/repositories/discount-code.ts +14 -14
  46. package/src/repositories/extension.ts +12 -8
  47. package/src/repositories/helpers.ts +9 -0
  48. package/src/repositories/inventory-entry.ts +17 -10
  49. package/src/repositories/my-order.ts +19 -0
  50. package/src/repositories/order.test.ts +79 -3
  51. package/src/repositories/order.ts +77 -37
  52. package/src/repositories/payment.ts +21 -17
  53. package/src/repositories/product-projection.ts +5 -5
  54. package/src/repositories/product-type.ts +14 -10
  55. package/src/repositories/product.ts +5 -5
  56. package/src/repositories/project.ts +21 -17
  57. package/src/repositories/shipping-method.ts +27 -20
  58. package/src/repositories/shopping-list.ts +10 -6
  59. package/src/repositories/state.ts +13 -9
  60. package/src/repositories/store.ts +18 -14
  61. package/src/repositories/subscription.ts +3 -3
  62. package/src/repositories/tax-category.ts +16 -12
  63. package/src/repositories/type.ts +15 -11
  64. package/src/repositories/zone.ts +13 -9
  65. package/src/services/abstract.ts +21 -10
  66. package/src/services/cart.test.ts +48 -8
  67. package/src/services/cart.ts +17 -11
  68. package/src/services/custom-object.ts +8 -4
  69. package/src/services/customer.ts +5 -2
  70. package/src/services/my-customer.ts +7 -3
  71. package/src/services/my-order.ts +3 -3
  72. package/src/services/order.ts +3 -2
  73. package/src/services/product-projection.ts +2 -1
  74. package/src/services/product-type.ts +2 -1
  75. package/src/services/project.ts +4 -3
  76. package/src/services/store.ts +2 -1
  77. package/src/services/tax-category.ts +2 -1
@@ -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(projectKey: string, draft: TypeDraft): Type {
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(projectKey, resource)
33
+ this.save(context, resource)
34
34
  return resource
35
35
  }
36
36
  actions: Partial<
37
37
  Record<
38
38
  TypeUpdateAction['action'],
39
- (projectKey: string, resource: Writable<Type>, action: any) => void
39
+ (
40
+ context: RepositoryContext,
41
+ resource: Writable<Type>,
42
+ action: any
43
+ ) => void
40
44
  >
41
45
  > = {
42
46
  addFieldDefinition: (
43
- projectKey: string,
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
- projectKey: string,
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
- projectKey: string,
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
- projectKey: string,
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
- projectKey: string,
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
- projectKey: string,
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
- projectKey: string,
127
+ context: RepositoryContext,
124
128
  resource: Writable<Type>,
125
129
  { fieldName, value }: TypeChangeEnumValueLabelAction
126
130
  ) => {
@@ -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(projectKey: string, draft: ZoneDraft): Zone {
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(projectKey, resource)
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
- (projectKey: string, resource: Writable<Zone>, action: any) => void
36
+ (
37
+ context: RepositoryContext,
38
+ resource: Writable<Zone>,
39
+ action: any
40
+ ) => void
37
41
  >
38
42
  > = {
39
43
  addLocation: (
40
- projectKey: string,
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
- projectKey: string,
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
- projectKey: string,
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
- projectKey: string,
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
- projectKey: string,
76
+ context: RepositoryContext,
73
77
  resource: Writable<Zone>,
74
78
  { key }: ZoneSetKeyAction
75
79
  ) => {
@@ -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 { AbstractResourceRepository } from '../repositories/abstract'
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.params.projectKey, {
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.params.projectKey,
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.params.projectKey,
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(request.params.projectKey, draft)
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.params.projectKey,
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.params.projectKey,
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(request.params.projectKey, resourceId, {
125
- expand: this._parseParam(request.query.expand),
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('Order Update Actions', () => {
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
- let response = await supertest(ctMock.app)
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
 
@@ -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
- request.params.projectKey,
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 newCart = this.repository.create(request.params.projectKey, {
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.params.projectKey,
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.params.projectKey, draft)
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.params.projectKey,
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(request.params.projectKey, current.id)
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
  }
@@ -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.params.projectKey, {
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
- ? +request.params.ttlMinutes
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.params.projectKey)
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(request.params.projectKey, draft)
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.params.projectKey, {
57
+ const result = this.repository.query(getRepositoryContext(request), {
54
58
  where: [`email = "${email}"`, `password = "${encodedPassword}"`],
55
59
  })
56
60
 
@@ -1,14 +1,14 @@
1
1
  import AbstractService from './abstract'
2
2
  import { Router } from 'express'
3
3
  import { AbstractStorage } from '../storage'
4
- import { OrderRepository } from '../repositories/order'
4
+ import { MyOrderRepository } from '../repositories/my-order'
5
5
 
6
6
  export class MyOrderService extends AbstractService {
7
- public repository: OrderRepository
7
+ public repository: MyOrderRepository
8
8
 
9
9
  constructor(parent: Router, storage: AbstractStorage) {
10
10
  super(parent)
11
- this.repository = new OrderRepository(storage)
11
+ this.repository = new MyOrderRepository(storage)
12
12
  }
13
13
 
14
14
  getBasePath() {
@@ -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.params.projectKey,
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.params.projectKey,
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.params.projectKey,
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.params.projectKey,
25
+ getRepositoryContext(request),
25
26
  request.params.key
26
27
  )
27
28
  if (resource) {
@@ -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(projectKey)
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.params.projectKey)
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.params.projectKey,
36
+ getRepositoryContext(request),
36
37
  project,
37
38
  updateRequest.actions
38
39
  )
@@ -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.params.projectKey,
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.params.projectKey,
25
+ getRepositoryContext(request),
25
26
  request.params.key
26
27
  )
27
28
  if (resource) {