@things-factory/operato-hub 6.2.102 → 6.2.103

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 (376) hide show
  1. package/dist-server/controllers/bizplace-initializer/codes.js +21 -0
  2. package/dist-server/controllers/bizplace-initializer/codes.js.map +1 -0
  3. package/dist-server/controllers/bizplace-initializer/dataset/codes.js +402 -0
  4. package/dist-server/controllers/bizplace-initializer/dataset/codes.js.map +1 -0
  5. package/dist-server/controllers/bizplace-initializer/dataset/groups.js +24 -0
  6. package/dist-server/controllers/bizplace-initializer/dataset/groups.js.map +1 -0
  7. package/dist-server/controllers/bizplace-initializer/dataset/index.js +9 -0
  8. package/dist-server/controllers/bizplace-initializer/dataset/index.js.map +1 -0
  9. package/dist-server/controllers/bizplace-initializer/dataset/menus.js +504 -0
  10. package/dist-server/controllers/bizplace-initializer/dataset/menus.js.map +1 -0
  11. package/dist-server/controllers/bizplace-initializer/dataset/roles-privileges.js +406 -0
  12. package/dist-server/controllers/bizplace-initializer/dataset/roles-privileges.js.map +1 -0
  13. package/dist-server/controllers/bizplace-initializer/dataset/settings.js +94 -0
  14. package/dist-server/controllers/bizplace-initializer/dataset/settings.js.map +1 -0
  15. package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain-roles.js +26 -0
  16. package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain-roles.js.map +1 -0
  17. package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain.js +44 -0
  18. package/dist-server/controllers/bizplace-initializer/generate-bizplace-domain.js.map +1 -0
  19. package/dist-server/controllers/bizplace-initializer/groups.js +18 -0
  20. package/dist-server/controllers/bizplace-initializer/groups.js.map +1 -0
  21. package/dist-server/controllers/bizplace-initializer/index.js +9 -0
  22. package/dist-server/controllers/bizplace-initializer/index.js.map +1 -0
  23. package/dist-server/controllers/bizplace-initializer/menus.js +28 -0
  24. package/dist-server/controllers/bizplace-initializer/menus.js.map +1 -0
  25. package/dist-server/controllers/bizplace-initializer/settings.js +16 -0
  26. package/dist-server/controllers/bizplace-initializer/settings.js.map +1 -0
  27. package/dist-server/controllers/company-initializer/business-register.js +48 -0
  28. package/dist-server/controllers/company-initializer/business-register.js.map +1 -0
  29. package/dist-server/controllers/company-initializer/codes.js +137 -0
  30. package/dist-server/controllers/company-initializer/codes.js.map +1 -0
  31. package/dist-server/controllers/company-initializer/generate-company-roles.js +117 -0
  32. package/dist-server/controllers/company-initializer/generate-company-roles.js.map +1 -0
  33. package/dist-server/controllers/company-initializer/index.js +10 -0
  34. package/dist-server/controllers/company-initializer/index.js.map +1 -0
  35. package/dist-server/controllers/company-initializer/menus.js +348 -0
  36. package/dist-server/controllers/company-initializer/menus.js.map +1 -0
  37. package/dist-server/controllers/company-initializer/settings.js +31 -0
  38. package/dist-server/controllers/company-initializer/settings.js.map +1 -0
  39. package/dist-server/controllers/company-initializer/transporter.js +18 -0
  40. package/dist-server/controllers/company-initializer/transporter.js.map +1 -0
  41. package/dist-server/controllers/index.js +1 -0
  42. package/dist-server/controllers/index.js.map +1 -0
  43. package/dist-server/controllers/invitation.js +119 -0
  44. package/dist-server/controllers/invitation.js.map +1 -0
  45. package/dist-server/controllers/utils/make-invitation-token.js +10 -0
  46. package/dist-server/controllers/utils/make-invitation-token.js.map +1 -0
  47. package/dist-server/controllers/utils/save-invitation-token.js +13 -0
  48. package/dist-server/controllers/utils/save-invitation-token.js.map +1 -0
  49. package/dist-server/entities/index.js +1 -0
  50. package/dist-server/entities/index.js.map +1 -0
  51. package/dist-server/errors/index.js +5 -0
  52. package/dist-server/errors/index.js.map +1 -0
  53. package/dist-server/errors/validation-error.js +14 -0
  54. package/dist-server/errors/validation-error.js.map +1 -0
  55. package/dist-server/graphql/index.js +11 -0
  56. package/dist-server/graphql/index.js.map +1 -0
  57. package/dist-server/graphql/resolvers/generators/generate-bizplace.js +38 -0
  58. package/dist-server/graphql/resolvers/generators/generate-bizplace.js.map +1 -0
  59. package/dist-server/graphql/resolvers/generators/generate-company.js +61 -0
  60. package/dist-server/graphql/resolvers/generators/generate-company.js.map +1 -0
  61. package/dist-server/graphql/resolvers/generators/index.js +8 -0
  62. package/dist-server/graphql/resolvers/generators/index.js.map +1 -0
  63. package/dist-server/graphql/resolvers/generators/update-domain-extType.js +46 -0
  64. package/dist-server/graphql/resolvers/generators/update-domain-extType.js.map +1 -0
  65. package/dist-server/graphql/resolvers/index.js +11 -0
  66. package/dist-server/graphql/resolvers/index.js.map +1 -0
  67. package/dist-server/graphql/resolvers/invitations/index.js +6 -0
  68. package/dist-server/graphql/resolvers/invitations/index.js.map +1 -0
  69. package/dist-server/graphql/resolvers/invitations/partner-invitation.js +52 -0
  70. package/dist-server/graphql/resolvers/invitations/partner-invitation.js.map +1 -0
  71. package/dist-server/graphql/resolvers/oauth2/company-roles-by-scope.js +33 -0
  72. package/dist-server/graphql/resolvers/oauth2/company-roles-by-scope.js.map +1 -0
  73. package/dist-server/graphql/resolvers/oauth2/index.js +6 -0
  74. package/dist-server/graphql/resolvers/oauth2/index.js.map +1 -0
  75. package/dist-server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.js +149 -0
  76. package/dist-server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.js.map +1 -0
  77. package/dist-server/graphql/resolvers/synchronization/create-dat-shipments.js +58 -0
  78. package/dist-server/graphql/resolvers/synchronization/create-dat-shipments.js.map +1 -0
  79. package/dist-server/graphql/resolvers/synchronization/fetch-sync-invoices.js +41 -0
  80. package/dist-server/graphql/resolvers/synchronization/fetch-sync-invoices.js.map +1 -0
  81. package/dist-server/graphql/resolvers/synchronization/fetch-sync-products.js +81 -0
  82. package/dist-server/graphql/resolvers/synchronization/fetch-sync-products.js.map +1 -0
  83. package/dist-server/graphql/resolvers/synchronization/fetch-sync-purchase-orders.js +57 -0
  84. package/dist-server/graphql/resolvers/synchronization/fetch-sync-purchase-orders.js.map +1 -0
  85. package/dist-server/graphql/resolvers/synchronization/index.js +16 -0
  86. package/dist-server/graphql/resolvers/synchronization/index.js.map +1 -0
  87. package/dist-server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.js +68 -0
  88. package/dist-server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.js.map +1 -0
  89. package/dist-server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.js +35 -0
  90. package/dist-server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.js.map +1 -0
  91. package/dist-server/graphql/resolvers/synchronization/sync-products-from-account.js +34 -0
  92. package/dist-server/graphql/resolvers/synchronization/sync-products-from-account.js.map +1 -0
  93. package/dist-server/graphql/resolvers/synchronization/sync-products-to-account.js +55 -0
  94. package/dist-server/graphql/resolvers/synchronization/sync-products-to-account.js.map +1 -0
  95. package/dist-server/graphql/resolvers/synchronization/sync-products-to-sellercraft.js +142 -0
  96. package/dist-server/graphql/resolvers/synchronization/sync-products-to-sellercraft.js.map +1 -0
  97. package/dist-server/graphql/types/generators/generate-bizplace-input.js +15 -0
  98. package/dist-server/graphql/types/generators/generate-bizplace-input.js.map +1 -0
  99. package/dist-server/graphql/types/generators/generate-company-input.js +15 -0
  100. package/dist-server/graphql/types/generators/generate-company-input.js.map +1 -0
  101. package/dist-server/graphql/types/generators/index.js +13 -0
  102. package/dist-server/graphql/types/generators/index.js.map +1 -0
  103. package/dist-server/graphql/types/generators/update-domain-type-input.js +12 -0
  104. package/dist-server/graphql/types/generators/update-domain-type-input.js.map +1 -0
  105. package/dist-server/graphql/types/index.js +12 -0
  106. package/dist-server/graphql/types/index.js.map +1 -0
  107. package/dist-server/graphql/types/invitations/index.js +9 -0
  108. package/dist-server/graphql/types/invitations/index.js.map +1 -0
  109. package/dist-server/graphql/types/oauth2/company-role.js +12 -0
  110. package/dist-server/graphql/types/oauth2/company-role.js.map +1 -0
  111. package/dist-server/graphql/types/oauth2/index.js +9 -0
  112. package/dist-server/graphql/types/oauth2/index.js.map +1 -0
  113. package/dist-server/graphql/types/synchronization/index.js +34 -0
  114. package/dist-server/graphql/types/synchronization/index.js.map +1 -0
  115. package/dist-server/graphql/types/synchronization/sync-invoice-list.js +12 -0
  116. package/dist-server/graphql/types/synchronization/sync-invoice-list.js.map +1 -0
  117. package/dist-server/graphql/types/synchronization/sync-invoice-set.js +42 -0
  118. package/dist-server/graphql/types/synchronization/sync-invoice-set.js.map +1 -0
  119. package/dist-server/graphql/types/synchronization/sync-product-list.js +12 -0
  120. package/dist-server/graphql/types/synchronization/sync-product-list.js.map +1 -0
  121. package/dist-server/graphql/types/synchronization/sync-product-set.js +12 -0
  122. package/dist-server/graphql/types/synchronization/sync-product-set.js.map +1 -0
  123. package/dist-server/graphql/types/synchronization/sync-purchase-order-list.js +12 -0
  124. package/dist-server/graphql/types/synchronization/sync-purchase-order-list.js.map +1 -0
  125. package/dist-server/graphql/types/synchronization/sync-purchase-order-set.js +32 -0
  126. package/dist-server/graphql/types/synchronization/sync-purchase-order-set.js.map +1 -0
  127. package/dist-server/index.js +29 -0
  128. package/dist-server/index.js.map +1 -0
  129. package/dist-server/middlewares/business-middleware.js +31 -0
  130. package/dist-server/middlewares/business-middleware.js.map +1 -0
  131. package/dist-server/middlewares/index.js +21 -0
  132. package/dist-server/middlewares/index.js.map +1 -0
  133. package/dist-server/middlewares/store-middleware.js +34 -0
  134. package/dist-server/middlewares/store-middleware.js.map +1 -0
  135. package/dist-server/middlewares/warehouse-middleware.js +34 -0
  136. package/dist-server/middlewares/warehouse-middleware.js.map +1 -0
  137. package/dist-server/migrations/1597668478399-SeedBusinessDomain.js +26 -0
  138. package/dist-server/migrations/1597668478399-SeedBusinessDomain.js.map +1 -0
  139. package/dist-server/migrations/1597668478401-SeedBusinessRoles.js +377 -0
  140. package/dist-server/migrations/1597668478401-SeedBusinessRoles.js.map +1 -0
  141. package/dist-server/migrations/1608009991065-SeedUser.js +52 -0
  142. package/dist-server/migrations/1608009991065-SeedUser.js.map +1 -0
  143. package/dist-server/migrations/index.js +12 -0
  144. package/dist-server/migrations/index.js.map +1 -0
  145. package/dist-server/routers/api/index.js +6 -0
  146. package/dist-server/routers/api/index.js.map +1 -0
  147. package/dist-server/routers/api/restful-apis/unstable/add-contact-point.js +74 -0
  148. package/dist-server/routers/api/restful-apis/unstable/add-contact-point.js.map +1 -0
  149. package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js +171 -0
  150. package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js.map +1 -0
  151. package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js +215 -0
  152. package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js.map +1 -0
  153. package/dist-server/routers/api/restful-apis/unstable/add-marketplace-order.js +142 -0
  154. package/dist-server/routers/api/restful-apis/unstable/add-marketplace-order.js.map +1 -0
  155. package/dist-server/routers/api/restful-apis/unstable/add-products.js +86 -0
  156. package/dist-server/routers/api/restful-apis/unstable/add-products.js.map +1 -0
  157. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js +850 -0
  158. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js.map +1 -0
  159. package/dist-server/routers/api/restful-apis/unstable/add-sales-invoice.js +127 -0
  160. package/dist-server/routers/api/restful-apis/unstable/add-sales-invoice.js.map +1 -0
  161. package/dist-server/routers/api/restful-apis/unstable/bizplace.js +43 -0
  162. package/dist-server/routers/api/restful-apis/unstable/bizplace.js.map +1 -0
  163. package/dist-server/routers/api/restful-apis/unstable/cancel-marketplace-order.js +61 -0
  164. package/dist-server/routers/api/restful-apis/unstable/cancel-marketplace-order.js.map +1 -0
  165. package/dist-server/routers/api/restful-apis/unstable/cancel-release-order.js +64 -0
  166. package/dist-server/routers/api/restful-apis/unstable/cancel-release-order.js.map +1 -0
  167. package/dist-server/routers/api/restful-apis/unstable/get-contact-point-list.js +101 -0
  168. package/dist-server/routers/api/restful-apis/unstable/get-contact-point-list.js.map +1 -0
  169. package/dist-server/routers/api/restful-apis/unstable/get-delivery-order-detail.js +45 -0
  170. package/dist-server/routers/api/restful-apis/unstable/get-delivery-order-detail.js.map +1 -0
  171. package/dist-server/routers/api/restful-apis/unstable/get-delivery-order-list.js +122 -0
  172. package/dist-server/routers/api/restful-apis/unstable/get-delivery-order-list.js.map +1 -0
  173. package/dist-server/routers/api/restful-apis/unstable/get-delivery-orders.js +162 -0
  174. package/dist-server/routers/api/restful-apis/unstable/get-delivery-orders.js.map +1 -0
  175. package/dist-server/routers/api/restful-apis/unstable/get-goods-received-notes.js +118 -0
  176. package/dist-server/routers/api/restful-apis/unstable/get-goods-received-notes.js.map +1 -0
  177. package/dist-server/routers/api/restful-apis/unstable/get-inbound-order-detail.js +113 -0
  178. package/dist-server/routers/api/restful-apis/unstable/get-inbound-order-detail.js.map +1 -0
  179. package/dist-server/routers/api/restful-apis/unstable/get-inbound-order-list.js +123 -0
  180. package/dist-server/routers/api/restful-apis/unstable/get-inbound-order-list.js.map +1 -0
  181. package/dist-server/routers/api/restful-apis/unstable/get-inventory-overall-product-group.js +86 -0
  182. package/dist-server/routers/api/restful-apis/unstable/get-inventory-overall-product-group.js.map +1 -0
  183. package/dist-server/routers/api/restful-apis/unstable/get-inventory-product-group.js +93 -0
  184. package/dist-server/routers/api/restful-apis/unstable/get-inventory-product-group.js.map +1 -0
  185. package/dist-server/routers/api/restful-apis/unstable/get-marketplace-order-shipping-list.js +144 -0
  186. package/dist-server/routers/api/restful-apis/unstable/get-marketplace-order-shipping-list.js.map +1 -0
  187. package/dist-server/routers/api/restful-apis/unstable/get-marketplace-store-list.js +77 -0
  188. package/dist-server/routers/api/restful-apis/unstable/get-marketplace-store-list.js.map +1 -0
  189. package/dist-server/routers/api/restful-apis/unstable/get-onhand-inventories.js +108 -0
  190. package/dist-server/routers/api/restful-apis/unstable/get-onhand-inventories.js.map +1 -0
  191. package/dist-server/routers/api/restful-apis/unstable/get-partners.js +24 -0
  192. package/dist-server/routers/api/restful-apis/unstable/get-partners.js.map +1 -0
  193. package/dist-server/routers/api/restful-apis/unstable/get-products.js +208 -0
  194. package/dist-server/routers/api/restful-apis/unstable/get-products.js.map +1 -0
  195. package/dist-server/routers/api/restful-apis/unstable/get-release-order-detail.js +123 -0
  196. package/dist-server/routers/api/restful-apis/unstable/get-release-order-detail.js.map +1 -0
  197. package/dist-server/routers/api/restful-apis/unstable/get-release-order-list.js +191 -0
  198. package/dist-server/routers/api/restful-apis/unstable/get-release-order-list.js.map +1 -0
  199. package/dist-server/routers/api/restful-apis/unstable/get-warehouses.js +20 -0
  200. package/dist-server/routers/api/restful-apis/unstable/get-warehouses.js.map +1 -0
  201. package/dist-server/routers/api/restful-apis/unstable/index.js +35 -0
  202. package/dist-server/routers/api/restful-apis/unstable/index.js.map +1 -0
  203. package/dist-server/routers/api/restful-apis/unstable/reject-inbound-order.js +33 -0
  204. package/dist-server/routers/api/restful-apis/unstable/reject-inbound-order.js.map +1 -0
  205. package/dist-server/routers/api/restful-apis/unstable/set-marketplace-order-delivered.js +43 -0
  206. package/dist-server/routers/api/restful-apis/unstable/set-marketplace-order-delivered.js.map +1 -0
  207. package/dist-server/routers/api/restful-apis/unstable/set-marketplace-order-failed-delivery.js +43 -0
  208. package/dist-server/routers/api/restful-apis/unstable/set-marketplace-order-failed-delivery.js.map +1 -0
  209. package/dist-server/routers/api/restful-apis/unstable/update-marketplace-order.js +91 -0
  210. package/dist-server/routers/api/restful-apis/unstable/update-marketplace-order.js.map +1 -0
  211. package/dist-server/routers/api/restful-apis/unstable/update-marketplace-shipping-order.js +86 -0
  212. package/dist-server/routers/api/restful-apis/unstable/update-marketplace-shipping-order.js.map +1 -0
  213. package/dist-server/routers/api/restful-apis/unstable/update-release-order-details.js +80 -0
  214. package/dist-server/routers/api/restful-apis/unstable/update-release-order-details.js.map +1 -0
  215. package/dist-server/routers/api/restful-apis/v1/add-contact-point.js +62 -0
  216. package/dist-server/routers/api/restful-apis/v1/add-contact-point.js.map +1 -0
  217. package/dist-server/routers/api/restful-apis/v1/add-draft-release-order.js +169 -0
  218. package/dist-server/routers/api/restful-apis/v1/add-draft-release-order.js.map +1 -0
  219. package/dist-server/routers/api/restful-apis/v1/add-inbound-order.js +212 -0
  220. package/dist-server/routers/api/restful-apis/v1/add-inbound-order.js.map +1 -0
  221. package/dist-server/routers/api/restful-apis/v1/add-marketplace-order.js +142 -0
  222. package/dist-server/routers/api/restful-apis/v1/add-marketplace-order.js.map +1 -0
  223. package/dist-server/routers/api/restful-apis/v1/add-products.js +86 -0
  224. package/dist-server/routers/api/restful-apis/v1/add-products.js.map +1 -0
  225. package/dist-server/routers/api/restful-apis/v1/add-release-order.js +772 -0
  226. package/dist-server/routers/api/restful-apis/v1/add-release-order.js.map +1 -0
  227. package/dist-server/routers/api/restful-apis/v1/bizplace.js +43 -0
  228. package/dist-server/routers/api/restful-apis/v1/bizplace.js.map +1 -0
  229. package/dist-server/routers/api/restful-apis/v1/cancel-marketplace-order.js +61 -0
  230. package/dist-server/routers/api/restful-apis/v1/cancel-marketplace-order.js.map +1 -0
  231. package/dist-server/routers/api/restful-apis/v1/cancel-release-order.js +64 -0
  232. package/dist-server/routers/api/restful-apis/v1/cancel-release-order.js.map +1 -0
  233. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js +101 -0
  234. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js.map +1 -0
  235. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js +45 -0
  236. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js.map +1 -0
  237. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js +122 -0
  238. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js.map +1 -0
  239. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js +162 -0
  240. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js.map +1 -0
  241. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js +118 -0
  242. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js.map +1 -0
  243. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js +113 -0
  244. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js.map +1 -0
  245. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js +123 -0
  246. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js.map +1 -0
  247. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js +86 -0
  248. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js.map +1 -0
  249. package/dist-server/routers/api/restful-apis/v1/get-inventory-product-group.js +99 -0
  250. package/dist-server/routers/api/restful-apis/v1/get-inventory-product-group.js.map +1 -0
  251. package/dist-server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.js +144 -0
  252. package/dist-server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.js.map +1 -0
  253. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js +77 -0
  254. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js.map +1 -0
  255. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js +108 -0
  256. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js.map +1 -0
  257. package/dist-server/routers/api/restful-apis/v1/get-partners.js +24 -0
  258. package/dist-server/routers/api/restful-apis/v1/get-partners.js.map +1 -0
  259. package/dist-server/routers/api/restful-apis/v1/get-products.js +208 -0
  260. package/dist-server/routers/api/restful-apis/v1/get-products.js.map +1 -0
  261. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js +120 -0
  262. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js.map +1 -0
  263. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js +189 -0
  264. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js.map +1 -0
  265. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js +20 -0
  266. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js.map +1 -0
  267. package/dist-server/routers/api/restful-apis/v1/index.js +34 -0
  268. package/dist-server/routers/api/restful-apis/v1/index.js.map +1 -0
  269. package/dist-server/routers/api/restful-apis/v1/reject-inbound-order.js +33 -0
  270. package/dist-server/routers/api/restful-apis/v1/reject-inbound-order.js.map +1 -0
  271. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-delivered.js +43 -0
  272. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-delivered.js.map +1 -0
  273. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.js +43 -0
  274. package/dist-server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.js.map +1 -0
  275. package/dist-server/routers/api/restful-apis/v1/update-marketplace-order.js +91 -0
  276. package/dist-server/routers/api/restful-apis/v1/update-marketplace-order.js.map +1 -0
  277. package/dist-server/routers/api/restful-apis/v1/update-marketplace-shipping-order.js +83 -0
  278. package/dist-server/routers/api/restful-apis/v1/update-marketplace-shipping-order.js.map +1 -0
  279. package/dist-server/routers/api/restful-apis/v1/update-release-order-details.js +80 -0
  280. package/dist-server/routers/api/restful-apis/v1/update-release-order-details.js.map +1 -0
  281. package/dist-server/routers/api/restful-apis/v2/add-contact-point.js +62 -0
  282. package/dist-server/routers/api/restful-apis/v2/add-contact-point.js.map +1 -0
  283. package/dist-server/routers/api/restful-apis/v2/add-draft-release-order.js +169 -0
  284. package/dist-server/routers/api/restful-apis/v2/add-draft-release-order.js.map +1 -0
  285. package/dist-server/routers/api/restful-apis/v2/add-inbound-order.js +212 -0
  286. package/dist-server/routers/api/restful-apis/v2/add-inbound-order.js.map +1 -0
  287. package/dist-server/routers/api/restful-apis/v2/add-marketplace-order.js +142 -0
  288. package/dist-server/routers/api/restful-apis/v2/add-marketplace-order.js.map +1 -0
  289. package/dist-server/routers/api/restful-apis/v2/add-products.js +86 -0
  290. package/dist-server/routers/api/restful-apis/v2/add-products.js.map +1 -0
  291. package/dist-server/routers/api/restful-apis/v2/add-release-order.js +772 -0
  292. package/dist-server/routers/api/restful-apis/v2/add-release-order.js.map +1 -0
  293. package/dist-server/routers/api/restful-apis/v2/bizplace.js +43 -0
  294. package/dist-server/routers/api/restful-apis/v2/bizplace.js.map +1 -0
  295. package/dist-server/routers/api/restful-apis/v2/cancel-marketplace-order.js +61 -0
  296. package/dist-server/routers/api/restful-apis/v2/cancel-marketplace-order.js.map +1 -0
  297. package/dist-server/routers/api/restful-apis/v2/cancel-release-order.js +64 -0
  298. package/dist-server/routers/api/restful-apis/v2/cancel-release-order.js.map +1 -0
  299. package/dist-server/routers/api/restful-apis/v2/get-contact-point-list.js +101 -0
  300. package/dist-server/routers/api/restful-apis/v2/get-contact-point-list.js.map +1 -0
  301. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-detail.js +45 -0
  302. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-detail.js.map +1 -0
  303. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-list.js +122 -0
  304. package/dist-server/routers/api/restful-apis/v2/get-delivery-order-list.js.map +1 -0
  305. package/dist-server/routers/api/restful-apis/v2/get-delivery-orders.js +162 -0
  306. package/dist-server/routers/api/restful-apis/v2/get-delivery-orders.js.map +1 -0
  307. package/dist-server/routers/api/restful-apis/v2/get-goods-received-notes.js +118 -0
  308. package/dist-server/routers/api/restful-apis/v2/get-goods-received-notes.js.map +1 -0
  309. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-detail.js +113 -0
  310. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-detail.js.map +1 -0
  311. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-list.js +123 -0
  312. package/dist-server/routers/api/restful-apis/v2/get-inbound-order-list.js.map +1 -0
  313. package/dist-server/routers/api/restful-apis/v2/get-inventory-overall-product-group.js +86 -0
  314. package/dist-server/routers/api/restful-apis/v2/get-inventory-overall-product-group.js.map +1 -0
  315. package/dist-server/routers/api/restful-apis/v2/get-inventory-product-group.js +99 -0
  316. package/dist-server/routers/api/restful-apis/v2/get-inventory-product-group.js.map +1 -0
  317. package/dist-server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.js +144 -0
  318. package/dist-server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.js.map +1 -0
  319. package/dist-server/routers/api/restful-apis/v2/get-marketplace-store-list.js +77 -0
  320. package/dist-server/routers/api/restful-apis/v2/get-marketplace-store-list.js.map +1 -0
  321. package/dist-server/routers/api/restful-apis/v2/get-onhand-inventories.js +108 -0
  322. package/dist-server/routers/api/restful-apis/v2/get-onhand-inventories.js.map +1 -0
  323. package/dist-server/routers/api/restful-apis/v2/get-partners.js +24 -0
  324. package/dist-server/routers/api/restful-apis/v2/get-partners.js.map +1 -0
  325. package/dist-server/routers/api/restful-apis/v2/get-products.js +208 -0
  326. package/dist-server/routers/api/restful-apis/v2/get-products.js.map +1 -0
  327. package/dist-server/routers/api/restful-apis/v2/get-release-order-detail.js +120 -0
  328. package/dist-server/routers/api/restful-apis/v2/get-release-order-detail.js.map +1 -0
  329. package/dist-server/routers/api/restful-apis/v2/get-release-order-list.js +189 -0
  330. package/dist-server/routers/api/restful-apis/v2/get-release-order-list.js.map +1 -0
  331. package/dist-server/routers/api/restful-apis/v2/get-warehouses.js +20 -0
  332. package/dist-server/routers/api/restful-apis/v2/get-warehouses.js.map +1 -0
  333. package/dist-server/routers/api/restful-apis/v2/index.js +34 -0
  334. package/dist-server/routers/api/restful-apis/v2/index.js.map +1 -0
  335. package/dist-server/routers/api/restful-apis/v2/reject-inbound-order.js +33 -0
  336. package/dist-server/routers/api/restful-apis/v2/reject-inbound-order.js.map +1 -0
  337. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-delivered.js +43 -0
  338. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-delivered.js.map +1 -0
  339. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.js +43 -0
  340. package/dist-server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.js.map +1 -0
  341. package/dist-server/routers/api/restful-apis/v2/update-marketplace-order.js +91 -0
  342. package/dist-server/routers/api/restful-apis/v2/update-marketplace-order.js.map +1 -0
  343. package/dist-server/routers/api/restful-apis/v2/update-marketplace-shipping-order.js +83 -0
  344. package/dist-server/routers/api/restful-apis/v2/update-marketplace-shipping-order.js.map +1 -0
  345. package/dist-server/routers/api/restful-apis/v2/update-release-order-details.js +80 -0
  346. package/dist-server/routers/api/restful-apis/v2/update-release-order-details.js.map +1 -0
  347. package/dist-server/routers/auth-invitation-router.js +23 -0
  348. package/dist-server/routers/auth-invitation-router.js.map +1 -0
  349. package/dist-server/routers/business/bizplace-register-router.js +23 -0
  350. package/dist-server/routers/business/bizplace-register-router.js.map +1 -0
  351. package/dist-server/routers/business/business-register-router.js +25 -0
  352. package/dist-server/routers/business/business-register-router.js.map +1 -0
  353. package/dist-server/routers/business/index.js +7 -0
  354. package/dist-server/routers/business/index.js.map +1 -0
  355. package/dist-server/routers/business/path-base-business-router.js +16 -0
  356. package/dist-server/routers/business/path-base-business-router.js.map +1 -0
  357. package/dist-server/routes.js +18 -0
  358. package/dist-server/routes.js.map +1 -0
  359. package/dist-server/templates/account-unlock-email.js +70 -0
  360. package/dist-server/templates/account-unlock-email.js.map +1 -0
  361. package/dist-server/templates/invitation-email.js +71 -0
  362. package/dist-server/templates/invitation-email.js.map +1 -0
  363. package/dist-server/templates/reset-password-email.js +70 -0
  364. package/dist-server/templates/reset-password-email.js.map +1 -0
  365. package/dist-server/templates/verification-email.js +71 -0
  366. package/dist-server/templates/verification-email.js.map +1 -0
  367. package/dist-server/tsconfig.tsbuildinfo +1 -0
  368. package/dist-server/utils/build-map.js +19 -0
  369. package/dist-server/utils/build-map.js.map +1 -0
  370. package/dist-server/utils/get-warehouses.js +117 -0
  371. package/dist-server/utils/get-warehouses.js.map +1 -0
  372. package/dist-server/utils/index.js +7 -0
  373. package/dist-server/utils/index.js.map +1 -0
  374. package/dist-server/utils/order-no-generator.js +11 -0
  375. package/dist-server/utils/order-no-generator.js.map +1 -0
  376. package/package.json +43 -43
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidationError = void 0;
4
+ class ValidationError extends Error {
5
+ constructor({ errorCode, message, detail }) {
6
+ super(errorCode);
7
+ this.name = 'validation-error';
8
+ this.errorCode = errorCode,
9
+ this.message = message;
10
+ this.detail = detail;
11
+ }
12
+ }
13
+ exports.ValidationError = ValidationError;
14
+ //# sourceMappingURL=validation-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../../server/errors/validation-error.ts"],"names":[],"mappings":";;;AAMA,MAAa,eAAgB,SAAQ,KAAK;IAGxC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAA2B;QACjE,KAAK,CAAC,SAAS,CAAC,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS;YACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CACF;AAVD,0CAUC","sourcesContent":["type ValidationErrorArgument = {\n errorCode: string\n message: string\n detail?: Object\n}\n\nexport class ValidationError extends Error {\n errorCode: any\n detail: Object\n constructor({ errorCode, message, detail }: ValidationErrorArgument) {\n super(errorCode)\n this.name = 'validation-error'\n this.errorCode = errorCode,\n this.message = message\n this.detail = detail\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.schema = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const typeDefs = tslib_1.__importStar(require("./types"));
6
+ const resolvers = tslib_1.__importStar(require("./resolvers"));
7
+ exports.schema = {
8
+ typeDefs,
9
+ resolvers
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/graphql/index.ts"],"names":[],"mappings":";;;;AAAA,0DAAmC;AACnC,+DAAwC;AAE3B,QAAA,MAAM,GAAG;IACpB,QAAQ;IACR,SAAS;CACV,CAAA","sourcesContent":["import * as typeDefs from './types'\nimport * as resolvers from './resolvers'\n\nexport const schema = {\n typeDefs,\n resolvers\n}\n"]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateBizplace = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const biz_base_1 = require("@things-factory/biz-base");
6
+ const generate_bizplace_domain_1 = require("../../../controllers/bizplace-initializer/generate-bizplace-domain");
7
+ exports.generateBizplace = {
8
+ async generateBizplace(_, { bizplaceInput }, context) {
9
+ const { tx, business: company, user } = context.state;
10
+ const { name, description, address, postalCode, latlng } = bizplaceInput;
11
+ if (/^[a-zA-Z ]+$/.test(name)) {
12
+ const oldBizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({
13
+ where: {
14
+ name: (0, typeorm_1.Raw)(alias => `LOWER(${alias}) LIKE '${name.toLowerCase()}'`)
15
+ }
16
+ });
17
+ if (oldBizplace) {
18
+ throw new Error('bizplace name is duplicated');
19
+ }
20
+ }
21
+ else {
22
+ throw new Error('bizplace name should consist only of letters or dashes');
23
+ }
24
+ const bizplace = await tx.getRepository(biz_base_1.Bizplace).save({
25
+ name,
26
+ description,
27
+ address,
28
+ postalCode,
29
+ latlng,
30
+ company,
31
+ updater: user,
32
+ creator: user
33
+ });
34
+ await (0, generate_bizplace_domain_1.generateBizplaceDomain)(bizplace.id, user, tx);
35
+ return bizplace;
36
+ }
37
+ };
38
+ //# sourceMappingURL=generate-bizplace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-bizplace.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/generators/generate-bizplace.ts"],"names":[],"mappings":";;;AAAA,qCAA6B;AAE7B,uDAAmD;AAEnD,iHAA2G;AAE9F,QAAA,gBAAgB,GAAG;IAC9B,KAAK,CAAC,gBAAgB,CAAC,CAAM,EAAE,EAAE,aAAa,EAAE,EAAE,OAAwB;QACxE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACrD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,aAAa,CAAA;QAExE,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC7B,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;gBAC3D,KAAK,EAAE;oBACL,IAAI,EAAE,IAAA,aAAG,EAAC,KAAK,CAAC,EAAE,CAAC,SAAS,KAAK,WAAW,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;iBACnE;aACF,CAAC,CAAA;YACF,IAAI,WAAW,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;aAC/C;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;SAC1E;QAED,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,IAAI,CAAC;YACrD,IAAI;YACJ,WAAW;YACX,OAAO;YACP,UAAU;YACV,MAAM;YACN,OAAO;YACP,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QAEF,MAAM,IAAA,iDAAsB,EAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;QAEnD,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF,CAAA","sourcesContent":["import { Raw } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\n\nimport { generateBizplaceDomain } from '../../../controllers/bizplace-initializer/generate-bizplace-domain'\n\nexport const generateBizplace = {\n async generateBizplace(_: any, { bizplaceInput }, context: ResolverContext) {\n const { tx, business: company, user } = context.state\n const { name, description, address, postalCode, latlng } = bizplaceInput\n\n if (/^[a-zA-Z ]+$/.test(name)) {\n const oldBizplace = await tx.getRepository(Bizplace).findOne({\n where: {\n name: Raw(alias => `LOWER(${alias}) LIKE '${name.toLowerCase()}'`)\n }\n })\n if (oldBizplace) {\n throw new Error('bizplace name is duplicated')\n }\n } else {\n throw new Error('bizplace name should consist only of letters or dashes')\n }\n\n const bizplace = await tx.getRepository(Bizplace).save({\n name,\n description,\n address,\n postalCode,\n latlng,\n company,\n updater: user,\n creator: user\n })\n\n await generateBizplaceDomain(bizplace.id, user, tx)\n\n return bizplace\n }\n}\n"]}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateCompany = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const auth_base_1 = require("@things-factory/auth-base");
6
+ const biz_base_1 = require("@things-factory/biz-base");
7
+ const shell_1 = require("@things-factory/shell");
8
+ const utils_1 = require("@things-factory/utils");
9
+ const bizplace_initializer_1 = require("../../../controllers/bizplace-initializer");
10
+ const generate_company_roles_1 = require("../../../controllers/company-initializer/generate-company-roles");
11
+ exports.generateCompany = {
12
+ async generateCompany(_, { companyInput }, context) {
13
+ const { tx, user } = context.state;
14
+ const { name, description, address, postalCode, latlng } = companyInput;
15
+ const subdomain = (0, utils_1.slugger)(name);
16
+ /* check */
17
+ const oldCompany = await tx.getRepository(biz_base_1.Company).findOne({
18
+ where: {
19
+ name
20
+ }
21
+ });
22
+ if (oldCompany) {
23
+ throw new Error('company name is duplicated');
24
+ }
25
+ const oldDomain = await tx.getRepository(shell_1.Domain).findOne({
26
+ where: {
27
+ name
28
+ }
29
+ });
30
+ if (oldDomain) {
31
+ throw new Error('subdomain is duplicated');
32
+ }
33
+ /* create company */
34
+ const domain = await tx.getRepository(shell_1.Domain).save({
35
+ subdomain,
36
+ name,
37
+ extType: 'company'
38
+ });
39
+ /* create roles */
40
+ const domainRoles = await (0, generate_company_roles_1.generateBusinessRoles)(domain, tx);
41
+ const company = await tx.getRepository(biz_base_1.Company).save(Object.assign(Object.assign({}, companyInput), { owner: user, domain }));
42
+ const userHavingRoles = await tx.getRepository(auth_base_1.User).findOne({
43
+ where: { email: (0, typeorm_1.ILike)(user.email) },
44
+ relations: ['domains', 'roles']
45
+ });
46
+ user.domains = [...user.domains, domain];
47
+ user.roles = [...userHavingRoles.roles, domainRoles.find(r => r.name === 'BUSINESS-OWNER')];
48
+ await tx.getRepository(auth_base_1.User).save(user);
49
+ await (0, bizplace_initializer_1.initGroups)(tx, domain);
50
+ return await tx.getRepository(biz_base_1.Company).save({
51
+ name,
52
+ description,
53
+ address,
54
+ postalCode,
55
+ latlng,
56
+ updater: user,
57
+ creator: user
58
+ });
59
+ }
60
+ };
61
+ //# sourceMappingURL=generate-company.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-company.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/generators/generate-company.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAC/B,yDAAgD;AAChD,uDAAkD;AAClD,iDAA8C;AAC9C,iDAA+C;AAE/C,oFAAsE;AACtE,4GAAuG;AAE1F,QAAA,eAAe,GAAG;IAC7B,KAAK,CAAC,eAAe,CAAC,CAAM,EAAE,EAAE,YAAY,EAAE,EAAE,OAAwB;QACtE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAClC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,YAAY,CAAA;QAEvE,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAA;QAE/B,WAAW;QACX,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,kBAAO,CAAC,CAAC,OAAO,CAAC;YACzD,KAAK,EAAE;gBACL,IAAI;aACL;SACF,CAAC,CAAA;QAEF,IAAI,UAAU,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC9C;QAED,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,OAAO,CAAC;YACvD,KAAK,EAAE;gBACL,IAAI;aACL;SACF,CAAC,CAAA;QAEF,IAAI,SAAS,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;SAC3C;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAW,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,IAAI,CAAC;YACzD,SAAS;YACT,IAAI;YACJ,OAAO,EAAE,SAAS;SACnB,CAAC,CAAA;QAEF,kBAAkB;QAClB,MAAM,WAAW,GAAG,MAAM,IAAA,8CAAqB,EAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAE3D,MAAM,OAAO,GAAY,MAAM,EAAE,CAAC,aAAa,CAAC,kBAAO,CAAC,CAAC,IAAI,iCACxD,YAAY,KACf,KAAK,EAAE,IAAI,EACX,MAAM,IACN,CAAA;QAEF,MAAM,eAAe,GAAS,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;YACjE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAA,eAAK,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnC,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;SAChC,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAA;QAE3F,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEvC,MAAM,IAAA,iCAAU,EAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAE5B,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,kBAAO,CAAC,CAAC,IAAI,CAAC;YAC1C,IAAI;YACJ,WAAW;YACX,OAAO;YACP,UAAU;YACV,MAAM;YACN,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;CACF,CAAA","sourcesContent":["import { ILike } from 'typeorm'\nimport { User } from '@things-factory/auth-base'\nimport { Company } from '@things-factory/biz-base'\nimport { Domain } from '@things-factory/shell'\nimport { slugger } from '@things-factory/utils'\n\nimport { initGroups } from '../../../controllers/bizplace-initializer'\nimport { generateBusinessRoles } from '../../../controllers/company-initializer/generate-company-roles'\n\nexport const generateCompany = {\n async generateCompany(_: any, { companyInput }, context: ResolverContext) {\n const { tx, user } = context.state\n const { name, description, address, postalCode, latlng } = companyInput\n\n const subdomain = slugger(name)\n\n /* check */\n const oldCompany = await tx.getRepository(Company).findOne({\n where: {\n name\n }\n })\n\n if (oldCompany) {\n throw new Error('company name is duplicated')\n }\n\n const oldDomain = await tx.getRepository(Domain).findOne({\n where: {\n name\n }\n })\n\n if (oldDomain) {\n throw new Error('subdomain is duplicated')\n }\n\n /* create company */\n const domain: Domain = await tx.getRepository(Domain).save({\n subdomain,\n name,\n extType: 'company'\n })\n\n /* create roles */\n const domainRoles = await generateBusinessRoles(domain, tx)\n\n const company: Company = await tx.getRepository(Company).save({\n ...companyInput,\n owner: user,\n domain\n })\n\n const userHavingRoles: User = await tx.getRepository(User).findOne({\n where: { email: ILike(user.email) },\n relations: ['domains', 'roles']\n })\n\n user.domains = [...user.domains, domain]\n user.roles = [...userHavingRoles.roles, domainRoles.find(r => r.name === 'BUSINESS-OWNER')]\n\n await tx.getRepository(User).save(user)\n\n await initGroups(tx, domain)\n\n return await tx.getRepository(Company).save({\n name,\n description,\n address,\n postalCode,\n latlng,\n updater: user,\n creator: user\n })\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mutation = void 0;
4
+ const generate_company_1 = require("./generate-company");
5
+ const generate_bizplace_1 = require("./generate-bizplace");
6
+ const update_domain_extType_1 = require("./update-domain-extType");
7
+ exports.Mutation = Object.assign(Object.assign(Object.assign({}, generate_company_1.generateCompany), generate_bizplace_1.generateBizplace), update_domain_extType_1.updateDomainExtType);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/generators/index.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AACpD,2DAAsD;AACtD,mEAA6D;AAEhD,QAAA,QAAQ,iDAChB,kCAAe,GACf,oCAAgB,GAChB,2CAAmB,EACvB","sourcesContent":["import { generateCompany } from './generate-company'\nimport { generateBizplace } from './generate-bizplace'\nimport { updateDomainExtType } from './update-domain-extType'\n\nexport const Mutation = {\n ...generateCompany,\n ...generateBizplace,\n ...updateDomainExtType\n}\n"]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateDomainExtType = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const auth_base_1 = require("@things-factory/auth-base");
6
+ const shell_1 = require("@things-factory/shell");
7
+ const bizplace_initializer_1 = require("../../../controllers/bizplace-initializer");
8
+ const generate_bizplace_domain_roles_1 = require("../../../controllers/bizplace-initializer/generate-bizplace-domain-roles");
9
+ exports.updateDomainExtType = {
10
+ async updateDomainType(_, { domainTypeInput }, context) {
11
+ const { tx, user } = context.state;
12
+ const { id, extType } = domainTypeInput;
13
+ let domain = await tx.getRepository(shell_1.Domain).findOne({ where: { id } });
14
+ domain.extType = extType;
15
+ domain = await tx.getRepository(shell_1.Domain).save(domain);
16
+ await (0, generate_bizplace_domain_roles_1.generateBizplaceDomainRoles)(domain, tx);
17
+ await (0, bizplace_initializer_1.initMenus)(tx, domain);
18
+ await (0, bizplace_initializer_1.initCodes)(tx, domain);
19
+ await (0, bizplace_initializer_1.initSettings)(tx, domain);
20
+ await (0, bizplace_initializer_1.initGroups)(tx, domain);
21
+ /* Creating relations
22
+ * 1) users_domains table
23
+ * 2) users_roles table
24
+ */
25
+ await createRelations(tx, domain, user.email);
26
+ return domain;
27
+ }
28
+ };
29
+ async function createRelations(tx, domain, email) {
30
+ const userRepo = tx.getRepository(auth_base_1.User);
31
+ const user = await userRepo.findOne({ where: { email: (0, typeorm_1.ILike)(email) }, relations: ['domains', 'roles'] });
32
+ const roleRepo = tx.getRepository(auth_base_1.Role);
33
+ const role = await roleRepo.findOne({ where: { domain: { id: domain.id } }, relations: ['domain'] });
34
+ const privilegeRepo = tx.getRepository(auth_base_1.Privilege);
35
+ const privileges = await privilegeRepo.find();
36
+ const domains = user.domains;
37
+ domains.push(domain);
38
+ user.domains = domains;
39
+ const roles = await user.roles;
40
+ roles.push(role);
41
+ user.roles = roles;
42
+ role.privileges = privileges;
43
+ await userRepo.save(user);
44
+ await roleRepo.save(role);
45
+ }
46
+ //# sourceMappingURL=update-domain-extType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-domain-extType.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/generators/update-domain-extType.ts"],"names":[],"mappings":";;;AAAA,qCAA0D;AAE1D,yDAAiE;AACjE,iDAA8C;AAE9C,oFAA0G;AAC1G,6HAAsH;AAEzG,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,gBAAgB,CAAC,CAAM,EAAE,EAAE,eAAe,EAAE,EAAE,OAAwB;QAC1E,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAClC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAoC,eAAe,CAAA;QAExE,IAAI,MAAM,GAAW,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAC9E,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QAExB,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEpD,MAAM,IAAA,4DAA2B,EAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAC7C,MAAM,IAAA,gCAAS,EAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAC3B,MAAM,IAAA,gCAAS,EAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAC3B,MAAM,IAAA,mCAAY,EAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAC9B,MAAM,IAAA,iCAAU,EAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAE5B;;;WAGG;QACH,MAAM,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAE7C,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA;AAED,KAAK,UAAU,eAAe,CAAC,EAAiB,EAAE,MAAc,EAAE,KAAa;IAC7E,MAAM,QAAQ,GAAqB,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAA;IACzD,MAAM,IAAI,GAAS,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAA,eAAK,EAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAC9G,MAAM,QAAQ,GAAqB,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAA;IACzD,MAAM,IAAI,GAAS,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC1G,MAAM,aAAa,GAA0B,EAAE,CAAC,aAAa,CAAC,qBAAS,CAAC,CAAA;IACxE,MAAM,UAAU,GAAgB,MAAM,aAAa,CAAC,IAAI,EAAE,CAAA;IAE1D,MAAM,OAAO,GAAa,IAAI,CAAC,OAAO,CAAA;IACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAEtB,MAAM,KAAK,GAAW,MAAM,IAAI,CAAC,KAAK,CAAA;IACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IAElB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAE5B,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC","sourcesContent":["import { EntityManager, ILike, Repository } from 'typeorm'\n\nimport { Privilege, Role, User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { initCodes, initGroups, initMenus, initSettings } from '../../../controllers/bizplace-initializer'\nimport { generateBizplaceDomainRoles } from '../../../controllers/bizplace-initializer/generate-bizplace-domain-roles'\n\nexport const updateDomainExtType = {\n async updateDomainType(_: any, { domainTypeInput }, context: ResolverContext) {\n const { tx, user } = context.state\n const { id, extType }: { id: string; extType: string } = domainTypeInput\n\n let domain: Domain = await tx.getRepository(Domain).findOne({ where: { id } })\n domain.extType = extType\n\n domain = await tx.getRepository(Domain).save(domain)\n\n await generateBizplaceDomainRoles(domain, tx)\n await initMenus(tx, domain)\n await initCodes(tx, domain)\n await initSettings(tx, domain)\n await initGroups(tx, domain)\n\n /* Creating relations\n * 1) users_domains table\n * 2) users_roles table\n */\n await createRelations(tx, domain, user.email)\n\n return domain\n }\n}\n\nasync function createRelations(tx: EntityManager, domain: Domain, email: string) {\n const userRepo: Repository<User> = tx.getRepository(User)\n const user: User = await userRepo.findOne({ where: { email: ILike(email) }, relations: ['domains', 'roles'] })\n const roleRepo: Repository<Role> = tx.getRepository(Role)\n const role: Role = await roleRepo.findOne({ where: { domain: { id: domain.id } }, relations: ['domain'] })\n const privilegeRepo: Repository<Privilege> = tx.getRepository(Privilege)\n const privileges: Privilege[] = await privilegeRepo.find()\n\n const domains: Domain[] = user.domains\n domains.push(domain)\n user.domains = domains\n\n const roles: Role[] = await user.roles\n roles.push(role)\n user.roles = roles\n\n role.privileges = privileges\n\n await userRepo.save(user)\n await roleRepo.save(role)\n}\n"]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mutations = exports.queries = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const Generators = tslib_1.__importStar(require("./generators"));
6
+ const Oauth2 = tslib_1.__importStar(require("./oauth2"));
7
+ const Invitations = tslib_1.__importStar(require("./invitations"));
8
+ const Synchronization = tslib_1.__importStar(require("./synchronization"));
9
+ exports.queries = [Synchronization.Query, Oauth2.Query];
10
+ exports.mutations = [Generators.Mutation, Invitations.Mutation, Synchronization.Mutation];
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/resolvers/index.ts"],"names":[],"mappings":";;;;AAAA,iEAA0C;AAC1C,yDAAkC;AAClC,mEAA4C;AAC5C,2EAAoD;AAEvC,QAAA,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;AAE/C,QAAA,SAAS,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA","sourcesContent":["import * as Generators from './generators'\nimport * as Oauth2 from './oauth2'\nimport * as Invitations from './invitations'\nimport * as Synchronization from './synchronization'\n\nexport const queries = [Synchronization.Query, Oauth2.Query]\n\nexport const mutations = [Generators.Mutation, Invitations.Mutation, Synchronization.Mutation]\n"]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mutation = void 0;
4
+ const partner_invitation_1 = require("./partner-invitation");
5
+ exports.Mutation = Object.assign({}, partner_invitation_1.partnerInvitationResolver);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/invitations/index.ts"],"names":[],"mappings":";;;AAAA,6DAAgE;AAEnD,QAAA,QAAQ,qBAChB,8CAAyB,EAC7B","sourcesContent":["import { partnerInvitationResolver } from './partner-invitation'\n\nexport const Mutation = {\n ...partnerInvitationResolver\n}\n"]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.partnerInvitationResolver = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const biz_base_1 = require("@things-factory/biz-base");
6
+ const shell_1 = require("@things-factory/shell");
7
+ exports.partnerInvitationResolver = {
8
+ async partnerInvitation(_, { bizplaceName }, context) {
9
+ const { domain, user } = context.state;
10
+ // Check whether bizplace exists or not
11
+ const partnerBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
12
+ where: {
13
+ name: (0, typeorm_1.Raw)(alias => `LOWER(${alias}) LIKE '${bizplaceName.toLowerCase()}'`)
14
+ }
15
+ });
16
+ const partnerDomain = await (0, shell_1.getRepository)(shell_1.Domain).findOne({
17
+ where: {
18
+ name: partnerBizplace.name
19
+ }
20
+ });
21
+ if (partnerDomain && partnerDomain.extType === 'company') {
22
+ throw new Error(context.t('error.business cannot be invited.'));
23
+ }
24
+ if (!partnerBizplace) {
25
+ throw new Error(context.t('error.failed to find x', { x: context.t('field.bizplace') }));
26
+ }
27
+ if (domain.name === partnerBizplace.name) {
28
+ throw new Error(context.t('error.failed to find x', { x: context.t('field.bizplace') }));
29
+ }
30
+ const domainBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
31
+ where: { domain: { id: domain.id } }
32
+ });
33
+ if (!domainBizplace) {
34
+ throw new Error(context.t('error.failed to find x', { x: 'domain bizplace' }));
35
+ }
36
+ // Check whether the bizplace is partner already or not
37
+ const partner = await (0, shell_1.getRepository)(biz_base_1.Partner).findOne({
38
+ where: { domainBizplace: { id: domainBizplace.id }, partnerBizplace: { id: partnerBizplace.id } }
39
+ });
40
+ if (partner) {
41
+ throw new Error(context.t('error.x already exists in y', { x: partnerBizplace.name, y: context.t('field.partner') }));
42
+ }
43
+ let newPartner = new biz_base_1.Partner();
44
+ newPartner.type = 'CUSTOMER';
45
+ newPartner.domainBizplace = domainBizplace;
46
+ newPartner.partnerBizplace = partnerBizplace;
47
+ newPartner.requester = user;
48
+ newPartner.approver = user;
49
+ await (0, shell_1.getRepository)(biz_base_1.Partner).save(newPartner);
50
+ }
51
+ };
52
+ //# sourceMappingURL=partner-invitation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partner-invitation.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/invitations/partner-invitation.ts"],"names":[],"mappings":";;;AAAA,qCAA6B;AAE7B,uDAA4D;AAC5D,iDAA6D;AAEhD,QAAA,yBAAyB,GAAG;IACvC,KAAK,CAAC,iBAAiB,CAAC,CAAM,EAAE,EAAE,YAAY,EAA4B,EAAE,OAAwB;QAClG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,uCAAuC;QACvC,MAAM,eAAe,GAAa,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;YACtE,KAAK,EAAE;gBACL,IAAI,EAAE,IAAA,aAAG,EAAC,KAAK,CAAC,EAAE,CAAC,SAAS,KAAK,WAAW,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC;aAC3E;SACF,CAAC,CAAA;QAEF,MAAM,aAAa,GAAW,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,OAAO,CAAC;YAChE,KAAK,EAAE;gBACL,IAAI,EAAE,eAAe,CAAC,IAAI;aAC3B;SACF,CAAC,CAAA;QAEF,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE;YACxD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAA;SAChE;QAED,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAA;SACzF;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAA;SACzF;QAED,MAAM,cAAc,GAAa,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;YACrE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE;SACrC,CAAC,CAAA;QAEF,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAA;SAC/E;QAED,uDAAuD;QACvD,MAAM,OAAO,GAAY,MAAM,IAAA,qBAAa,EAAC,kBAAO,CAAC,CAAC,OAAO,CAAC;YAC5D,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE;SAClG,CAAC,CAAA;QAEF,IAAI,OAAO,EAAE;YACX,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE,CAAC,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CACrG,CAAA;SACF;QAED,IAAI,UAAU,GAAY,IAAI,kBAAO,EAAE,CAAA;QACvC,UAAU,CAAC,IAAI,GAAG,UAAU,CAAA;QAC5B,UAAU,CAAC,cAAc,GAAG,cAAc,CAAA;QAC1C,UAAU,CAAC,eAAe,GAAG,eAAe,CAAA;QAC5C,UAAU,CAAC,SAAS,GAAG,IAAI,CAAA;QAC3B,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAA;QAC1B,MAAM,IAAA,qBAAa,EAAC,kBAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC/C,CAAC;CACF,CAAA","sourcesContent":["import { Raw } from 'typeorm'\n\nimport { Bizplace, Partner } from '@things-factory/biz-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nexport const partnerInvitationResolver = {\n async partnerInvitation(_: any, { bizplaceName }: { bizplaceName: string }, context: ResolverContext): Promise<void> {\n const { domain, user } = context.state\n\n // Check whether bizplace exists or not\n const partnerBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: {\n name: Raw(alias => `LOWER(${alias}) LIKE '${bizplaceName.toLowerCase()}'`)\n }\n })\n\n const partnerDomain: Domain = await getRepository(Domain).findOne({\n where: {\n name: partnerBizplace.name\n }\n })\n\n if (partnerDomain && partnerDomain.extType === 'company') {\n throw new Error(context.t('error.business cannot be invited.'))\n }\n\n if (!partnerBizplace) {\n throw new Error(context.t('error.failed to find x', { x: context.t('field.bizplace') }))\n }\n\n if (domain.name === partnerBizplace.name) {\n throw new Error(context.t('error.failed to find x', { x: context.t('field.bizplace') }))\n }\n\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: domain.id } }\n })\n\n if (!domainBizplace) {\n throw new Error(context.t('error.failed to find x', { x: 'domain bizplace' }))\n }\n\n // Check whether the bizplace is partner already or not\n const partner: Partner = await getRepository(Partner).findOne({\n where: { domainBizplace: { id: domainBizplace.id }, partnerBizplace: { id: partnerBizplace.id } }\n })\n\n if (partner) {\n throw new Error(\n context.t('error.x already exists in y', { x: partnerBizplace.name, y: context.t('field.partner') })\n )\n }\n\n let newPartner: Partner = new Partner()\n newPartner.type = 'CUSTOMER'\n newPartner.domainBizplace = domainBizplace\n newPartner.partnerBizplace = partnerBizplace\n newPartner.requester = user\n newPartner.approver = user\n await getRepository(Partner).save(newPartner)\n }\n}\n"]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.companyRolesByScopeResolver = void 0;
4
+ const auth_base_1 = require("@things-factory/auth-base");
5
+ const shell_1 = require("@things-factory/shell");
6
+ exports.companyRolesByScopeResolver = {
7
+ async companyRolesByScope(_, { scope }, context) {
8
+ let { user } = context.state;
9
+ const userDomains = await (0, auth_base_1.getUserDomains)(user);
10
+ const availableDomains = userDomains.filter((domain) => scope.indexOf(domain.extType) >= 0);
11
+ const availableDomainIDs = availableDomains.map((domain) => domain.id);
12
+ user = await (0, shell_1.getRepository)(auth_base_1.User).findOne({
13
+ where: { id: user.id },
14
+ relations: ['roles', 'roles.domain']
15
+ });
16
+ const availableRoles = user.roles.filter((role) => availableDomainIDs.indexOf(role.domain.id) >= 0);
17
+ const companyRoleMap = new Map();
18
+ availableRoles.forEach((role) => {
19
+ if (companyRoleMap.has(role.domain.id)) {
20
+ companyRoleMap.get(role.domain.id).push(role);
21
+ }
22
+ else {
23
+ companyRoleMap.set(role.domain.id, [role]);
24
+ }
25
+ });
26
+ let companyRoles = [];
27
+ companyRoleMap.forEach((roles) => {
28
+ companyRoles.push({ domain: roles[0].domain, roles });
29
+ });
30
+ return companyRoles;
31
+ }
32
+ };
33
+ //# sourceMappingURL=company-roles-by-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"company-roles-by-scope.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2/company-roles-by-scope.ts"],"names":[],"mappings":";;;AAAA,yDAAsE;AACtE,iDAA6D;AAOhD,QAAA,2BAA2B,GAAG;IACzC,KAAK,CAAC,mBAAmB,CAAC,CAAO,EAAE,EAAE,KAAK,EAAuB,EAAE,OAAwB;QACzF,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC5B,MAAM,WAAW,GAAsB,MAAM,IAAA,0BAAc,EAAC,IAAI,CAAC,CAAA;QACjE,MAAM,gBAAgB,GAAsB,WAAW,CAAC,MAAM,CAC5D,CAAC,MAAc,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CACvD,CAAA;QACD,MAAM,kBAAkB,GAAa,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACxF,IAAI,GAAG,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;YACvC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YACtB,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC;SACrC,CAAC,CAAA;QAEF,MAAM,cAAc,GAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;QAEjH,MAAM,cAAc,GAAwB,IAAI,GAAG,EAAkB,CAAA;QACrE,cAAc,CAAC,OAAO,CAAC,CAAC,IAAU,EAAE,EAAE;YACpC,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;gBACtC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aAC9C;iBAAM;gBACL,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;aAC3C;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,YAAY,GAAkB,EAAE,CAAA;QACpC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;YACvC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,OAAO,YAAY,CAAA;IACrB,CAAC;CACF,CAAA","sourcesContent":["import { getUserDomains, Role, User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\ntype CompanyRole = {\n domain: Domain\n roles: Role[]\n}\n\nexport const companyRolesByScopeResolver = {\n async companyRolesByScope(_: void, { scope }: { scope: string[] }, context: ResolverContext): Promise<CompanyRole[]> {\n let { user } = context.state\n const userDomains: Partial<Domain>[] = await getUserDomains(user)\n const availableDomains: Partial<Domain>[] = userDomains.filter(\n (domain: Domain) => scope.indexOf(domain.extType) >= 0\n )\n const availableDomainIDs: string[] = availableDomains.map((domain: Domain) => domain.id)\n user = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles', 'roles.domain']\n })\n\n const availableRoles: Role[] = user.roles.filter((role: Role) => availableDomainIDs.indexOf(role.domain.id) >= 0)\n\n const companyRoleMap: Map<string, Role[]> = new Map<string, Role[]>()\n availableRoles.forEach((role: Role) => {\n if (companyRoleMap.has(role.domain.id)) {\n companyRoleMap.get(role.domain.id).push(role)\n } else {\n companyRoleMap.set(role.domain.id, [role])\n }\n })\n\n let companyRoles: CompanyRole[] = []\n companyRoleMap.forEach((roles: Role[]) => {\n companyRoles.push({ domain: roles[0].domain, roles })\n })\n\n return companyRoles\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Query = void 0;
4
+ const company_roles_by_scope_1 = require("./company-roles-by-scope");
5
+ exports.Query = Object.assign({}, company_roles_by_scope_1.companyRolesByScopeResolver);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2/index.ts"],"names":[],"mappings":";;;AAAA,qEAAsE;AAEzD,QAAA,KAAK,qBACb,oDAA2B,EAC/B","sourcesContent":["import { companyRolesByScopeResolver } from './company-roles-by-scope'\n\nexport const Query = {\n ...companyRolesByScopeResolver\n}\n"]}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.autoUpdateAllMarketplaceProductVariationQuantityResolver = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const env_1 = require("@things-factory/env");
6
+ const integration_fulfillment_1 = require("@things-factory/integration-fulfillment");
7
+ const integration_marketplace_1 = require("@things-factory/integration-marketplace");
8
+ const marketplace_base_1 = require("@things-factory/marketplace-base");
9
+ const product_base_1 = require("@things-factory/product-base");
10
+ const shell_1 = require("@things-factory/shell");
11
+ const warehouse_base_1 = require("@things-factory/warehouse-base");
12
+ exports.autoUpdateAllMarketplaceProductVariationQuantityResolver = {
13
+ async autoUpdateAllMarketplaceProductVariationQuantity(_, { companyDomainId, warehouseId }, context) {
14
+ const companyDomain = await (0, typeorm_1.getRepository)(shell_1.Domain).findOne(companyDomainId);
15
+ const marketplaceStores = await (0, typeorm_1.getRepository)(integration_marketplace_1.MarketplaceStore).find({
16
+ where: { domain: { id: companyDomain.id }, status: 'ACTIVE' },
17
+ relations: ['marketplaceDistributors']
18
+ });
19
+ const fulfilmentCenter = await integration_fulfillment_1.FulfillmentAPI.getFulfillmentCenter(warehouseId);
20
+ const centerId = fulfilmentCenter.centerId;
21
+ const warehouseDomain = await (0, typeorm_1.getRepository)(shell_1.Domain).findOne({ where: { subdomain: centerId } });
22
+ let products = await (0, typeorm_1.getRepository)(product_base_1.Product).find({
23
+ where: { domain: { id: companyDomain.id } },
24
+ relations: ['productDetails']
25
+ });
26
+ let inventoryProducts = await Promise.all(products.map(async (product) => {
27
+ const productDetails = product.productDetails;
28
+ const defaultProductDetail = productDetails.filter(productDetail => productDetail.isDefault)[0];
29
+ let qb = await (0, typeorm_1.getRepository)(warehouse_base_1.Inventory).createQueryBuilder('inv');
30
+ qb.leftJoinAndSelect('inv.location', 'loc')
31
+ .andWhere('"inv"."domain_id" = :domainId')
32
+ .andWhere('"inv"."product_id" = :productId')
33
+ .andWhere('"inv"."status" != :status')
34
+ .andWhere('"loc"."type" NOT IN (:...locationTypes)')
35
+ .setParameters({
36
+ domainId: warehouseDomain.id,
37
+ productId: product.id,
38
+ status: warehouse_base_1.INVENTORY_STATUS.TERMINATED,
39
+ locationTypes: [warehouse_base_1.LOCATION_TYPE.QUARANTINE, warehouse_base_1.LOCATION_TYPE.RESERVE]
40
+ });
41
+ let inventories = await qb.getMany();
42
+ const inventoryQty = inventories.reduce((total, currentValue) => {
43
+ total += currentValue.qty;
44
+ return total;
45
+ }, 0);
46
+ const inventoryLockedQty = inventories.reduce((total, currentValue) => {
47
+ total += currentValue.lockedQty;
48
+ return total;
49
+ }, 0);
50
+ return {
51
+ product,
52
+ sku: product.sku,
53
+ name: product.name,
54
+ packingType: defaultProductDetail.packingType,
55
+ packingSize: defaultProductDetail.packingSize,
56
+ uom: defaultProductDetail.uom,
57
+ qty: inventoryQty - inventoryLockedQty
58
+ };
59
+ }));
60
+ await (0, typeorm_1.getConnection)().transaction(async (tx) => {
61
+ let bundleProductInventories = await (0, warehouse_base_1.getProductBundleInventory)(warehouseDomain, companyDomain, inventoryProducts, tx);
62
+ bundleProductInventories.map(bundleProductInventory => {
63
+ inventoryProducts.push(bundleProductInventory);
64
+ });
65
+ });
66
+ for (let i = 0; i < marketplaceStores.length; i++) {
67
+ try {
68
+ const marketplaceStore = marketplaceStores[i];
69
+ const marketplaceSetting = await (0, typeorm_1.getRepository)(integration_marketplace_1.MarketplaceSetting).findOne({
70
+ where: { marketplaceStore: { id: marketplaceStore.id }, category: 'stock_allocation' }
71
+ });
72
+ for (let j = 0; j < inventoryProducts.length; j++) {
73
+ try {
74
+ await (0, typeorm_1.getConnection)().transaction(async (tx) => {
75
+ var _a, _b;
76
+ const inventoryProduct = inventoryProducts[j];
77
+ const marketplaceProductVariations = await tx
78
+ .getRepository(marketplace_base_1.MarketplaceProductVariation)
79
+ .find({
80
+ where: { domain: { id: companyDomain.id }, sku: inventoryProduct.sku },
81
+ relations: ['marketplaceProduct', 'marketplaceProduct.marketplaceStore']
82
+ });
83
+ let storeProductVariations = marketplaceProductVariations.filter(productVariation => productVariation.marketplaceProduct.marketplaceStore.id === marketplaceStore.id);
84
+ let percentageValue = 100;
85
+ if (storeProductVariations) {
86
+ for (let k = 0; k < storeProductVariations.length; k++) {
87
+ let storeProductVariation = storeProductVariations[k];
88
+ if (marketplaceSetting) {
89
+ percentageValue = parseInt(marketplaceSetting.value);
90
+ }
91
+ let remainQty = Math.floor((inventoryProduct.qty - storeProductVariation.reserveQty) * (percentageValue / 100));
92
+ if (remainQty < 0)
93
+ remainQty = 0;
94
+ let productVariationLocationId = storeProductVariation === null || storeProductVariation === void 0 ? void 0 : storeProductVariation.locationId;
95
+ let adjustQty = remainQty;
96
+ if (marketplaceStore.platform === 'shopify') {
97
+ let locationIds = JSON.parse(productVariationLocationId);
98
+ adjustQty = adjustQty - storeProductVariation.qty;
99
+ if ((_a = locationIds[0]) === null || _a === void 0 ? void 0 : _a.location_id)
100
+ productVariationLocationId = locationIds[0].location_id;
101
+ }
102
+ let validMarketplaceDistributors = [];
103
+ if (marketplaceStore.marketplaceDistributors) {
104
+ validMarketplaceDistributors = marketplaceStore.marketplaceDistributors.filter(distributor => distributor.status === 'ACTIVE');
105
+ }
106
+ const hasVariation = (_b = storeProductVariation === null || storeProductVariation === void 0 ? void 0 : storeProductVariation.marketplaceProduct) === null || _b === void 0 ? void 0 : _b.hasVariation;
107
+ if (hasVariation) {
108
+ await integration_marketplace_1.StoreAPI.updateStoreProductVariationStock(marketplaceStore, [
109
+ {
110
+ itemId: storeProductVariation.marketplaceProduct.itemId,
111
+ variationId: storeProductVariation.variationId,
112
+ variationSku: storeProductVariation.variationSku,
113
+ qty: adjustQty,
114
+ locationId: productVariationLocationId,
115
+ inventoryItemId: storeProductVariation.inventoryItemId,
116
+ distributors: validMarketplaceDistributors
117
+ }
118
+ ]);
119
+ }
120
+ else {
121
+ await integration_marketplace_1.StoreAPI.updateStoreProductStock(marketplaceStore, [
122
+ {
123
+ itemId: storeProductVariation.marketplaceProduct.itemId,
124
+ variationId: storeProductVariation.variationId,
125
+ variationSku: storeProductVariation.variationSku,
126
+ qty: adjustQty,
127
+ distributors: validMarketplaceDistributors
128
+ }
129
+ ]);
130
+ }
131
+ storeProductVariation.qty = remainQty;
132
+ await tx.getRepository(marketplace_base_1.MarketplaceProductVariation).save(storeProductVariation);
133
+ }
134
+ }
135
+ });
136
+ }
137
+ catch (error) {
138
+ env_1.logger.error(`interface-with-hub[autoUpdateAllMarketplaceProductVariationQuantity]inventoryProducts: ${error}`);
139
+ }
140
+ }
141
+ }
142
+ catch (e) {
143
+ env_1.logger.error(`interface-with-hub[autoUpdateAllMarketplaceProductVariationQuantity]marketplaceStores: ${e}`);
144
+ }
145
+ }
146
+ return true;
147
+ }
148
+ };
149
+ //# sourceMappingURL=auto-update-all-marketplace-product-variation-quantity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-update-all-marketplace-product-variation-quantity.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.ts"],"names":[],"mappings":"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","sourcesContent":["import { getConnection, getRepository } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { FulfillmentAPI } from '@things-factory/integration-fulfillment'\nimport { MarketplaceSetting, MarketplaceStore, StoreAPI } from '@things-factory/integration-marketplace'\nimport { MarketplaceProductVariation } from '@things-factory/marketplace-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { Domain } from '@things-factory/shell'\nimport { getProductBundleInventory, Inventory, INVENTORY_STATUS, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nexport const autoUpdateAllMarketplaceProductVariationQuantityResolver = {\n async autoUpdateAllMarketplaceProductVariationQuantity(_: any, { companyDomainId, warehouseId }, context: any) {\n const companyDomain: Domain = await getRepository(Domain).findOne(companyDomainId)\n\n const marketplaceStores: MarketplaceStore[] = await getRepository(MarketplaceStore).find({\n where: { domain: { id: companyDomain.id }, status: 'ACTIVE' },\n relations: ['marketplaceDistributors']\n })\n\n const fulfilmentCenter = await FulfillmentAPI.getFulfillmentCenter(warehouseId)\n const centerId: string = fulfilmentCenter.centerId\n const warehouseDomain: Domain = await getRepository(Domain).findOne({ where: { subdomain: centerId } })\n\n let products: Product[] = await getRepository(Product).find({\n where: { domain: { id: companyDomain.id } },\n relations: ['productDetails']\n })\n\n let inventoryProducts: any[] = await Promise.all(\n products.map(async product => {\n const productDetails: ProductDetail[] = product.productDetails\n const defaultProductDetail: ProductDetail = productDetails.filter(productDetail => productDetail.isDefault)[0]\n\n let qb = await getRepository(Inventory).createQueryBuilder('inv')\n qb.leftJoinAndSelect('inv.location', 'loc')\n .andWhere('\"inv\".\"domain_id\" = :domainId')\n .andWhere('\"inv\".\"product_id\" = :productId')\n .andWhere('\"inv\".\"status\" != :status')\n .andWhere('\"loc\".\"type\" NOT IN (:...locationTypes)')\n .setParameters({\n domainId: warehouseDomain.id,\n productId: product.id,\n status: INVENTORY_STATUS.TERMINATED,\n locationTypes: [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n })\n\n let inventories: Inventory[] = await qb.getMany()\n\n const inventoryQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.qty\n return total\n }, 0)\n\n const inventoryLockedQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.lockedQty\n return total\n }, 0)\n\n return {\n product,\n sku: product.sku,\n name: product.name,\n packingType: defaultProductDetail.packingType,\n packingSize: defaultProductDetail.packingSize,\n uom: defaultProductDetail.uom,\n qty: inventoryQty - inventoryLockedQty\n }\n })\n )\n\n await getConnection().transaction(async tx => {\n let bundleProductInventories: any[] = await getProductBundleInventory(\n warehouseDomain,\n companyDomain,\n inventoryProducts,\n tx\n )\n\n bundleProductInventories.map(bundleProductInventory => {\n inventoryProducts.push(bundleProductInventory)\n })\n })\n\n for (let i = 0; i < marketplaceStores.length; i++) {\n try {\n const marketplaceStore: MarketplaceStore = marketplaceStores[i]\n\n const marketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, category: 'stock_allocation' }\n })\n\n for (let j = 0; j < inventoryProducts.length; j++) {\n try {\n await getConnection().transaction(async tx => {\n const inventoryProduct = inventoryProducts[j]\n const marketplaceProductVariations: MarketplaceProductVariation[] = await tx\n .getRepository(MarketplaceProductVariation)\n .find({\n where: { domain: { id: companyDomain.id }, sku: inventoryProduct.sku },\n relations: ['marketplaceProduct', 'marketplaceProduct.marketplaceStore']\n })\n\n let storeProductVariations: MarketplaceProductVariation[] = marketplaceProductVariations.filter(\n productVariation => productVariation.marketplaceProduct.marketplaceStore.id === marketplaceStore.id\n )\n\n let percentageValue: number = 100\n if (storeProductVariations) {\n for (let k = 0; k < storeProductVariations.length; k++) {\n let storeProductVariation: MarketplaceProductVariation = storeProductVariations[k]\n if (marketplaceSetting) {\n percentageValue = parseInt(marketplaceSetting.value)\n }\n\n let remainQty: number = Math.floor(\n (inventoryProduct.qty - storeProductVariation.reserveQty) * (percentageValue / 100)\n )\n if (remainQty < 0) remainQty = 0\n\n let productVariationLocationId = storeProductVariation?.locationId\n let adjustQty: number = remainQty\n\n if (marketplaceStore.platform === 'shopify') {\n let locationIds: any[] = JSON.parse(productVariationLocationId)\n adjustQty = adjustQty - storeProductVariation.qty\n if (locationIds[0]?.location_id) productVariationLocationId = locationIds[0].location_id\n }\n\n let validMarketplaceDistributors: any[] = []\n if (marketplaceStore.marketplaceDistributors) {\n validMarketplaceDistributors = marketplaceStore.marketplaceDistributors.filter(\n distributor => distributor.status === 'ACTIVE'\n )\n }\n\n const hasVariation: boolean = storeProductVariation?.marketplaceProduct?.hasVariation\n\n if (hasVariation) {\n await StoreAPI.updateStoreProductVariationStock(marketplaceStore, [\n {\n itemId: storeProductVariation.marketplaceProduct.itemId,\n variationId: storeProductVariation.variationId,\n variationSku: storeProductVariation.variationSku,\n qty: adjustQty,\n locationId: productVariationLocationId,\n inventoryItemId: storeProductVariation.inventoryItemId,\n distributors: validMarketplaceDistributors\n }\n ])\n } else {\n await StoreAPI.updateStoreProductStock(marketplaceStore, [\n {\n itemId: storeProductVariation.marketplaceProduct.itemId,\n variationId: storeProductVariation.variationId,\n variationSku: storeProductVariation.variationSku,\n qty: adjustQty,\n distributors: validMarketplaceDistributors\n }\n ])\n }\n\n storeProductVariation.qty = remainQty\n await tx.getRepository(MarketplaceProductVariation).save(storeProductVariation)\n }\n }\n })\n } catch (error) {\n logger.error(\n `interface-with-hub[autoUpdateAllMarketplaceProductVariationQuantity]inventoryProducts: ${error}`\n )\n }\n }\n } catch (e) {\n logger.error(`interface-with-hub[autoUpdateAllMarketplaceProductVariationQuantity]marketplaceStores: ${e}`)\n }\n }\n\n return true\n }\n}\n"]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDatShipments = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const biz_base_1 = require("@things-factory/biz-base");
6
+ const env_1 = require("@things-factory/env");
7
+ const integration_sftp_1 = require("@things-factory/integration-sftp");
8
+ const sales_base_1 = require("@things-factory/sales-base");
9
+ const shell_1 = require("@things-factory/shell");
10
+ exports.createDatShipments = {
11
+ async createDatShipments(_, {}, context) {
12
+ try {
13
+ await (0, typeorm_1.getConnection)().transaction(async (tx) => {
14
+ const currentTime = new Date();
15
+ const batchSize = 80;
16
+ let sftps = await tx.getRepository(integration_sftp_1.Sftp).find({
17
+ where: { status: 'ACTIVE' },
18
+ relations: ['domain', 'fulfillmentCenter']
19
+ });
20
+ for (let sftp of sftps) {
21
+ let warehouseDomain = await tx.getRepository(shell_1.Domain).findOne({
22
+ where: { subdomain: sftp.fulfillmentCenter.centerId }
23
+ });
24
+ let bizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({
25
+ where: { domain: { id: sftp.domain.id } }
26
+ });
27
+ let releaseGoods = await tx.getRepository(sales_base_1.ReleaseGood).find({
28
+ where: {
29
+ domain: { id: warehouseDomain.id },
30
+ bizplace: { id: bizplace.id },
31
+ status: 'DONE',
32
+ updatedAt: (0, typeorm_1.MoreThan)(sftp.lastTimeSync)
33
+ },
34
+ relations: ['orderInventories', 'orderInventories.product']
35
+ });
36
+ while (releaseGoods.length > 0) {
37
+ let releaseGoodBatch = releaseGoods.splice(0, releaseGoods.length >= batchSize ? batchSize : releaseGoods.length);
38
+ const responseFileTypes = JSON.parse(sftp.responseFileTypes);
39
+ if (releaseGoodBatch.length > 0) {
40
+ if (responseFileTypes.enableShipment) {
41
+ let shipmentResult = await integration_sftp_1.SftpAPI.createShipment(sftp, {
42
+ releaseGoods: releaseGoodBatch,
43
+ sftp: sftp
44
+ });
45
+ shipmentResult.lastTimeSync = currentTime;
46
+ sftp = await tx.getRepository(integration_sftp_1.Sftp).save(shipmentResult);
47
+ }
48
+ }
49
+ }
50
+ }
51
+ });
52
+ }
53
+ catch (e) {
54
+ env_1.logger.error(`createDatShipment: ${e}`);
55
+ }
56
+ }
57
+ };
58
+ //# sourceMappingURL=create-dat-shipments.js.map