@things-factory/warehouse-base 5.0.14 → 6.0.0-alpha.0

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 (142) hide show
  1. package/dist-server/controllers/ecommerce/ecommerce-controller.js +1 -1
  2. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  3. package/dist-server/controllers/ecommerce/sellercraft-controller.js +64 -60
  4. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  5. package/dist-server/controllers/warehouse-controller.js +7 -5
  6. package/dist-server/controllers/warehouse-controller.js.map +1 -1
  7. package/dist-server/service/inventory/inventory-mutation.js +6 -6
  8. package/dist-server/service/inventory/inventory-mutation.js.map +1 -1
  9. package/dist-server/service/inventory/inventory-query.js +217 -195
  10. package/dist-server/service/inventory/inventory-query.js.map +1 -1
  11. package/dist-server/service/inventory/inventory-types.js +14 -15
  12. package/dist-server/service/inventory/inventory-types.js.map +1 -1
  13. package/dist-server/service/inventory/inventory.js +62 -42
  14. package/dist-server/service/inventory/inventory.js.map +1 -1
  15. package/dist-server/service/inventory-change/inventory-change-mutation.js +252 -216
  16. package/dist-server/service/inventory-change/inventory-change-mutation.js.map +1 -1
  17. package/dist-server/service/inventory-change/inventory-change-query.js +6 -7
  18. package/dist-server/service/inventory-change/inventory-change-query.js.map +1 -1
  19. package/dist-server/service/inventory-change/inventory-change.js +7 -7
  20. package/dist-server/service/inventory-change/inventory-change.js.map +1 -1
  21. package/dist-server/service/inventory-history/inventory-history-mutation.js +1 -1
  22. package/dist-server/service/inventory-history/inventory-history-mutation.js.map +1 -1
  23. package/dist-server/service/inventory-history/inventory-history-query.js +89 -99
  24. package/dist-server/service/inventory-history/inventory-history-query.js.map +1 -1
  25. package/dist-server/service/inventory-history/inventory-history-types.js +3 -3
  26. package/dist-server/service/inventory-history/inventory-history-types.js.map +1 -1
  27. package/dist-server/service/inventory-history/inventory-history.js +7 -7
  28. package/dist-server/service/inventory-history/inventory-history.js.map +1 -1
  29. package/dist-server/service/inventory-item/inventory-item-mutation.js +10 -10
  30. package/dist-server/service/inventory-item/inventory-item-mutation.js.map +1 -1
  31. package/dist-server/service/inventory-item/inventory-item-query.js +18 -17
  32. package/dist-server/service/inventory-item/inventory-item-query.js.map +1 -1
  33. package/dist-server/service/inventory-item/inventory-item-type.js +4 -5
  34. package/dist-server/service/inventory-item/inventory-item-type.js.map +1 -1
  35. package/dist-server/service/inventory-item/inventory-item.js +5 -5
  36. package/dist-server/service/inventory-item/inventory-item.js.map +1 -1
  37. package/dist-server/service/inventory-item-change/inventory-item-change-mutation.js +4 -4
  38. package/dist-server/service/inventory-item-change/inventory-item-change-mutation.js.map +1 -1
  39. package/dist-server/service/inventory-item-change/inventory-item-change-query.js +7 -9
  40. package/dist-server/service/inventory-item-change/inventory-item-change-query.js.map +1 -1
  41. package/dist-server/service/inventory-item-change/inventory-item-change-type.js +6 -7
  42. package/dist-server/service/inventory-item-change/inventory-item-change-type.js.map +1 -1
  43. package/dist-server/service/inventory-item-change/inventory-item-change.js +3 -4
  44. package/dist-server/service/inventory-item-change/inventory-item-change.js.map +1 -1
  45. package/dist-server/service/inventory-product/inventory-product-mutation.js +4 -4
  46. package/dist-server/service/inventory-product/inventory-product-mutation.js.map +1 -1
  47. package/dist-server/service/inventory-product/inventory-product-query.js +7 -9
  48. package/dist-server/service/inventory-product/inventory-product-query.js.map +1 -1
  49. package/dist-server/service/inventory-product/inventory-product-type.js +1 -2
  50. package/dist-server/service/inventory-product/inventory-product-type.js.map +1 -1
  51. package/dist-server/service/inventory-product/inventory-product.js +5 -5
  52. package/dist-server/service/inventory-product/inventory-product.js.map +1 -1
  53. package/dist-server/service/location/location-mutation.js +5 -5
  54. package/dist-server/service/location/location-mutation.js.map +1 -1
  55. package/dist-server/service/location/location-query.js +17 -19
  56. package/dist-server/service/location/location-query.js.map +1 -1
  57. package/dist-server/service/location/location-types.js +3 -3
  58. package/dist-server/service/location/location-types.js.map +1 -1
  59. package/dist-server/service/location/location.js +14 -14
  60. package/dist-server/service/location/location.js.map +1 -1
  61. package/dist-server/service/movement/movement-mutation.js +6 -5
  62. package/dist-server/service/movement/movement-mutation.js.map +1 -1
  63. package/dist-server/service/movement/movement-query.js +15 -15
  64. package/dist-server/service/movement/movement-query.js.map +1 -1
  65. package/dist-server/service/movement/movement-types.js +4 -5
  66. package/dist-server/service/movement/movement-types.js.map +1 -1
  67. package/dist-server/service/movement/movement.js +5 -5
  68. package/dist-server/service/movement/movement.js.map +1 -1
  69. package/dist-server/service/pallet/pallet-mutation.js +5 -5
  70. package/dist-server/service/pallet/pallet-mutation.js.map +1 -1
  71. package/dist-server/service/pallet/pallet-query.js +9 -11
  72. package/dist-server/service/pallet/pallet-query.js.map +1 -1
  73. package/dist-server/service/pallet/pallet-types.js +5 -6
  74. package/dist-server/service/pallet/pallet-types.js.map +1 -1
  75. package/dist-server/service/pallet/pallet.js +6 -6
  76. package/dist-server/service/pallet/pallet.js.map +1 -1
  77. package/dist-server/service/pallet-count/pallet-count-mutation.js +1 -1
  78. package/dist-server/service/pallet-count/pallet-count-mutation.js.map +1 -1
  79. package/dist-server/service/pallet-count/pallet-count-query.js +6 -8
  80. package/dist-server/service/pallet-count/pallet-count-query.js.map +1 -1
  81. package/dist-server/service/pallet-count/pallet-count.js +3 -4
  82. package/dist-server/service/pallet-count/pallet-count.js.map +1 -1
  83. package/dist-server/service/pallet-history/pallet-history-mutation.js +1 -1
  84. package/dist-server/service/pallet-history/pallet-history-mutation.js.map +1 -1
  85. package/dist-server/service/pallet-history/pallet-history-query.js +6 -8
  86. package/dist-server/service/pallet-history/pallet-history-query.js.map +1 -1
  87. package/dist-server/service/pallet-history/pallet-history.js +6 -6
  88. package/dist-server/service/pallet-history/pallet-history.js.map +1 -1
  89. package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js +1 -1
  90. package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js.map +1 -1
  91. package/dist-server/service/tote/tote-mutation.js +4 -4
  92. package/dist-server/service/tote/tote-mutation.js.map +1 -1
  93. package/dist-server/service/tote/tote-query.js +12 -13
  94. package/dist-server/service/tote/tote-query.js.map +1 -1
  95. package/dist-server/service/tote/tote-types.js +2 -3
  96. package/dist-server/service/tote/tote-types.js.map +1 -1
  97. package/dist-server/service/tote/tote.js +5 -5
  98. package/dist-server/service/tote/tote.js.map +1 -1
  99. package/dist-server/service/warehouse/warehouse-mutation.js +1 -1
  100. package/dist-server/service/warehouse/warehouse-mutation.js.map +1 -1
  101. package/dist-server/service/warehouse/warehouse-query.js +9 -10
  102. package/dist-server/service/warehouse/warehouse-query.js.map +1 -1
  103. package/dist-server/service/warehouse/warehouse.js +12 -12
  104. package/dist-server/service/warehouse/warehouse.js.map +1 -1
  105. package/dist-server/tsconfig.tsbuildinfo +1 -1
  106. package/dist-server/utils/inventory-util.js +16 -16
  107. package/dist-server/utils/inventory-util.js.map +1 -1
  108. package/package.json +8 -8
  109. package/server/controllers/ecommerce/ecommerce-controller.ts +1 -1
  110. package/server/controllers/ecommerce/sellercraft-controller.ts +75 -65
  111. package/server/controllers/warehouse-controller.ts +9 -4
  112. package/server/service/inventory/inventory-mutation.ts +28 -24
  113. package/server/service/inventory/inventory-query.ts +269 -304
  114. package/server/service/inventory/inventory.ts +50 -35
  115. package/server/service/inventory-change/inventory-change-mutation.ts +305 -256
  116. package/server/service/inventory-change/inventory-change-query.ts +9 -9
  117. package/server/service/inventory-history/inventory-history-mutation.ts +12 -15
  118. package/server/service/inventory-history/inventory-history-query.ts +158 -133
  119. package/server/service/inventory-item/inventory-item-mutation.ts +20 -17
  120. package/server/service/inventory-item/inventory-item-query.ts +28 -18
  121. package/server/service/inventory-item-change/inventory-item-change-mutation.ts +12 -9
  122. package/server/service/inventory-item-change/inventory-item-change-query.ts +10 -8
  123. package/server/service/inventory-product/inventory-product-mutation.ts +16 -12
  124. package/server/service/inventory-product/inventory-product-query.ts +7 -8
  125. package/server/service/location/location-mutation.ts +24 -24
  126. package/server/service/location/location-query.ts +27 -23
  127. package/server/service/location/location.ts +11 -10
  128. package/server/service/movement/movement-mutation.ts +7 -8
  129. package/server/service/movement/movement-query.ts +18 -16
  130. package/server/service/pallet/pallet-mutation.ts +18 -20
  131. package/server/service/pallet/pallet-query.ts +13 -14
  132. package/server/service/pallet-count/pallet-count-mutation.ts +20 -17
  133. package/server/service/pallet-count/pallet-count-query.ts +6 -7
  134. package/server/service/pallet-history/pallet-history-mutation.ts +15 -15
  135. package/server/service/pallet-history/pallet-history-query.ts +7 -8
  136. package/server/service/reduced-inventory-history/reduced-inventory-history.ts +1 -1
  137. package/server/service/tote/tote-mutation.ts +23 -22
  138. package/server/service/tote/tote-query.ts +18 -14
  139. package/server/service/warehouse/warehouse-mutation.ts +21 -18
  140. package/server/service/warehouse/warehouse-query.ts +11 -11
  141. package/server/service/warehouse/warehouse.ts +7 -7
  142. package/server/utils/inventory-util.ts +10 -10
