@things-factory/operato-hub 4.3.79-alpha.1 → 4.3.79

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 (168) hide show
  1. package/dist-server/middlewares/business-middleware.js +1 -4
  2. package/dist-server/middlewares/business-middleware.js.map +1 -1
  3. package/dist-server/middlewares/store-middleware.js.map +1 -1
  4. package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js +2 -3
  5. package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js.map +1 -1
  6. package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js +2 -5
  7. package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js.map +1 -1
  8. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js +2 -4
  9. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js.map +1 -1
  10. package/dist-server/routers/api/restful-apis/v1/bizplace.js +45 -0
  11. package/dist-server/routers/api/restful-apis/v1/bizplace.js.map +1 -0
  12. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js +103 -0
  13. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js.map +1 -0
  14. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js +47 -0
  15. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js.map +1 -0
  16. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js +124 -0
  17. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js.map +1 -0
  18. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js +164 -0
  19. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js.map +1 -0
  20. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js +120 -0
  21. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js.map +1 -0
  22. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js +115 -0
  23. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js.map +1 -0
  24. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js +125 -0
  25. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js.map +1 -0
  26. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js +88 -0
  27. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js.map +1 -0
  28. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js +79 -0
  29. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js.map +1 -0
  30. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js +110 -0
  31. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js.map +1 -0
  32. package/dist-server/routers/api/restful-apis/v1/get-partners.js +23 -0
  33. package/dist-server/routers/api/restful-apis/v1/get-partners.js.map +1 -0
  34. package/dist-server/routers/api/restful-apis/v1/get-products.js +210 -0
  35. package/dist-server/routers/api/restful-apis/v1/get-products.js.map +1 -0
  36. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js +122 -0
  37. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js.map +1 -0
  38. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js +191 -0
  39. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js.map +1 -0
  40. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js +20 -0
  41. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js.map +1 -0
  42. package/dist-server/routers/api/restful-apis/v1/index.js +31 -2
  43. package/dist-server/routers/api/restful-apis/v1/index.js.map +1 -1
  44. package/package.json +54 -54
  45. package/server/middlewares/business-middleware.ts +1 -5
  46. package/server/middlewares/store-middleware.ts +0 -1
  47. package/server/routers/api/restful-apis/unstable/add-draft-release-order.ts +2 -3
  48. package/server/routers/api/restful-apis/unstable/add-inbound-order.ts +2 -5
  49. package/server/routers/api/restful-apis/unstable/add-release-order.ts +2 -4
  50. package/server/routers/api/restful-apis/v1/bizplace.ts +45 -0
  51. package/server/routers/api/restful-apis/v1/get-contact-point-list.ts +110 -0
  52. package/server/routers/api/restful-apis/v1/get-delivery-order-detail.ts +46 -0
  53. package/server/routers/api/restful-apis/v1/get-delivery-order-list.ts +121 -0
  54. package/server/routers/api/restful-apis/v1/get-delivery-orders.ts +178 -0
  55. package/server/routers/api/restful-apis/v1/get-goods-received-notes.ts +134 -0
  56. package/server/routers/api/restful-apis/v1/get-inbound-order-detail.ts +128 -0
  57. package/server/routers/api/restful-apis/v1/get-inbound-order-list.ts +126 -0
  58. package/server/routers/api/restful-apis/v1/get-inventory-overall-product-group.ts +99 -0
  59. package/server/routers/api/restful-apis/v1/get-marketplace-store-list.ts +81 -0
  60. package/server/routers/api/restful-apis/v1/get-onhand-inventories.ts +125 -0
  61. package/server/routers/api/restful-apis/v1/get-partners.ts +24 -0
  62. package/server/routers/api/restful-apis/v1/get-products.ts +216 -0
  63. package/server/routers/api/restful-apis/v1/get-release-order-detail.ts +134 -0
  64. package/server/routers/api/restful-apis/v1/get-release-order-list.ts +198 -0
  65. package/server/routers/api/restful-apis/v1/get-warehouses.ts +18 -0
  66. package/server/routers/api/restful-apis/v1/index.ts +31 -2
  67. package/dist-server/routers/api/restful-apis/v1/company/add-contact-points.js +0 -94
  68. package/dist-server/routers/api/restful-apis/v1/company/add-contact-points.js.map +0 -1
  69. package/dist-server/routers/api/restful-apis/v1/company/add-marketplace-order.js +0 -208
  70. package/dist-server/routers/api/restful-apis/v1/company/add-marketplace-order.js.map +0 -1
  71. package/dist-server/routers/api/restful-apis/v1/company/add-product.js +0 -65
  72. package/dist-server/routers/api/restful-apis/v1/company/add-product.js.map +0 -1
  73. package/dist-server/routers/api/restful-apis/v1/company/cancel-marketplace-order.js +0 -97
  74. package/dist-server/routers/api/restful-apis/v1/company/cancel-marketplace-order.js.map +0 -1
  75. package/dist-server/routers/api/restful-apis/v1/company/get-bizplace-list.js +0 -50
  76. package/dist-server/routers/api/restful-apis/v1/company/get-bizplace-list.js.map +0 -1
  77. package/dist-server/routers/api/restful-apis/v1/company/get-contact-point-list.js +0 -63
  78. package/dist-server/routers/api/restful-apis/v1/company/get-contact-point-list.js.map +0 -1
  79. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.js +0 -110
  80. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.js.map +0 -1
  81. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-store-list.js +0 -52
  82. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-store-list.js.map +0 -1
  83. package/dist-server/routers/api/restful-apis/v1/company/get-partner-list.js +0 -90
  84. package/dist-server/routers/api/restful-apis/v1/company/get-partner-list.js.map +0 -1
  85. package/dist-server/routers/api/restful-apis/v1/company/get-product-list.js +0 -99
  86. package/dist-server/routers/api/restful-apis/v1/company/get-product-list.js.map +0 -1
  87. package/dist-server/routers/api/restful-apis/v1/company/index.js +0 -14
  88. package/dist-server/routers/api/restful-apis/v1/company/index.js.map +0 -1
  89. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.js +0 -65
  90. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.js.map +0 -1
  91. package/dist-server/routers/api/restful-apis/v1/middlewares/business-middleware.js +0 -29
  92. package/dist-server/routers/api/restful-apis/v1/middlewares/business-middleware.js.map +0 -1
  93. package/dist-server/routers/api/restful-apis/v1/middlewares/index.js +0 -40
  94. package/dist-server/routers/api/restful-apis/v1/middlewares/index.js.map +0 -1
  95. package/dist-server/routers/api/restful-apis/v1/middlewares/logging-middleware.js +0 -23
  96. package/dist-server/routers/api/restful-apis/v1/middlewares/logging-middleware.js.map +0 -1
  97. package/dist-server/routers/api/restful-apis/v1/middlewares/store-middleware.js +0 -32
  98. package/dist-server/routers/api/restful-apis/v1/middlewares/store-middleware.js.map +0 -1
  99. package/dist-server/routers/api/restful-apis/v1/middlewares/validation-middleware.js +0 -53
  100. package/dist-server/routers/api/restful-apis/v1/middlewares/validation-middleware.js.map +0 -1
  101. package/dist-server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.js +0 -31
  102. package/dist-server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.js.map +0 -1
  103. package/dist-server/routers/api/restful-apis/v1/utils/error-util.js +0 -71
  104. package/dist-server/routers/api/restful-apis/v1/utils/error-util.js.map +0 -1
  105. package/dist-server/routers/api/restful-apis/v1/utils/expected-parameters.js +0 -201
  106. package/dist-server/routers/api/restful-apis/v1/utils/expected-parameters.js.map +0 -1
  107. package/dist-server/routers/api/restful-apis/v1/utils/params.js +0 -293
  108. package/dist-server/routers/api/restful-apis/v1/utils/params.js.map +0 -1
  109. package/dist-server/routers/api/restful-apis/v1/utils/validate-util.js +0 -90
  110. package/dist-server/routers/api/restful-apis/v1/utils/validate-util.js.map +0 -1
  111. package/dist-server/routers/api/restful-apis/v1/warehouse/add-inbound-order.js +0 -277
  112. package/dist-server/routers/api/restful-apis/v1/warehouse/add-inbound-order.js.map +0 -1
  113. package/dist-server/routers/api/restful-apis/v1/warehouse/add-release-order.js +0 -810
  114. package/dist-server/routers/api/restful-apis/v1/warehouse/add-release-order.js.map +0 -1
  115. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.js +0 -116
  116. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.js.map +0 -1
  117. package/dist-server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.js +0 -140
  118. package/dist-server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.js.map +0 -1
  119. package/dist-server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.js +0 -100
  120. package/dist-server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.js.map +0 -1
  121. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.js +0 -78
  122. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.js.map +0 -1
  123. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.js +0 -96
  124. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.js.map +0 -1
  125. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.js +0 -244
  126. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.js.map +0 -1
  127. package/dist-server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.js +0 -96
  128. package/dist-server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.js.map +0 -1
  129. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-details.js +0 -94
  130. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-details.js.map +0 -1
  131. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-list.js +0 -112
  132. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-list.js.map +0 -1
  133. package/dist-server/routers/api/restful-apis/v1/warehouse/index.js +0 -13
  134. package/dist-server/routers/api/restful-apis/v1/warehouse/index.js.map +0 -1
  135. package/server/routers/api/restful-apis/v1/company/add-contact-points.ts +0 -94
  136. package/server/routers/api/restful-apis/v1/company/add-marketplace-order.ts +0 -242
  137. package/server/routers/api/restful-apis/v1/company/add-product.ts +0 -78
  138. package/server/routers/api/restful-apis/v1/company/cancel-marketplace-order.ts +0 -102
  139. package/server/routers/api/restful-apis/v1/company/get-bizplace-list.ts +0 -56
  140. package/server/routers/api/restful-apis/v1/company/get-contact-point-list.ts +0 -69
  141. package/server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.ts +0 -118
  142. package/server/routers/api/restful-apis/v1/company/get-marketplace-store-list.ts +0 -58
  143. package/server/routers/api/restful-apis/v1/company/get-partner-list.ts +0 -97
  144. package/server/routers/api/restful-apis/v1/company/get-product-list.ts +0 -105
  145. package/server/routers/api/restful-apis/v1/company/index.ts +0 -11
  146. package/server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.ts +0 -70
  147. package/server/routers/api/restful-apis/v1/middlewares/business-middleware.ts +0 -31
  148. package/server/routers/api/restful-apis/v1/middlewares/index.ts +0 -26
  149. package/server/routers/api/restful-apis/v1/middlewares/logging-middleware.ts +0 -24
  150. package/server/routers/api/restful-apis/v1/middlewares/store-middleware.ts +0 -34
  151. package/server/routers/api/restful-apis/v1/middlewares/validation-middleware.ts +0 -50
  152. package/server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.ts +0 -31
  153. package/server/routers/api/restful-apis/v1/utils/error-util.ts +0 -70
  154. package/server/routers/api/restful-apis/v1/utils/expected-parameters.ts +0 -199
  155. package/server/routers/api/restful-apis/v1/utils/params.ts +0 -291
  156. package/server/routers/api/restful-apis/v1/utils/validate-util.ts +0 -74
  157. package/server/routers/api/restful-apis/v1/warehouse/add-inbound-order.ts +0 -361
  158. package/server/routers/api/restful-apis/v1/warehouse/add-release-order.ts +0 -1000
  159. package/server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.ts +0 -139
  160. package/server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.ts +0 -144
  161. package/server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.ts +0 -109
  162. package/server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.ts +0 -74
  163. package/server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.ts +0 -99
  164. package/server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.ts +0 -295
  165. package/server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.ts +0 -99
  166. package/server/routers/api/restful-apis/v1/warehouse/get-release-order-details.ts +0 -97
  167. package/server/routers/api/restful-apis/v1/warehouse/get-release-order-list.ts +0 -116
  168. package/server/routers/api/restful-apis/v1/warehouse/index.ts +0 -10