@@ -14,7 +14,7 @@ export class InventoryItemMutation {
14
14
  @Mutation(returns => InventoryItem, { description: 'To create new InventoryItem' })
15
15
  async createInventoryItem(
16
16
  @Arg('inventoryItem') inventoryItem: NewInventoryItem,
17
- @Ctx() context: any
17
+ @Ctx() context: ResolverContext
18
18
  ): Promise<InventoryItem> {
19
19
  const { domain, user, tx } = context.state
20
20
 
@@ -31,13 +31,13 @@ export class InventoryItemMutation {
31
31
  async updateInventoryItem(
32
32
  @Arg('id') id: string,
33
33
  @Arg('patch') patch: InventoryItemPatch,
34
- @Ctx() context: any
34
+ @Ctx() context: ResolverContext
35
35
  ): Promise<InventoryItem> {
36
36
  const { domain, user, tx } = context.state
37
37
 
38
38
  const repository = tx.getRepository(InventoryItem)
39
39
  const inventoryItem = await repository.findOne({
40
- where: { domain, id }
40
+ where: { domain: { id: domain.id }, id }
41
41
  })
42
42
 
43
43
  return await repository.save({
@@ -52,7 +52,7 @@ export class InventoryItemMutation {
52
52
  async updateInventoryItemSerialNumber(
53
53
  @Arg('id') id: string,
54
54
  @Arg('serialNumber') serialNumber: string,
55
- @Ctx() context: any
55
+ @Ctx() context: ResolverContext
56
56
  ): Promise<boolean> {
57
57
  try {
58
58
  const { domain, user, tx } = context.state
@@ -60,14 +60,14 @@ export class InventoryItemMutation {
60
60
  const repository = tx.getRepository(InventoryItem)
61
61
 
62
62
  const inventoryItem = await repository.findOne({
63
- where: { domain, id },
63
+ where: { domain: { id: domain.id }, id },
64
64
  relations: ['product']
65
65
  })
66
66
 
67
67
  const product: Product = inventoryItem.product
68
- const duplicatedSerialNumberCnt: number = await repository.count({
69
- domain,
70
- product,
68
+ const duplicatedSerialNumberCnt: number = await repository.countBy({
69
+ domain: { id: domain.id },
70
+ product: { id: product.id },
71
71
  serialNumber
72
72
  })
73
73
 
@@ -85,7 +85,7 @@ export class InventoryItemMutation {
85
85
  @Mutation(returns => [InventoryItem], { description: "To modify multiple InventoryItems' information" })
86
86
  async updateMultipleInventoryItem(
87
87
  @Arg('patches', type => [InventoryItemPatch]) patches: InventoryItemPatch[],
88
- @Ctx() context: any
88
+ @Ctx() context: ResolverContext
89
89
  ): Promise<InventoryItem[]> {
90
90
  const { domain, user, tx } = context.state
91
91
 
@@ -112,7 +112,7 @@ export class InventoryItemMutation {
112
112
  if (_updateRecords.length > 0) {
113
113
  for (let i = 0; i < _updateRecords.length; i++) {
114
114
  const newRecord = _updateRecords[i]
115
- const inventoryItem = await inventoryItemRepo.findOne(newRecord.id)
115
+ const inventoryItem = await inventoryItemRepo.findOneBy({ id: newRecord.id })
116
116
 
117
117
  const result = await inventoryItemRepo.save({
118
118
  ...inventoryItem,
@@ -129,21 +129,24 @@ export class InventoryItemMutation {
129
129
 
130
130
  @Directive('@transaction')
131
131
  @Mutation(returns => Boolean, { description: 'To delete InventoryItem' })
132
- async deleteInventoryItem(@Arg('id') id: string, @Ctx() context: any): Promise<boolean> {
132
+ async deleteInventoryItem(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
133
133
  const { domain, tx } = context.state
134
134
 
135
- await tx.getRepository(InventoryItem).delete({ domain, id })
135
+ await tx.getRepository(InventoryItem).delete({ domain: { id: domain.id }, id })
136
136
 
137
137
  return true
138
138
  }
139
139
 
140
140
  @Directive('@transaction')
141
141
  @Mutation(returns => Boolean, { description: 'To delete multiple inventoryItems' })
142
- async deleteInventoryItems(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<boolean> {
142
+ async deleteInventoryItems(
143
+ @Arg('ids', type => [String]) ids: string[],
144
+ @Ctx() context: ResolverContext
145
+ ): Promise<boolean> {
143
146
  const { domain, tx } = context.state
144
147
 
145
148
  await tx.getRepository(InventoryItem).delete({
146
- domain,
149
+ domain: { id: domain.id },
147
150
  id: In(ids)
148
151
  })
149
152
 
@@ -155,13 +158,13 @@ export class InventoryItemMutation {
155
158
  async replacePickedInventoryItem(
156
159
  @Arg('selectedSerialNumber') selectedSerialNumber: InventoryItemPatch,
157
160
  @Arg('newSerialNumber') newSerialNumber: string,
158
- @Ctx() context: any
161
+ @Ctx() context: ResolverContext
159
162
  ): Promise<InventoryItem> {
160
163
  const { domain, user, tx } = context.state
161
164
 
162
165
  const repository = tx.getRepository(InventoryItem)
163
166
  const foundSerialNumber = await repository.findOne({
164
- where: { domain, serialNumber: newSerialNumber }
167
+ where: { domain: { id: domain.id }, serialNumber: newSerialNumber }
165
168
  })
166
169
 
167
170
  if ((selectedSerialNumber.source = INVENTORY_ITEM_SOURCE.OUTBOUND)) {
@@ -169,7 +172,7 @@ export class InventoryItemMutation {
169
172
  } else {
170
173
  await repository.update(
171
174
  {
172
- domain,
175
+ domain: { id: domain.id },
173
176
  id: selectedSerialNumber.id
174
177
  },
175
178
  {
@@ -1,9 +1,9 @@
1
1
  import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
- import { Brackets, EntityManager, getRepository, In, Not, SelectQueryBuilder } from 'typeorm'
2
+ import { Brackets, EntityManager, In, Not, OrderByCondition, SelectQueryBuilder } from 'typeorm'
3
3
 
4
4
  import { User } from '@things-factory/auth-base'
5
5
  import { Product } from '@things-factory/product-base'
6
- import { convertListParams, Domain, ListParam } from '@things-factory/shell'
6
+ import { convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'
7
7
 
8
8
  import { INVENTORY_STATUS } from '../../constants'
9
9
  import { Inventory } from '../inventory/inventory'
@@ -13,16 +13,16 @@ import { InventoryItemList } from './inventory-item-type'
13
13
  @Resolver(InventoryItem)
14
14
  export class InventoryItemQuery {
15
15
  @Query(returns => InventoryItem, { description: 'To fetch a InventoryItem' })
16
- async inventoryItem(@Arg('id') id: string, @Ctx() context: any): Promise<InventoryItem> {
16
+ async inventoryItem(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<InventoryItem> {
17
17
  const { domain } = context.state
18
18
 
19
19
  return await getRepository(InventoryItem).findOne({
20
- where: { domain, id }
20
+ where: { domain: { id: domain.id }, id }
21
21
  })
22
22
  }
23
23
 
24
24
  @Query(returns => InventoryItemList, { description: 'To fetch multiple InventoryItems' })
25
- async inventoryItems(@Args() params: ListParam, @Ctx() context: any): Promise<InventoryItemList> {
25
+ async inventoryItems(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<InventoryItemList> {
26
26
  const { domain } = context.state
27
27
 
28
28
  const convertedParams = convertListParams(params, { domain })
@@ -36,8 +36,11 @@ export class InventoryItemQuery {
36
36
 
37
37
  @Directive('@transaction')
38
38
  @Query(returns => InventoryItemList, { description: 'To fetch multiple InventoryItems with InventoryItemChanges' })
39
- async inventoryItemsWithChanges(@Args() params: ListParam, @Ctx() context: any): Promise<InventoryItemList> {
40
- const { domain, tx }: { domain: Domain; tx: EntityManager } = context.state
39
+ async inventoryItemsWithChanges(
40
+ @Args() params: ListParam,
41
+ @Ctx() context: ResolverContext
42
+ ): Promise<InventoryItemList> {
43
+ const { domain, tx } = context.state
41
44
 
42
45
  const page = params?.pagination?.page
43
46
  const limit = params?.pagination?.limit
@@ -102,7 +105,10 @@ export class InventoryItemQuery {
102
105
  }
103
106
 
104
107
  @Query(returns => InventoryItemList, { description: 'To fetch multiple InventoryItems by inventory' })
105
- async inventoryItemsByInventory(@Args() params: ListParam, @Ctx() context: any): Promise<InventoryItemList> {
108
+ async inventoryItemsByInventory(
109
+ @Args() params: ListParam,
110
+ @Ctx() context: ResolverContext
111
+ ): Promise<InventoryItemList> {
106
112
  const { domain } = context.state
107
113
 
108
114
  const page = params.pagination.page
@@ -153,7 +159,7 @@ export class InventoryItemQuery {
153
159
 
154
160
  if (sortings?.length !== 0) {
155
161
  const arrChildSortData = ['serial_number']
156
- const sort = (sortings || []).reduce(
162
+ const sort: OrderByCondition = (sortings || []).reduce(
157
163
  (acc, sort) => ({
158
164
  ...acc,
159
165
  [arrChildSortData.indexOf(sort.name) >= 0 ? sort.name + '.name' : 'ivi.' + sort.name]: sort.desc
@@ -175,17 +181,17 @@ export class InventoryItemQuery {
175
181
 
176
182
  @FieldResolver(type => Domain)
177
183
  async domain(@Root() inventoryItem: InventoryItem): Promise<Domain> {
178
- return await getRepository(Domain).findOne(inventoryItem.domainId)
184
+ return await getRepository(Domain).findOneBy({ id: inventoryItem.domainId })
179
185
  }
180
186
 
181
187
  @FieldResolver(type => User)
182
188
  async updater(@Root() inventoryItem: InventoryItem): Promise<User> {
183
- return await getRepository(User).findOne(inventoryItem.updaterId)
189
+ return await getRepository(User).findOneBy({ id: inventoryItem.updaterId })
184
190
  }
185
191
 
186
192
  @FieldResolver(type => User)
187
193
  async creator(@Root() inventoryItem: InventoryItem): Promise<User> {
188
- return await getRepository(User).findOne(inventoryItem.creatorId)
194
+ return await getRepository(User).findOneBy({ id: inventoryItem.creatorId })
189
195
  }
190
196
  }
191
197
 
@@ -196,18 +202,22 @@ export async function checkExistingSerialNumber(
196
202
  inventory?: Inventory,
197
203
  tx?: EntityManager
198
204
  ) {
199
- const { domain }: { domain: Domain } = context.state
205
+ const { domain } = context.state
200
206
 
201
207
  let countCondition: any = {
202
- domain,
203
- product,
208
+ domain: { id: domain.id },
209
+ product: { id: product.id },
204
210
  serialNumber,
205
211
  status: Not(In([INVENTORY_STATUS.DELETED, INVENTORY_STATUS.TERMINATED]))
206
212
  }
207
213
 
208
- if (inventory) countCondition = { ...countCondition, inventory }
214
+ if (inventory) {
215
+ countCondition = { ...countCondition, inventory: { id: inventory.id } }
216
+ }
209
217
 
210
- const duplicatedSerialNumberCnt: number = await tx.getRepository(InventoryItem).count(countCondition)
218
+ const duplicatedSerialNumberCnt: number = await tx.getRepository(InventoryItem).countBy(countCondition)
211
219
 
212
- if (duplicatedSerialNumberCnt) return true
220
+ if (duplicatedSerialNumberCnt) {
221
+ return true
222
+ }
213
223
  }
@@ -11,7 +11,7 @@ export class InventoryItemChangeMutation {
11
11
  @Mutation(returns => InventoryItemChange, { description: 'To create new InventoryItemChange' })
12
12
  async createInventoryItemChange(
13
13
  @Arg('inventoryItemChange') inventoryItemChange: NewInventoryItemChange,
14
- @Ctx() context: any
14
+ @Ctx() context: ResolverContext
15
15
  ): Promise<InventoryItemChange> {
16
16
  const { domain, user, tx } = context.state
17
17
 
@@ -30,13 +30,13 @@ export class InventoryItemChangeMutation {
30
30
  async updateInventoryItemChange(
31
31
  @Arg('id') id: string,
32
32
  @Arg('patch') patch: InventoryItemChangePatch,
33
- @Ctx() context: any
33
+ @Ctx() context: ResolverContext
34
34
  ): Promise<InventoryItemChange> {
35
35
  const { domain, user, tx } = context.state
36
36
 
37
37
  const repository = tx.getRepository(InventoryItemChange)
38
38
  const inventoryItemChange = await repository.findOne({
39
- where: { domain, id }
39
+ where: { domain: { id: domain.id }, id }
40
40
  })
41
41
 
42
42
  return await repository.save({
@@ -50,7 +50,7 @@ export class InventoryItemChangeMutation {
50
50
  @Mutation(returns => [InventoryItemChange], { description: "To modify multiple InventoryItemChanges' information" })
51
51
  async updateMultipleInventoryItemChange(
52
52
  @Arg('patches', type => [InventoryItemChangePatch]) patches: InventoryItemChangePatch[],
53
- @Ctx() context: any
53
+ @Ctx() context: ResolverContext
54
54
  ): Promise<InventoryItemChange[]> {
55
55
  const { domain, user, tx } = context.state
56
56
 
@@ -77,7 +77,7 @@ export class InventoryItemChangeMutation {
77
77
  if (_updateRecords.length > 0) {
78
78
  for (let i = 0; i < _updateRecords.length; i++) {
79
79
  const newRecord = _updateRecords[i]
80
- const inventoryItemChange = await inventoryItemChangeRepo.findOne(newRecord.id)
80
+ const inventoryItemChange = await inventoryItemChangeRepo.findOneBy({ id: newRecord.id })
81
81
 
82
82
  const result = await inventoryItemChangeRepo.save({
83
83
  ...inventoryItemChange,
@@ -94,20 +94,23 @@ export class InventoryItemChangeMutation {
94
94
 
95
95
  @Directive('@transaction')
96
96
  @Mutation(returns => Boolean, { description: 'To delete InventoryItemChange' })
97
- async deleteInventoryItemChange(@Arg('id') id: string, @Ctx() context: any): Promise<boolean> {
97
+ async deleteInventoryItemChange(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
98
98
  const { domain, tx } = context.state
99
99
 
100
- await tx.getRepository(InventoryItemChange).delete({ domain, id })
100
+ await tx.getRepository(InventoryItemChange).delete({ domain: { id: domain.id }, id })
101
101
  return true
102
102
  }
103
103
 
104
104
  @Directive('@transaction')
105
105
  @Mutation(returns => Boolean, { description: 'To delete multiple inventoryItemChanges' })
106
- async deleteInventoryItemChanges(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<boolean> {
106
+ async deleteInventoryItemChanges(
107
+ @Arg('ids', type => [String]) ids: string[],
108
+ @Ctx() context: ResolverContext
109
+ ): Promise<boolean> {
107
110
  const { domain, tx } = context.state
108
111
 
109
112
  await tx.getRepository(InventoryItemChange).delete({
110
- domain,
113
+ domain: { id: domain.id },
111
114
  id: In(ids)
112
115
  })
113
116
 
@@ -1,8 +1,7 @@
1
1
  import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
- import { getRepository } from 'typeorm'
3
2
 
4
3
  import { User } from '@things-factory/auth-base'
5
- import { convertListParams, Domain, ListParam } from '@things-factory/shell'
4
+ import { convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'
6
5
 
7
6
  import { InventoryItemChange } from './inventory-item-change'
8
7
  import { InventoryItemChangeList } from './inventory-item-change-type'
@@ -10,16 +9,19 @@ import { InventoryItemChangeList } from './inventory-item-change-type'
10
9
  @Resolver(InventoryItemChange)
11
10
  export class InventoryItemChangeQuery {
12
11
  @Query(returns => InventoryItemChange, { description: 'To fetch a InventoryItemChange' })
13
- async inventoryItemChange(@Arg('id') id: string, @Ctx() context: any): Promise<InventoryItemChange> {
12
+ async inventoryItemChange(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<InventoryItemChange> {
14
13
  const { domain } = context.state
15
14
 
16
15
  return await getRepository(InventoryItemChange).findOne({
17
- where: { domain, id }
16
+ where: { domain: { id: domain.id }, id }
18
17
  })
19
18
  }
20
19
 
21
20
  @Query(returns => InventoryItemChangeList, { description: 'To fetch multiple InventoryItemChanges' })
22
- async inventoryItemChanges(@Args() params: ListParam, @Ctx() context: any): Promise<InventoryItemChangeList> {
21
+ async inventoryItemChanges(
22
+ @Args() params: ListParam,
23
+ @Ctx() context: ResolverContext
24
+ ): Promise<InventoryItemChangeList> {
23
25
  const { domain } = context.state
24
26
 
25
27
  const convertedParams = convertListParams(params, { domain })
@@ -30,16 +32,16 @@ export class InventoryItemChangeQuery {
30
32
 
31
33
  @FieldResolver(type => Domain)
32
34
  async domain(@Root() inventoryItemChange: InventoryItemChange): Promise<Domain> {
33
- return await getRepository(Domain).findOne(inventoryItemChange.domainId)
35
+ return await getRepository(Domain).findOneBy({ id: inventoryItemChange.domainId })
34
36
  }
35
37
 
36
38
  @FieldResolver(type => User)
37
39
  async updater(@Root() inventoryItemChange: InventoryItemChange): Promise<User> {
38
- return await getRepository(User).findOne(inventoryItemChange.updaterId)
40
+ return await getRepository(User).findOneBy({ id: inventoryItemChange.updaterId })
39
41
  }
40
42
 
41
43
  @FieldResolver(type => User)
42
44
  async creator(@Root() inventoryItemChange: InventoryItemChange): Promise<User> {
43
- return await getRepository(User).findOne(inventoryItemChange.creatorId)
45
+ return await getRepository(User).findOneBy({ id: inventoryItemChange.creatorId })
44
46
  }
45
47
  }
@@ -1,13 +1,17 @@
1
- import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
2
- import { getRepository, In } from 'typeorm'
1
+ import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
2
+ import { In } from 'typeorm'
3
+
3
4
  import { InventoryProduct } from './inventory-product'
4
- import { NewInventoryProduct, InventoryProductPatch } from './inventory-product-type'
5
+ import { InventoryProductPatch, NewInventoryProduct } from './inventory-product-type'
5
6
 
6
7
  @Resolver(InventoryProduct)
7
8
  export class InventoryProductMutation {
8
9
  @Directive('@transaction')
9
10
  @Mutation(returns => InventoryProduct, { description: 'To create new InventoryProduct' })
10
- async createInventoryProduct(@Arg('inventoryProduct') inventoryProduct: NewInventoryProduct, @Ctx() context: any): Promise<InventoryProduct> {
11
+ async createInventoryProduct(
12
+ @Arg('inventoryProduct') inventoryProduct: NewInventoryProduct,
13
+ @Ctx() context: ResolverContext
14
+ ): Promise<InventoryProduct> {
11
15
  const { domain, user, tx } = context.state
12
16
 
13
17
  return await tx.getRepository(InventoryProduct).save({
@@ -23,13 +27,13 @@ export class InventoryProductMutation {
23
27
  async updateInventoryProduct(
24
28
  @Arg('id') id: string,
25
29
  @Arg('patch') patch: InventoryProductPatch,
26
- @Ctx() context: any
30
+ @Ctx() context: ResolverContext
27
31
  ): Promise<InventoryProduct> {
28
32
  const { domain, user, tx } = context.state
29
33
 
30
34
  const repository = tx.getRepository(InventoryProduct)
31
35
  const inventoryProduct = await repository.findOne({
32
- where: { domain, id }
36
+ where: { domain: { id: domain.id }, id }
33
37
  })
34
38
 
35
39
  return await repository.save({
@@ -43,7 +47,7 @@ export class InventoryProductMutation {
43
47
  @Mutation(returns => [InventoryProduct], { description: "To modify multiple InventoryProducts' information" })
44
48
  async updateMultipleInventoryProduct(
45
49
  @Arg('patches', type => [InventoryProductPatch]) patches: InventoryProductPatch[],
46
- @Ctx() context: any
50
+ @Ctx() context: ResolverContext
47
51
  ): Promise<InventoryProduct[]> {
48
52
  const { domain, user, tx } = context.state
49
53
 
@@ -70,7 +74,7 @@ export class InventoryProductMutation {
70
74
  if (_updateRecords.length > 0) {
71
75
  for (let i = 0; i < _updateRecords.length; i++) {
72
76
  const newRecord = _updateRecords[i]
73
- const inventoryProduct = await inventoryProductRepo.findOne(newRecord.id)
77
+ const inventoryProduct = await inventoryProductRepo.findOneBy({ id: newRecord.id })
74
78
 
75
79
  const result = await inventoryProductRepo.save({
76
80
  ...inventoryProduct,
@@ -87,10 +91,10 @@ export class InventoryProductMutation {
87
91
 
88
92
  @Directive('@transaction')
89
93
  @Mutation(returns => Boolean, { description: 'To delete InventoryProduct' })
90
- async deleteInventoryProduct(@Arg('id') id: string, @Ctx() context: any): Promise<boolean> {
94
+ async deleteInventoryProduct(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
91
95
  const { domain, tx } = context.state
92
96
 
93
- await tx.getRepository(InventoryProduct).delete({ domain, id })
97
+ await tx.getRepository(InventoryProduct).delete({ domain: { id: domain.id }, id })
94
98
  return true
95
99
  }
96
100
 
@@ -98,12 +102,12 @@ export class InventoryProductMutation {
98
102
  @Mutation(returns => Boolean, { description: 'To delete multiple inventoryProducts' })
99
103
  async deleteInventoryProducts(
100
104
  @Arg('ids', type => [String]) ids: string[],
101
- @Ctx() context: any
105
+ @Ctx() context: ResolverContext
102
106
  ): Promise<boolean> {
103
107
  const { domain, tx } = context.state
104
108
 
105
109
  await tx.getRepository(InventoryProduct).delete({
106
- domain,
110
+ domain: { id: domain.id },
107
111
  id: In(ids)
108
112
  })
109
113
 
@@ -1,8 +1,7 @@
1
1
  import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
- import { getRepository } from 'typeorm'
3
2
 
4
3
  import { User } from '@things-factory/auth-base'
5
- import { convertListParams, Domain, ListParam } from '@things-factory/shell'
4
+ import { convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'
6
5
 
7
6
  import { InventoryProduct } from './inventory-product'
8
7
  import { InventoryProductList } from './inventory-product-type'
@@ -10,16 +9,16 @@ import { InventoryProductList } from './inventory-product-type'
10
9
  @Resolver(InventoryProduct)
11
10
  export class InventoryProductQuery {
12
11
  @Query(returns => InventoryProduct, { description: 'To fetch a InventoryProduct' })
13
- async inventoryProduct(@Arg('id') id: string, @Ctx() context: any): Promise<InventoryProduct> {
12
+ async inventoryProduct(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<InventoryProduct> {
14
13
  const { domain } = context.state
15
14
 
16
15
  return await getRepository(InventoryProduct).findOne({
17
- where: { domain, id }
16
+ where: { domain: { id: domain.id }, id }
18
17
  })
19
18
  }
20
19
 
21
20
  @Query(returns => InventoryProductList, { description: 'To fetch multiple InventoryProducts' })
22
- async inventoryProducts(@Args() params: ListParam, @Ctx() context: any): Promise<InventoryProductList> {
21
+ async inventoryProducts(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<InventoryProductList> {
23
22
  const { domain } = context.state
24
23
 
25
24
  const convertedParams = convertListParams(params, { domain })
@@ -30,16 +29,16 @@ export class InventoryProductQuery {
30
29
 
31
30
  @FieldResolver(type => Domain)
32
31
  async domain(@Root() inventoryProduct: InventoryProduct): Promise<Domain> {
33
- return await getRepository(Domain).findOne(inventoryProduct.domainId)
32
+ return await getRepository(Domain).findOneBy({ id: inventoryProduct.domainId })
34
33
  }
35
34
 
36
35
  @FieldResolver(type => User)
37
36
  async updater(@Root() inventoryProduct: InventoryProduct): Promise<User> {
38
- return await getRepository(User).findOne(inventoryProduct.updaterId)
37
+ return await getRepository(User).findOneBy({ id: inventoryProduct.updaterId })
39
38
  }
40
39
 
41
40
  @FieldResolver(type => User)
42
41
  async creator(@Root() inventoryProduct: InventoryProduct): Promise<User> {
43
- return await getRepository(User).findOne(inventoryProduct.creatorId)
42
+ return await getRepository(User).findOneBy({ id: inventoryProduct.creatorId })
44
43
  }
45
44
  }
@@ -1,8 +1,5 @@
1
1
  import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
2
- import { EntityManager, Repository } from 'typeorm'
3
-
4
- import { User } from '@things-factory/auth-base'
5
- import { Domain } from '@things-factory/shell'
2
+ import { Repository } from 'typeorm'
6
3
 
7
4
  import { Location } from '../location/location'
8
5
  import { Warehouse } from '../warehouse/warehouse'
@@ -13,7 +10,7 @@ export class LocationMutation {
13
10
  @Directive('@privilege(category: "warehouse", privilege: "mutation")')
14
11
  @Directive('@transaction')
15
12
  @Mutation(returns => Location)
16
- async createLocation(@Arg('location') location: NewLocation, @Ctx() context: any): Promise<Location> {
13
+ async createLocation(@Arg('location') location: NewLocation, @Ctx() context: ResolverContext): Promise<Location> {
17
14
  return await createLocation(location, context)
18
15
  }
19
16
 
@@ -23,9 +20,9 @@ export class LocationMutation {
23
20
  async updateLocation(
24
21
  @Arg('id') id: string,
25
22
  @Arg('patch') patch: LocationPatch,
26
- @Ctx() context: any
23
+ @Ctx() context: ResolverContext
27
24
  ): Promise<Location> {
28
- return await updateLocation(id, patch, context.state.user)
25
+ return await updateLocation(id, patch, context)
29
26
  }
30
27
 
31
28
  @Directive('@privilege(category: "warehouse", privilege: "mutation")')
@@ -33,7 +30,7 @@ export class LocationMutation {
33
30
  @Mutation(returns => [Location])
34
31
  async updateMultipleLocation(
35
32
  @Arg('patches', type => [LocationPatch]) patches: LocationPatch[],
36
- @Ctx() context: any
33
+ @Ctx() context: ResolverContext
37
34
  ): Promise<Location[]> {
38
35
  let results = []
39
36
  const _createRecords = patches.filter((patch: any) => patch.cuFlag === '+')
@@ -61,53 +58,56 @@ export class LocationMutation {
61
58
  @Directive('@privilege(category: "warehouse", privilege: "mutation")')
62
59
  @Directive('@transaction')
63
60
  @Mutation(returns => Boolean)
64
- async deleteLocation(@Arg('id') id: string, @Ctx() context: any): Promise<Boolean> {
61
+ async deleteLocation(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Boolean> {
65
62
  return await deleteLocation(id, context)
66
63
  }
67
64
 
68
65
  @Directive('@privilege(category: "warehouse", privilege: "mutation")')
69
66
  @Directive('@transaction')
70
67
  @Mutation(returns => Boolean)
71
- async deleteLocations(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<Boolean> {
68
+ async deleteLocations(
69
+ @Arg('ids', type => [String]) ids: string[],
70
+ @Ctx() context: ResolverContext
71
+ ): Promise<Boolean> {
72
72
  return await deleteLocations(ids, context)
73
73
  }
74
74
 
75
75
  @Directive('@privilege(category: "warehouse", privilege: "mutation")')
76
76
  @Directive('@transaction')
77
77
  @Mutation(returns => Boolean)
78
- async deleteAllLocations(@Arg('warehouseId') warehouseId: string, @Ctx() context: any) {
79
- const { tx }: { tx: EntityManager } = context.state
78
+ async deleteAllLocations(@Arg('warehouseId') warehouseId: string, @Ctx() context: ResolverContext) {
79
+ const { tx } = context.state
80
80
 
81
81
  await tx.getRepository(Location).delete({
82
- warehouse: await tx.getRepository(Warehouse).findOne(warehouseId)
82
+ warehouse: { id: warehouseId }
83
83
  })
84
84
  }
85
85
  }
86
86
 
87
- export async function createLocation(location: NewLocation, context: any) {
88
- const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
87
+ export async function createLocation(location: NewLocation, context: ResolverContext) {
88
+ const { domain, user, tx } = context.state
89
89
 
90
90
  const locationRepository: Repository<Location> = tx.getRepository(Location)
91
91
  const warehouseRepository: Repository<Warehouse> = tx.getRepository(Warehouse)
92
92
 
93
93
  return await locationRepository.save({
94
94
  ...location,
95
- warehouse: await warehouseRepository.findOne(location.warehouse.id),
95
+ warehouse: await warehouseRepository.findOneBy({ id: location.warehouse.id }),
96
96
  domain,
97
97
  creator: user,
98
98
  updater: user
99
99
  })
100
100
  }
101
101
 
102
- export async function updateLocation(id: string, patch: LocationPatch, context: any) {
103
- const { user, tx }: { user: User; tx: EntityManager } = context.state
102
+ export async function updateLocation(id: string, patch: LocationPatch, context: ResolverContext) {
103
+ const { user, tx } = context.state
104
104
 
105
105
  const locationRepository: Repository<Location> = tx.getRepository(Location)
106
106
  const warehouseRepository: Repository<Warehouse> = tx.getRepository(Warehouse)
107
- const location: Location = await locationRepository.findOne(id)
107
+ const location: Location = await locationRepository.findOneBy({ id })
108
108
 
109
109
  if (patch.warehouse && patch.warehouse.id) {
110
- patch.warehouse = await warehouseRepository.findOne(patch.warehouse.id)
110
+ patch.warehouse = await warehouseRepository.findOneBy({ id: patch.warehouse.id })
111
111
  }
112
112
 
113
113
  return await locationRepository.save({
@@ -117,16 +117,16 @@ export async function updateLocation(id: string, patch: LocationPatch, context:
117
117
  })
118
118
  }
119
119
 
120
- export async function deleteLocation(id: string, context: any) {
121
- const { tx }: { tx: EntityManager } = context.state
120
+ export async function deleteLocation(id: string, context: ResolverContext) {
121
+ const { tx } = context.state
122
122
 
123
123
  const repository: Repository<Location> = tx.getRepository(Location)
124
124
  await repository.delete(id)
125
125
  return true
126
126
  }
127
127
 
128
- export async function deleteLocations(ids: string[], context: any) {
129
- const { tx }: { tx: EntityManager } = context.state
128
+ export async function deleteLocations(ids: string[], context: ResolverContext) {
129
+ const { tx } = context.state
130
130
 
131
131
  const repository: Repository<Location> = tx.getRepository(Location)
132
132
  await repository.delete(ids)