@@ -1,56 +0,0 @@
1
- import { getRepository } from 'typeorm'
2
-
3
- import { restfulApiRouter as router } from '@things-factory/api'
4
- import { Bizplace } from '@things-factory/biz-base'
5
-
6
- import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
7
- import { validateLimitOffset } from '../utils/validate-util'
8
- import { businessMiddleware, validationMiddleware, loggingMiddleware } from '../middlewares'
9
-
10
- router.get(
11
- '/v1/company/get-bizplace-list',
12
- businessMiddleware,
13
- validationMiddleware,
14
- loggingMiddleware,
15
- async (context, next) => {
16
- try {
17
- const { limit, offset } = validateLimitOffset(context.query.limit, context.query.offset)
18
-
19
- // get bizplaces for that company
20
- const companyId = context.state.business.id
21
- const [bizplaces, totalCount]: Bizplace[] = await getRepository(Bizplace).findAndCount({
22
- where: { company: companyId },
23
- relations: ['domain'],
24
- skip: offset,
25
- take: limit,
26
- order: { createdAt: 'DESC' }
27
- })
28
-
29
- // create and format data response
30
- let data = []
31
- for (const bizplace of bizplaces) {
32
- const datapoint = {
33
- bizplace: {
34
- id: bizplace.id,
35
- name: bizplace.name,
36
- description: bizplace.description,
37
- address: bizplace.address,
38
- postalCode: bizplace.postalCode
39
- },
40
- extType: bizplace.domain.extType
41
- }
42
- data.push(datapoint)
43
- }
44
-
45
- context.body = {
46
- data,
47
- totalCount,
48
- limit,
49
- offset
50
- }
51
- } catch (e) {
52
- if (e instanceof ApiError) ApiErrorHandler(context, e)
53
- else throwInternalServerError(context, e)
54
- }
55
- }
56
- )
@@ -1,69 +0,0 @@
1
- import { getRepository } from 'typeorm'
2
-
3
- import { restfulApiRouter as router } from '@things-factory/api'
4
- import { ContactPoint } from '@things-factory/biz-base'
5
-
6
- import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
7
- import { validateLimitOffset } from '../utils/validate-util'
8
- import { businessMiddleware, validationMiddleware, loggingMiddleware } from '../middlewares'
9
-
10
- router.get(
11
- '/v1/company/get-contact-point-list',
12
- businessMiddleware,
13
- validationMiddleware,
14
- loggingMiddleware,
15
- async (context, next) => {
16
- try {
17
- const { limit, offset } = validateLimitOffset(context.query.limit, context.query.offset)
18
-
19
- // get contact points for that bizplace
20
- // optional query parameter filter
21
- let filter = { ...context.query }
22
- // map query field to database column
23
- filter['bizplace'] = filter['bizplaceId']
24
- delete filter['bizplaceId']
25
- delete filter['limit']
26
- delete filter['offset']
27
- const [contactPoints, totalCount]: ContactPoint[] = await getRepository(ContactPoint).findAndCount({
28
- where: filter,
29
- relations: ['bizplace'],
30
- skip: offset,
31
- take: limit,
32
- order: { createdAt: 'DESC' }
33
- })
34
-
35
- // create and format data response
36
- let data = []
37
- for (const contactPoint of contactPoints) {
38
- const datapoint = {
39
- bizplace: {
40
- id: contactPoint.bizplace.id,
41
- name: contactPoint.bizplace.name
42
- },
43
- name: contactPoint.name,
44
- companyName: contactPoint.companyName,
45
- email: contactPoint.email,
46
- fax: contactPoint.fax,
47
- phone: contactPoint.phone,
48
- accountNo: contactPoint.accountNo,
49
- address: contactPoint.address,
50
- address2: contactPoint.address2,
51
- city: contactPoint.city,
52
- postCode: contactPoint.postCode,
53
- type: contactPoint.type
54
- }
55
- data.push(datapoint)
56
- }
57
-
58
- context.body = {
59
- data,
60
- totalCount,
61
- limit,
62
- offset
63
- }
64
- } catch (e) {
65
- if (e instanceof ApiError) ApiErrorHandler(context, e)
66
- else throwInternalServerError(context, e)
67
- }
68
- }
69
- )
@@ -1,118 +0,0 @@
1
- import { getRepository, Between } from 'typeorm'
2
-
3
- import { restfulApiRouter as router } from '@things-factory/api'
4
- import { MarketplaceOrderShipping } from '@things-factory/marketplace-base'
5
-
6
- import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
7
- import { validateFromToDate, validateLimitOffset } from '../utils/validate-util'
8
- import _ from 'lodash'
9
- import { businessMiddleware, validationMiddleware, loggingMiddleware } from '../middlewares'
10
-
11
- router.get(
12
- '/v1/company/get-marketplace-order-shipping-list',
13
- businessMiddleware,
14
- validationMiddleware,
15
- loggingMiddleware,
16
- async (context, next) => {
17
- try {
18
- const { limit, offset } = validateLimitOffset(context.query.limit, context.query.offset)
19
- const { fromDate, toDate } = validateFromToDate(context.query.fromDate, context.query.toDate)
20
-
21
- let filter = { ...context.query }
22
- const domainId = context.state.domain.id
23
- filter.marketplaceStore = {}
24
- filter.marketplaceStore.name = filter.storeId
25
- filter.domain = domainId
26
-
27
- // map optional fields to db columns
28
- if (_.has(filter, 'shippingNo')) {
29
- filter['name'] = filter['shippingNo']
30
- delete filter['shippingNo']
31
- }
32
- if (_.has(filter, 'orderNo')) {
33
- filter['orderNoRef'] = filter['orderNo']
34
- delete filter['orderNo']
35
- }
36
-
37
- filter['createdAt'] = Between(fromDate, toDate)
38
-
39
- delete filter['storeId']
40
- delete filter['fromDate']
41
- delete filter['toDate']
42
- delete filter['limit']
43
- delete filter['offset']
44
- // get marketplace order shippings for that domain
45
- const [marketplaceOrderShippings, totalCount]: MarketplaceOrderShipping[] = await getRepository(
46
- MarketplaceOrderShipping
47
- ).findAndCount({
48
- where: filter,
49
- relations: [
50
- 'marketplaceStore',
51
- 'marketplaceOrderShippingItems',
52
- 'marketplaceOrderShippingItems.marketplaceOrderItem',
53
- 'marketplaceOrderShippingItems.marketplaceOrderItem.marketplaceProductVariation'
54
- ],
55
- skip: offset,
56
- take: limit,
57
- order: { createdAt: 'DESC' }
58
- })
59
-
60
- // create and format data response
61
- let data = []
62
- for (const marketplaceOrderShipping of marketplaceOrderShippings) {
63
- const datapoint = {
64
- attentionTo: marketplaceOrderShipping.attentionTo,
65
- address1: marketplaceOrderShipping.address1,
66
- address2: marketplaceOrderShipping.address2,
67
- address3: marketplaceOrderShipping.address3,
68
- address4: marketplaceOrderShipping.address4,
69
- address5: marketplaceOrderShipping.address5,
70
- state: marketplaceOrderShipping.state,
71
- city: marketplaceOrderShipping.city,
72
- postCode: marketplaceOrderShipping.postCode,
73
- country: marketplaceOrderShipping.country,
74
- phone1: marketplaceOrderShipping.phone1,
75
- phone2: marketplaceOrderShipping.phone2,
76
- email: marketplaceOrderShipping.email,
77
- freightType: marketplaceOrderShipping.freightType,
78
- parcelType: marketplaceOrderShipping.parcelType,
79
- deliveryMethod: marketplaceOrderShipping.deliveryMethod,
80
- totalWeight: marketplaceOrderShipping.totalWeight,
81
- totalVolume: marketplaceOrderShipping.totalVolume,
82
- transporter: marketplaceOrderShipping.transporter,
83
- marketplaceStore: {
84
- name: marketplaceOrderShipping.marketplaceStore.name,
85
- storeId: marketplaceOrderShipping.marketplaceStore.id
86
- },
87
- marketplaceOrderItems: marketplaceOrderShipping.marketplaceOrderShippingItems.map(mposi => {
88
- return {
89
- marketplaceProductVariation: {
90
- variationId: mposi.marketplaceOrderItem.marketplaceProductVariation.variationId,
91
- sku: mposi.marketplaceOrderItem.marketplaceProductVariation.sku,
92
- variationSku: mposi.marketplaceOrderItem.marketplaceProductVariation.variationSku,
93
- variationName: mposi.marketplaceOrderItem.marketplaceProductVariation.name
94
- },
95
- orderItemId: mposi.marketplaceOrderItem.id,
96
- qty: mposi.marketplaceOrderItem.qty,
97
- cancelBy: mposi.marketplaceOrderItem.cancelBy,
98
- returnStatus: mposi.marketplaceOrderItem.returnStatus,
99
- packageId: mposi.marketplaceOrderItem.packageId,
100
- status: mposi.marketplaceOrderItem.status
101
- }
102
- })
103
- }
104
- data.push(datapoint)
105
- }
106
-
107
- context.body = {
108
- data,
109
- totalCount,
110
- limit,
111
- offset
112
- }
113
- } catch (e) {
114
- if (e instanceof ApiError) ApiErrorHandler(context, e)
115
- else throwInternalServerError(context, e)
116
- }
117
- }
118
- )
@@ -1,58 +0,0 @@
1
- import { getRepository } from 'typeorm'
2
-
3
- import { restfulApiRouter as router } from '@things-factory/api'
4
- import { MarketplaceStore } from '@things-factory/integration-marketplace'
5
-
6
- import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
7
- import { validateLimitOffset } from '../utils/validate-util'
8
- import { businessMiddleware, validationMiddleware, loggingMiddleware } from '../middlewares'
9
-
10
- router.get(
11
- '/v1/company/get-marketplace-store-list',
12
- businessMiddleware,
13
- validationMiddleware,
14
- loggingMiddleware,
15
- async (context, next) => {
16
- try {
17
- const { limit, offset } = validateLimitOffset(context.query.limit, context.query.offset)
18
-
19
- // get marketplace stores for that domain
20
- const domainId = context.state.domain.id
21
- const [marketplaceStores, totalCount]: MarketplaceStore[] = await getRepository(MarketplaceStore).findAndCount({
22
- where: { domain: domainId },
23
- skip: offset,
24
- take: limit,
25
- order: { createdAt: 'DESC' }
26
- })
27
-
28
- // create and format data response
29
- let data = []
30
- for (const marketplaceStore of marketplaceStores) {
31
- const datapoint = {
32
- id: marketplaceStore.id,
33
- name: marketplaceStore.name,
34
- platform: marketplaceStore.platform,
35
- eTrax: marketplaceStore.eTrax,
36
- storeName: marketplaceStore.storeName,
37
- storeUrl: marketplaceStore.storeUrl,
38
- isAutoUpdateStockQty: marketplaceStore.isAutoUpdateStockQty,
39
- isAutoUpdateShipment: marketplaceStore.isAutoUpdateShipment,
40
- storeId: marketplaceStore.storeId,
41
- countryCode: marketplaceStore.countryCode,
42
- status: marketplaceStore.status
43
- }
44
- data.push(datapoint)
45
- }
46
-
47
- context.body = {
48
- data,
49
- totalCount,
50
- limit,
51
- offset
52
- }
53
- } catch (e) {
54
- if (e instanceof ApiError) ApiErrorHandler(context, e)
55
- else throwInternalServerError(context, e)
56
- }
57
- }
58
- )
@@ -1,97 +0,0 @@
1
- import { getRepository } from 'typeorm'
2
-
3
- import { restfulApiRouter as router } from '@things-factory/api'
4
- import { Bizplace } from '@things-factory/biz-base'
5
- import { Partner } from '@things-factory/auth-base'
6
-
7
- import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
8
- import { validateLimitOffset } from '../utils/validate-util'
9
- import { businessMiddleware, validationMiddleware, loggingMiddleware } from '../middlewares'
10
-
11
- router.get(
12
- '/v1/company/get-partner-list',
13
- businessMiddleware,
14
- validationMiddleware,
15
- loggingMiddleware,
16
- async (context, next) => {
17
- try {
18
- const { limit, offset } = validateLimitOffset(context.query.limit, context.query.offset)
19
-
20
- //validate bizplace belongs to company
21
- const companyId = context.state.business.id
22
- const { bizplaceId } = context.query
23
- const bizplace: Bizplace = await getRepository(Bizplace).findOne({
24
- where: { company: companyId, id: bizplaceId },
25
- relations: ['domain']
26
- })
27
- if (!bizplace) throw new ApiError('E01', 'bizplaceId')
28
-
29
- const partners: Partner[] = await getRepository(Partner)
30
- .createQueryBuilder('p')
31
- .innerJoinAndSelect('bizplaces', 'bpp', 'bpp.domain_id = p.partner_domain_id')
32
- .innerJoinAndSelect('bizplaces', 'bpo', 'bpo.domain_id = p.domain_id')
33
- .innerJoinAndSelect('domains', 'dp', 'bpp.domain_id = dp.id')
34
- .innerJoinAndSelect('domains', 'do', 'bpo.domain_id = do.id')
35
- .where('p.partner_domain_id = :domainId', { domainId: bizplace.domain.id })
36
- .orWhere('p.domain_id = :domainId', { domainId: bizplace.domain.id })
37
- .limit(limit)
38
- .offset(offset)
39
- .orderBy('p.created_at', 'DESC')
40
- .getRawMany()
41
-
42
- const count = await getRepository(Partner)
43
- .createQueryBuilder('p')
44
- .select('COUNT(p.id)')
45
- .innerJoin('bizplaces', 'bpp', 'bpp.domain_id = p.partner_domain_id')
46
- .innerJoin('bizplaces', 'bpo', 'bpo.domain_id = p.domain_id')
47
- .innerJoin('domains', 'dp', 'bpp.domain_id = dp.id')
48
- .innerJoin('domains', 'do', 'bpo.domain_id = do.id')
49
- .where('p.partner_domain_id = :domainId', { domainId: bizplace.domain.id })
50
- .orWhere('p.domain_id = :domainId', { domainId: bizplace.domain.id })
51
- .getRawOne()
52
-
53
- const totalCount = parseInt(count.count)
54
-
55
- let data = []
56
- for (const partner of partners) {
57
- let datapoint = {}
58
- if (partner.bpo_id === bizplaceId) {
59
- datapoint = {
60
- bizplace: {
61
- id: partner.bpp_id,
62
- name: partner.bpp_name,
63
- description: partner.bpp_description,
64
- address: partner.bpp_address,
65
- postalCode: partner.bpp_postal_code
66
- },
67
- partnershipOwner: false,
68
- extType: partner.dp_ext_type
69
- }
70
- } else {
71
- datapoint = {
72
- bizplace: {
73
- id: partner.bpo_id,
74
- name: partner.bpo_name,
75
- description: partner.bpo_description,
76
- address: partner.bpo_address,
77
- postalCode: partner.bpo_postal_code
78
- },
79
- partnershipOwner: true,
80
- extType: partner.do_ext_type
81
- }
82
- }
83
- data.push(datapoint)
84
- }
85
-
86
- context.body = {
87
- data,
88
- totalCount,
89
- limit,
90
- offset
91
- }
92
- } catch (e) {
93
- if (e instanceof ApiError) ApiErrorHandler(context, e)
94
- else throwInternalServerError(context, e)
95
- }
96
- }
97
- )
@@ -1,105 +0,0 @@
1
- import { getRepository } from 'typeorm'
2
-
3
- import { restfulApiRouter as router } from '@things-factory/api'
4
- import { Product } from '@things-factory/product-base'
5
-
6
- import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
7
- import { validateLimitOffset } from '../utils/validate-util'
8
- import { businessMiddleware, validationMiddleware, loggingMiddleware } from '../middlewares'
9
-
10
- router.get(
11
- '/v1/company/get-product-list',
12
- businessMiddleware,
13
- validationMiddleware,
14
- loggingMiddleware,
15
- async (context, next) => {
16
- try {
17
- const { limit, offset } = validateLimitOffset(context.query.limit, context.query.offset)
18
-
19
- // get productDetails for that bizplace/domain
20
- // optional query parameter filter
21
- let filter = { ...context.query }
22
- // map query field to database column
23
- filter['bizplace'] = filter['bizplaceId']
24
- delete filter['bizplaceId']
25
- delete filter['limit']
26
- delete filter['offset']
27
- const [products, totalCount]: Product[] = await getRepository(Product).findAndCount({
28
- where: filter,
29
- relations: ['productDetails'],
30
- skip: offset,
31
- take: limit,
32
- order: { createdAt: 'DESC' }
33
- })
34
-
35
- // create and format data response
36
- let data = []
37
- for (const product of products) {
38
- let productDetails = []
39
- for (const productDetail of product.productDetails) {
40
- const productDetailDataPoint = {
41
- isDefault: productDetail.isDefault,
42
- gtin: productDetail.gtin,
43
- refCode: productDetail.refCode,
44
- packingType: productDetail.packingType,
45
- packingSize: productDetail.packingSize,
46
- uom: productDetail.uom,
47
- uomValue: productDetail.uomValue,
48
- costPrice: productDetail.costPrice,
49
- minQty: productDetail.minQty,
50
- maxQty: productDetail.maxQty,
51
- bufferQty: productDetail.bufferQty,
52
- movement: productDetail.movement,
53
- weightUnit: productDetail.weightUnit,
54
- nettWeight: productDetail.nettWeight,
55
- grossWeight: productDetail.grossWeight,
56
- lengthUnit: productDetail.lengthUnit,
57
- width: productDetail.width,
58
- depth: productDetail.depth,
59
- height: productDetail.height,
60
- volume: productDetail.volume,
61
- auxUnit1: productDetail.auxUnit1,
62
- auxValue1: productDetail.auxValue1,
63
- auxUnit2: productDetail.auxUnit2,
64
- auxValue2: productDetail.auxValue2,
65
- auxUnit3: productDetail.auxUnit3,
66
- auxValue3: productDetail.auxValue3,
67
- auxUnit4: productDetail.auxUnit4,
68
- auxValue4: productDetail.auxValue4,
69
- auxUnit5: productDetail.auxUnit5,
70
- auxValue5: productDetail.auxValue5,
71
- childProductDetail: productDetail.childProductDetail
72
- }
73
- productDetails.push(productDetailDataPoint)
74
- }
75
- const datapoint = {
76
- sku: product.sku,
77
- brandSku: product.brandSku,
78
- name: product.name,
79
- description: product.description,
80
- type: product.type,
81
- brand: product.brand,
82
- subBrand: product.subBrand,
83
- isRequiredCheckExpiry: product.isRequiredCheckExpiry,
84
- isRequireSerialNumberScanning: product.isRequireSerialNumberScanning,
85
- isRequireSerialNumberScanningInbound: product.isRequireSerialNumberScanningInbound,
86
- isRequireSerialNumberScanningOutbound: product.isRequireSerialNumberScanningOutbound,
87
- pickingStrategy: product.pickingStrategy,
88
- expirationPeriod: product.expirationPeriod,
89
- productDetails
90
- }
91
- data.push(datapoint)
92
- }
93
-
94
- context.body = {
95
- data,
96
- totalCount,
97
- limit,
98
- offset
99
- }
100
- } catch (e) {
101
- if (e instanceof ApiError) ApiErrorHandler(context, e)
102
- else throwInternalServerError(context, e)
103
- }
104
- }
105
- )
@@ -1,11 +0,0 @@
1
- import './add-contact-points'
2
- import './add-marketplace-order'
3
- import './add-product'
4
- import './cancel-marketplace-order'
5
- import './get-bizplace-list'
6
- import './get-contact-point-list'
7
- import './get-marketplace-order-shipping-list'
8
- import './get-marketplace-store-list'
9
- import './get-partner-list'
10
- import './get-product-list'
11
- import './update-marketplace-order-delivered'
@@ -1,70 +0,0 @@
1
- import { getRepository } from 'typeorm'
2
-
3
- import { restfulApiRouter as router } from '@things-factory/api'
4
- import { MarketplaceOrder } from '@things-factory/marketplace-base'
5
- import { MarketplaceStore } from '@things-factory/integration-marketplace'
6
-
7
- import { businessMiddleware } from '../middlewares/business-middleware'
8
- import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
9
- import { expectedParams, reqParams } from '../utils/expected-parameters'
10
- import { validateFilter, validateReqParams } from '../utils/validate-util'
11
- import { loggingMiddleware } from '../middlewares/logging-middleware'
12
-
13
- router.post(
14
- '/v1/company/update-marketplace-order-delivered',
15
- businessMiddleware,
16
- loggingMiddleware,
17
- async (context, next) => {
18
- try {
19
- validateReqParams(context.request.body, reqParams.requireDataKey)
20
- validateFilter(context.request.body, expectedParams.requireDataKey)
21
- validateReqParams(context.request.body.data, reqParams.cancelMarketplaceOrder)
22
- validateFilter(context.request.body.data, expectedParams.cancelMarketplaceOrder)
23
-
24
- // check if name exists under the domain of the requester
25
- const marketplaceStore: MarketplaceStore = await getRepository(MarketplaceStore).findOne({
26
- where: { name: context.request.body.data.storeId, domain: context.state.business.domain }
27
- })
28
- if (!marketplaceStore) throw new ApiError('E01', 'storeId does not exist')
29
-
30
- // update values to DB
31
- // restricted to marketplaceStores in the domain of the requester
32
- const datapoint = context.request.body.data
33
- const result = await getRepository(MarketplaceOrder)
34
- .createQueryBuilder()
35
- .update(MarketplaceOrder)
36
- .set({ status: 'delivered' })
37
- .where({ orderNo: datapoint.orderNo, marketplaceStore })
38
- .execute()
39
- if (result.affected !== 1) throw new ApiError('E01', 'orderNo is invalid')
40
-
41
- const marketplaceOrder: MarketplaceOrder = await getRepository(MarketplaceOrder).findOne({
42
- where: { orderNo: datapoint.orderNo, marketplaceStore },
43
- relations: ['domain', 'marketplaceStore', 'updater']
44
- })
45
-
46
- // create and format response
47
- const data = {
48
- orderNo: marketplaceOrder.orderNo,
49
- status: marketplaceOrder.status,
50
- updatedAt: marketplaceOrder.updatedAt,
51
- domain: {
52
- name: marketplaceOrder.domain.name
53
- },
54
- marketplaceStore: {
55
- name: marketplaceOrder.marketplaceStore.storeName
56
- },
57
- updater: {
58
- name: marketplaceOrder.updater.name
59
- }
60
- }
61
-
62
- context.body = {
63
- data
64
- }
65
- } catch (e) {
66
- if (e instanceof ApiError) ApiErrorHandler(context, e)
67
- else throwInternalServerError(context, e)
68
- }
69
- }
70
- )
@@ -1,31 +0,0 @@
1
- import { getRepository } from 'typeorm'
2
-
3
- import { Bizplace, Company } from '@things-factory/biz-base'
4
- import { Domain, getDomainFromURL } from '@things-factory/shell'
5
-
6
- const debug = require('debug')('things-factory:operato-hub:business-middleware')
7
-
8
- export async function businessMiddleware(context, next) {
9
- const { user } = context.state
10
-
11
- debug('user', user?.email)
12
-
13
- if (user) {
14
- const domain: Domain = await getDomainFromURL(context)
15
-
16
- let company: Company
17
- if (domain.extType === 'company') {
18
- company = await getRepository(Company).findOne({ where: { domain }, relations: ['domain'] })
19
- } else {
20
- const bizplace: Bizplace = await getRepository(Bizplace).findOne({
21
- where: { domain },
22
- relations: ['company', 'domain']
23
- })
24
- company = bizplace.company
25
- }
26
-
27
- context.state.business = company
28
- }
29
-
30
- await next()
31
- }
@@ -1,26 +0,0 @@
1
- import { businessMiddleware } from './business-middleware'
2
-
3
- const debug = require('debug')('things-factory:operato-hub:index')
4
-
5
- export function initMiddlewares(app) {
6
- /*
7
- * post:graphql 에 대해서는 businessMiddleware를 적용한다.
8
- * graphql app을 router에 적용하지 못하기 때문임.
9
- */
10
- app.use(async (context, next) => {
11
- const { method, path } = context
12
-
13
- if (method == 'POST' && path.startsWith('/graphql')) {
14
- debug(method, path)
15
- return await businessMiddleware(context, next)
16
- }
17
-
18
- await next()
19
- })
20
- }
21
-
22
- export * from './business-middleware'
23
- export * from './logging-middleware'
24
- export * from './store-middleware'
25
- export * from './warehouse-middleware'
26
- export * from './validation-middleware'
@@ -1,24 +0,0 @@
1
- import { createPayloadLog, PayloadType } from '@things-factory/integration-base'
2
-
3
- // inserts payload log after successful endpoint request
4
- export async function loggingMiddleware(context, next) {
5
- // wait for endpoint logic to complete
6
- await next()
7
-
8
- // name of requester's domain
9
- const name = context.state.domain.name
10
-
11
- // endpoint that was queried
12
- const endpoint = context.req._parsedUrl.pathname
13
-
14
- // request body and query
15
- const request = {
16
- query: context.query,
17
- requestBody: context.request.body
18
- }
19
-
20
- // response
21
- const response = context.body
22
-
23
- await createPayloadLog(name, endpoint, request, response, context, PayloadType.INGESTION)
24
- }