@things-factory/operato-hub 6.1.83 → 6.1.85

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 (189) hide show
  1. package/dist-server/tsconfig.tsbuildinfo +1 -1
  2. package/package.json +46 -46
  3. package/server/controllers/bizplace-initializer/codes.ts +0 -32
  4. package/server/controllers/bizplace-initializer/dataset/codes.ts +0 -398
  5. package/server/controllers/bizplace-initializer/dataset/groups.ts +0 -21
  6. package/server/controllers/bizplace-initializer/dataset/index.ts +0 -5
  7. package/server/controllers/bizplace-initializer/dataset/menus.ts +0 -500
  8. package/server/controllers/bizplace-initializer/dataset/roles-privileges.ts +0 -402
  9. package/server/controllers/bizplace-initializer/dataset/settings.ts +0 -91
  10. package/server/controllers/bizplace-initializer/generate-bizplace-domain-roles.ts +0 -29
  11. package/server/controllers/bizplace-initializer/generate-bizplace-domain.ts +0 -56
  12. package/server/controllers/bizplace-initializer/groups.ts +0 -19
  13. package/server/controllers/bizplace-initializer/index.ts +0 -5
  14. package/server/controllers/bizplace-initializer/menus.ts +0 -42
  15. package/server/controllers/bizplace-initializer/settings.ts +0 -20
  16. package/server/controllers/company-initializer/business-register.ts +0 -59
  17. package/server/controllers/company-initializer/codes.ts +0 -147
  18. package/server/controllers/company-initializer/generate-company-roles.ts +0 -119
  19. package/server/controllers/company-initializer/index.ts +0 -6
  20. package/server/controllers/company-initializer/menus.ts +0 -359
  21. package/server/controllers/company-initializer/settings.ts +0 -33
  22. package/server/controllers/company-initializer/transporter.ts +0 -20
  23. package/server/controllers/index.ts +0 -0
  24. package/server/controllers/invitation.ts +0 -132
  25. package/server/controllers/utils/make-invitation-token.ts +0 -5
  26. package/server/controllers/utils/save-invitation-token.ts +0 -9
  27. package/server/entities/index.ts +0 -0
  28. package/server/errors/index.ts +0 -1
  29. package/server/errors/validation-error.ts +0 -17
  30. package/server/graphql/index.ts +0 -7
  31. package/server/graphql/resolvers/generators/generate-bizplace.ts +0 -40
  32. package/server/graphql/resolvers/generators/generate-company.ts +0 -76
  33. package/server/graphql/resolvers/generators/index.ts +0 -9
  34. package/server/graphql/resolvers/generators/update-domain-extType.ts +0 -55
  35. package/server/graphql/resolvers/index.ts +0 -8
  36. package/server/graphql/resolvers/invitations/index.ts +0 -5
  37. package/server/graphql/resolvers/invitations/partner-invitation.ts +0 -62
  38. package/server/graphql/resolvers/oauth2/company-roles-by-scope.ts +0 -38
  39. package/server/graphql/resolvers/oauth2/index.ts +0 -5
  40. package/server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.ts +0 -180
  41. package/server/graphql/resolvers/synchronization/create-dat-shipments.ts +0 -64
  42. package/server/graphql/resolvers/synchronization/fetch-sync-invoices.ts +0 -52
  43. package/server/graphql/resolvers/synchronization/fetch-sync-products.ts +0 -99
  44. package/server/graphql/resolvers/synchronization/fetch-sync-purchase-orders.ts +0 -75
  45. package/server/graphql/resolvers/synchronization/index.ts +0 -26
  46. package/server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.ts +0 -91
  47. package/server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.ts +0 -39
  48. package/server/graphql/resolvers/synchronization/sync-products-from-account.ts +0 -40
  49. package/server/graphql/resolvers/synchronization/sync-products-to-account.ts +0 -64
  50. package/server/graphql/resolvers/synchronization/sync-products-to-sellercraft.ts +0 -176
  51. package/server/graphql/types/generators/generate-bizplace-input.ts +0 -11
  52. package/server/graphql/types/generators/generate-company-input.ts +0 -11
  53. package/server/graphql/types/generators/index.ts +0 -11
  54. package/server/graphql/types/generators/update-domain-type-input.ts +0 -8
  55. package/server/graphql/types/index.ts +0 -10
  56. package/server/graphql/types/invitations/index.ts +0 -5
  57. package/server/graphql/types/oauth2/company-role.ts +0 -8
  58. package/server/graphql/types/oauth2/index.ts +0 -7
  59. package/server/graphql/types/synchronization/index.ts +0 -33
  60. package/server/graphql/types/synchronization/sync-invoice-list.ts +0 -8
  61. package/server/graphql/types/synchronization/sync-invoice-set.ts +0 -38
  62. package/server/graphql/types/synchronization/sync-product-list.ts +0 -8
  63. package/server/graphql/types/synchronization/sync-product-set.ts +0 -8
  64. package/server/graphql/types/synchronization/sync-purchase-order-list.ts +0 -8
  65. package/server/graphql/types/synchronization/sync-purchase-order-set.ts +0 -28
  66. package/server/index.ts +0 -37
  67. package/server/middlewares/business-middleware.ts +0 -32
  68. package/server/middlewares/index.ts +0 -20
  69. package/server/middlewares/store-middleware.ts +0 -36
  70. package/server/middlewares/warehouse-middleware.ts +0 -36
  71. package/server/migrations/1597668478399-SeedBusinessDomain.ts +0 -34
  72. package/server/migrations/1597668478401-SeedBusinessRoles.ts +0 -377
  73. package/server/migrations/1608009991065-SeedUser.ts +0 -64
  74. package/server/migrations/index.ts +0 -9
  75. package/server/routers/api/index.ts +0 -3
  76. package/server/routers/api/restful-apis/unstable/add-contact-point.ts +0 -89
  77. package/server/routers/api/restful-apis/unstable/add-draft-release-order.ts +0 -198
  78. package/server/routers/api/restful-apis/unstable/add-inbound-order.ts +0 -246
  79. package/server/routers/api/restful-apis/unstable/add-marketplace-order.ts +0 -171
  80. package/server/routers/api/restful-apis/unstable/add-products.ts +0 -112
  81. package/server/routers/api/restful-apis/unstable/add-release-order.ts +0 -1061
  82. package/server/routers/api/restful-apis/unstable/add-sales-invoice.ts +0 -144
  83. package/server/routers/api/restful-apis/unstable/bizplace.ts +0 -45
  84. package/server/routers/api/restful-apis/unstable/cancel-marketplace-order.ts +0 -81
  85. package/server/routers/api/restful-apis/unstable/cancel-release-order.ts +0 -91
  86. package/server/routers/api/restful-apis/unstable/get-contact-point-list.ts +0 -110
  87. package/server/routers/api/restful-apis/unstable/get-delivery-order-detail.ts +0 -46
  88. package/server/routers/api/restful-apis/unstable/get-delivery-order-list.ts +0 -121
  89. package/server/routers/api/restful-apis/unstable/get-delivery-orders.ts +0 -178
  90. package/server/routers/api/restful-apis/unstable/get-goods-received-notes.ts +0 -134
  91. package/server/routers/api/restful-apis/unstable/get-inbound-order-detail.ts +0 -128
  92. package/server/routers/api/restful-apis/unstable/get-inbound-order-list.ts +0 -126
  93. package/server/routers/api/restful-apis/unstable/get-inventory-overall-product-group.ts +0 -99
  94. package/server/routers/api/restful-apis/unstable/get-inventory-product-group.ts +0 -107
  95. package/server/routers/api/restful-apis/unstable/get-marketplace-order-shipping-list.ts +0 -156
  96. package/server/routers/api/restful-apis/unstable/get-marketplace-store-list.ts +0 -81
  97. package/server/routers/api/restful-apis/unstable/get-onhand-inventories.ts +0 -125
  98. package/server/routers/api/restful-apis/unstable/get-partners.ts +0 -26
  99. package/server/routers/api/restful-apis/unstable/get-products.ts +0 -216
  100. package/server/routers/api/restful-apis/unstable/get-release-order-detail.ts +0 -138
  101. package/server/routers/api/restful-apis/unstable/get-release-order-list.ts +0 -199
  102. package/server/routers/api/restful-apis/unstable/get-warehouses.ts +0 -19
  103. package/server/routers/api/restful-apis/unstable/index.ts +0 -32
  104. package/server/routers/api/restful-apis/unstable/reject-inbound-order.ts +0 -46
  105. package/server/routers/api/restful-apis/unstable/set-marketplace-order-delivered.ts +0 -60
  106. package/server/routers/api/restful-apis/unstable/set-marketplace-order-failed-delivery.ts +0 -60
  107. package/server/routers/api/restful-apis/unstable/update-marketplace-order.ts +0 -111
  108. package/server/routers/api/restful-apis/unstable/update-marketplace-shipping-order.ts +0 -107
  109. package/server/routers/api/restful-apis/unstable/update-release-order-details.ts +0 -94
  110. package/server/routers/api/restful-apis/v1/add-contact-point.ts +0 -77
  111. package/server/routers/api/restful-apis/v1/add-draft-release-order.ts +0 -196
  112. package/server/routers/api/restful-apis/v1/add-inbound-order.ts +0 -243
  113. package/server/routers/api/restful-apis/v1/add-marketplace-order.ts +0 -172
  114. package/server/routers/api/restful-apis/v1/add-products.ts +0 -112
  115. package/server/routers/api/restful-apis/v1/add-release-order.ts +0 -967
  116. package/server/routers/api/restful-apis/v1/bizplace.ts +0 -45
  117. package/server/routers/api/restful-apis/v1/cancel-marketplace-order.ts +0 -81
  118. package/server/routers/api/restful-apis/v1/cancel-release-order.ts +0 -91
  119. package/server/routers/api/restful-apis/v1/get-contact-point-list.ts +0 -110
  120. package/server/routers/api/restful-apis/v1/get-delivery-order-detail.ts +0 -46
  121. package/server/routers/api/restful-apis/v1/get-delivery-order-list.ts +0 -121
  122. package/server/routers/api/restful-apis/v1/get-delivery-orders.ts +0 -178
  123. package/server/routers/api/restful-apis/v1/get-goods-received-notes.ts +0 -134
  124. package/server/routers/api/restful-apis/v1/get-inbound-order-detail.ts +0 -128
  125. package/server/routers/api/restful-apis/v1/get-inbound-order-list.ts +0 -126
  126. package/server/routers/api/restful-apis/v1/get-inventory-overall-product-group.ts +0 -99
  127. package/server/routers/api/restful-apis/v1/get-inventory-product-group.ts +0 -112
  128. package/server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.ts +0 -156
  129. package/server/routers/api/restful-apis/v1/get-marketplace-store-list.ts +0 -81
  130. package/server/routers/api/restful-apis/v1/get-onhand-inventories.ts +0 -125
  131. package/server/routers/api/restful-apis/v1/get-partners.ts +0 -26
  132. package/server/routers/api/restful-apis/v1/get-products.ts +0 -216
  133. package/server/routers/api/restful-apis/v1/get-release-order-detail.ts +0 -134
  134. package/server/routers/api/restful-apis/v1/get-release-order-list.ts +0 -198
  135. package/server/routers/api/restful-apis/v1/get-warehouses.ts +0 -19
  136. package/server/routers/api/restful-apis/v1/index.ts +0 -31
  137. package/server/routers/api/restful-apis/v1/reject-inbound-order.ts +0 -46
  138. package/server/routers/api/restful-apis/v1/set-marketplace-order-delivered.ts +0 -60
  139. package/server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.ts +0 -60
  140. package/server/routers/api/restful-apis/v1/update-marketplace-order.ts +0 -111
  141. package/server/routers/api/restful-apis/v1/update-marketplace-shipping-order.ts +0 -104
  142. package/server/routers/api/restful-apis/v1/update-release-order-details.ts +0 -94
  143. package/server/routers/api/restful-apis/v2/add-contact-point.ts +0 -77
  144. package/server/routers/api/restful-apis/v2/add-draft-release-order.ts +0 -196
  145. package/server/routers/api/restful-apis/v2/add-inbound-order.ts +0 -243
  146. package/server/routers/api/restful-apis/v2/add-marketplace-order.ts +0 -172
  147. package/server/routers/api/restful-apis/v2/add-products.ts +0 -112
  148. package/server/routers/api/restful-apis/v2/add-release-order.ts +0 -967
  149. package/server/routers/api/restful-apis/v2/bizplace.ts +0 -45
  150. package/server/routers/api/restful-apis/v2/cancel-marketplace-order.ts +0 -81
  151. package/server/routers/api/restful-apis/v2/cancel-release-order.ts +0 -91
  152. package/server/routers/api/restful-apis/v2/get-contact-point-list.ts +0 -110
  153. package/server/routers/api/restful-apis/v2/get-delivery-order-detail.ts +0 -46
  154. package/server/routers/api/restful-apis/v2/get-delivery-order-list.ts +0 -121
  155. package/server/routers/api/restful-apis/v2/get-delivery-orders.ts +0 -178
  156. package/server/routers/api/restful-apis/v2/get-goods-received-notes.ts +0 -134
  157. package/server/routers/api/restful-apis/v2/get-inbound-order-detail.ts +0 -128
  158. package/server/routers/api/restful-apis/v2/get-inbound-order-list.ts +0 -126
  159. package/server/routers/api/restful-apis/v2/get-inventory-overall-product-group.ts +0 -99
  160. package/server/routers/api/restful-apis/v2/get-inventory-product-group.ts +0 -112
  161. package/server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.ts +0 -156
  162. package/server/routers/api/restful-apis/v2/get-marketplace-store-list.ts +0 -81
  163. package/server/routers/api/restful-apis/v2/get-onhand-inventories.ts +0 -125
  164. package/server/routers/api/restful-apis/v2/get-partners.ts +0 -26
  165. package/server/routers/api/restful-apis/v2/get-products.ts +0 -216
  166. package/server/routers/api/restful-apis/v2/get-release-order-detail.ts +0 -134
  167. package/server/routers/api/restful-apis/v2/get-release-order-list.ts +0 -198
  168. package/server/routers/api/restful-apis/v2/get-warehouses.ts +0 -19
  169. package/server/routers/api/restful-apis/v2/index.ts +0 -31
  170. package/server/routers/api/restful-apis/v2/reject-inbound-order.ts +0 -46
  171. package/server/routers/api/restful-apis/v2/set-marketplace-order-delivered.ts +0 -60
  172. package/server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.ts +0 -60
  173. package/server/routers/api/restful-apis/v2/update-marketplace-order.ts +0 -111
  174. package/server/routers/api/restful-apis/v2/update-marketplace-shipping-order.ts +0 -104
  175. package/server/routers/api/restful-apis/v2/update-release-order-details.ts +0 -94
  176. package/server/routers/auth-invitation-router.ts +0 -25
  177. package/server/routers/business/bizplace-register-router.ts +0 -31
  178. package/server/routers/business/business-register-router.ts +0 -32
  179. package/server/routers/business/index.ts +0 -3
  180. package/server/routers/business/path-base-business-router.ts +0 -15
  181. package/server/routes.ts +0 -28
  182. package/server/templates/account-unlock-email.ts +0 -64
  183. package/server/templates/invitation-email.ts +0 -65
  184. package/server/templates/reset-password-email.ts +0 -64
  185. package/server/templates/verification-email.ts +0 -65
  186. package/server/utils/build-map.ts +0 -18
  187. package/server/utils/get-warehouses.ts +0 -115
  188. package/server/utils/index.ts +0 -3
  189. package/server/utils/order-no-generator.ts +0 -8
@@ -1,33 +0,0 @@
1
- const settings = [
2
- { name: 'dashboard:CUST', description: 'dashboard for customer', category: 'board' },
3
- { name: 'dashboard:OFFICE ADMIN', description: 'dashboard for OFFICE ADMIN', category: 'board' },
4
- { name: 'dashboard:SYSTEM ADMIN', description: 'dashboard for SUPER ADMIN', category: 'board' },
5
- { name: 'dashboard:W/H MANAGER', description: 'dashboard for W/H MANAGER', category: 'board' },
6
- { name: 'location-label', description: 'board id for location label', category: 'board' },
7
- { name: 'pallet-label', description: 'board id for pallet label', category: 'board' },
8
- { name: 'carton-label', description: 'board id for carton label', category: 'board' },
9
- { name: 'rule-for-creating-ro', description: 'location sorting rules', category: 'location' },
10
- { name: 'rule-for-inspecting-product', description: 'location sorting rules', category: 'location' },
11
- { name: 'rule-for-inventory-assignment', description: 'location sorting rules', category: 'location' },
12
- { name: 'rule-for-picking-product', description: 'location sorting rules', category: 'location' },
13
- { name: 'rule-for-worksheet-release-goods-item', description: 'worksheet release goods item location sorting rules', category: 'location' },
14
- { name: 'pallet-id-rule', description: 'pallet ID rule', category: 'id-rule' },
15
- { name: 'enable-custom-clearance-transportation', description: 'custom clearance transport', category: 'id-rule' },
16
- { name: 'enable-transportation-service', description: 'warehouse transport', category: 'id-rule' },
17
- { name: 'hide-cross-dock', description: 'hide cross docking button', category: 'id-rule' },
18
- { name: 'disable-reusable-pallet', description: 'hide and disable reusable pallet text field', category: 'id-rule' }
19
- ]
20
-
21
- import { Setting } from '@things-factory/setting-base'
22
-
23
- export async function initSettings(tx, domain) {
24
- const settingRepo = tx.getRepository(Setting)
25
- return await settingRepo.save(
26
- settings.map(setting => {
27
- return {
28
- ...setting,
29
- domain
30
- }
31
- })
32
- )
33
- }
@@ -1,20 +0,0 @@
1
- import { CourierService } from '@things-factory/integration-lmd'
2
-
3
- const transporters = [
4
- { name: 'SnT CJ CENTURY LOGISTIC', transporterId: 'TBD000018' },
5
- { name: 'NINJAVAN', transporterId: 'TBD000014' },
6
- { name: 'POS MALAYSIA', transporterId: 'TBD000015' },
7
- { name: 'SKYNET - SNT GLOBAL', transporterId: 'TBD000004' }
8
- ]
9
-
10
- export async function initTransporter(tx, domain) {
11
- const transporterRepo = tx.getRepository(CourierService)
12
- return await transporterRepo.save(
13
- transporters.map(transporter => {
14
- return {
15
- ...transporter,
16
- domain
17
- }
18
- })
19
- )
20
- }
File without changes
@@ -1,132 +0,0 @@
1
- import { URL } from 'url'
2
- import { ILike } from 'typeorm'
3
-
4
- import { Invitation, User } from '@things-factory/auth-base'
5
- import { Bizplace } from '@things-factory/biz-base'
6
- import { sendEmail } from '@things-factory/email-base'
7
- import { getRepository } from '@things-factory/shell'
8
-
9
- import { getInvitationEmailForm } from '../templates/invitation-email'
10
- import { makeInvitationToken } from './utils/make-invitation-token'
11
- import { saveInvitationToken } from './utils/save-invitation-token'
12
-
13
- export async function invite(attrs, withEmailInvitation?: Boolean) {
14
- const { email, reference, type, context } = attrs
15
-
16
- // 기존 사용자가 있는 경우.
17
- // - type이 company: reference 필드가 비어있는 지 확인, 비어있다면, 초대장 전송
18
- // - type이 bizplace: 사용자의 bizplace를 확인해서 없다면, 초대장 전송
19
- // - 그 외에는 이미 초대되어있다는 메시지로 종료
20
-
21
- // 기존 사용자가 없는 경우.
22
- // - 초대장 전송
23
-
24
- const repository = getRepository(User)
25
- var user = (await repository.findOne({ where: { email: ILike(email) }, relations: ['bizplaces'] })) as User & {
26
- bizplaces: Bizplace[]
27
- }
28
-
29
- if (user) {
30
- if (type == 'company') {
31
- if (reference == user.reference) {
32
- throw new Error('user already a member of the company.')
33
- }
34
- } else if (type == 'bizplace') {
35
- var bizplace: Bizplace = await getRepository(Bizplace).findOneBy({ id: reference })
36
-
37
- if (!bizplace) {
38
- throw new Error('invalid bizplace.')
39
- }
40
-
41
- const userBizplaces: Bizplace[] = user.bizplaces
42
- if (userBizplaces.find((userBizplace: Bizplace) => userBizplace.id === bizplace.id)) {
43
- throw new Error('user already a member of the bizplace.')
44
- }
45
- }
46
- }
47
-
48
- // invitation 레코드에 동일한 invitation이 있는 지 확인
49
- var invitation = await getRepository(Invitation).findOneBy({
50
- email,
51
- reference,
52
- type
53
- })
54
-
55
- if (!invitation) {
56
- invitation = await getRepository(Invitation).save({
57
- email,
58
- reference,
59
- type
60
- })
61
- }
62
-
63
- var succeed = false
64
- if (withEmailInvitation) {
65
- succeed = await sendInvitationEmail({
66
- invitation,
67
- context
68
- })
69
- }
70
-
71
- try {
72
- return {
73
- // token: await signin({
74
- // email,
75
- // password
76
- // })
77
- }
78
- } catch (e) {
79
- return { token: null }
80
- }
81
- }
82
-
83
- export async function acceptInvitation(token) {
84
- var invitation = await getRepository(Invitation).findOneBy({
85
- token
86
- })
87
-
88
- if (invitation) {
89
- return false
90
- }
91
-
92
- return true
93
- }
94
-
95
- export async function sendInvitationEmail({ invitation, context }) {
96
- try {
97
- var token = makeInvitationToken()
98
- await saveInvitationToken(invitation.id, token)
99
-
100
- if (invitation) {
101
- var serviceUrl = new URL(`/auth/accept/${token}`, context.header.referer)
102
-
103
- await sendEmail({
104
- receiver: invitation.email,
105
- subject: 'Invitation',
106
- content: getInvitationEmailForm({
107
- email: invitation.email,
108
- acceptUrl: serviceUrl
109
- })
110
- })
111
-
112
- return true
113
- }
114
- } catch (e) {
115
- return false
116
- }
117
- }
118
-
119
- export async function resendInvitationEmail({ email, reference, type }, context) {
120
- var invitation = await getRepository(Invitation).findOneBy({
121
- email,
122
- reference,
123
- type
124
- })
125
-
126
- if (!invitation) return false
127
-
128
- return await sendInvitationEmail({
129
- invitation,
130
- context
131
- })
132
- }
@@ -1,5 +0,0 @@
1
- import crypto from 'crypto'
2
-
3
- export function makeInvitationToken() {
4
- return crypto.randomBytes(16).toString('hex')
5
- }
@@ -1,9 +0,0 @@
1
- import { Invitation } from '@things-factory/auth-base'
2
- import { getRepository } from '@things-factory/shell'
3
-
4
- export async function saveInvitationToken(id, token) {
5
- return await getRepository(Invitation).save({
6
- id,
7
- token
8
- })
9
- }
File without changes
@@ -1 +0,0 @@
1
- export * from './validation-error'
@@ -1,17 +0,0 @@
1
- type ValidationErrorArgument = {
2
- errorCode: string
3
- message: string
4
- detail?: Object
5
- }
6
-
7
- export class ValidationError extends Error {
8
- errorCode: any
9
- detail: Object
10
- constructor({ errorCode, message, detail }: ValidationErrorArgument) {
11
- super(errorCode)
12
- this.name = 'validation-error'
13
- this.errorCode = errorCode,
14
- this.message = message
15
- this.detail = detail
16
- }
17
- }
@@ -1,7 +0,0 @@
1
- import * as typeDefs from './types'
2
- import * as resolvers from './resolvers'
3
-
4
- export const schema = {
5
- typeDefs,
6
- resolvers
7
- }
@@ -1,40 +0,0 @@
1
- import { Raw } from 'typeorm'
2
-
3
- import { Bizplace } from '@things-factory/biz-base'
4
-
5
- import { generateBizplaceDomain } from '../../../controllers/bizplace-initializer/generate-bizplace-domain'
6
-
7
- export const generateBizplace = {
8
- async generateBizplace(_: any, { bizplaceInput }, context: ResolverContext) {
9
- const { tx, business: company, user } = context.state
10
- const { name, description, address, postalCode, latlng } = bizplaceInput
11
-
12
- if (/^[a-zA-Z ]+$/.test(name)) {
13
- const oldBizplace = await tx.getRepository(Bizplace).findOne({
14
- where: {
15
- name: Raw(alias => `LOWER(${alias}) LIKE '${name.toLowerCase()}'`)
16
- }
17
- })
18
- if (oldBizplace) {
19
- throw new Error('bizplace name is duplicated')
20
- }
21
- } else {
22
- throw new Error('bizplace name should consist only of letters or dashes')
23
- }
24
-
25
- const bizplace = await tx.getRepository(Bizplace).save({
26
- name,
27
- description,
28
- address,
29
- postalCode,
30
- latlng,
31
- company,
32
- updater: user,
33
- creator: user
34
- })
35
-
36
- await generateBizplaceDomain(bizplace.id, user, tx)
37
-
38
- return bizplace
39
- }
40
- }
@@ -1,76 +0,0 @@
1
- import { ILike } from 'typeorm'
2
- import { User } from '@things-factory/auth-base'
3
- import { Company } from '@things-factory/biz-base'
4
- import { Domain } from '@things-factory/shell'
5
- import { slugger } from '@things-factory/utils'
6
-
7
- import { initGroups } from '../../../controllers/bizplace-initializer'
8
- import { generateBusinessRoles } from '../../../controllers/company-initializer/generate-company-roles'
9
-
10
- export const generateCompany = {
11
- async generateCompany(_: any, { companyInput }, context: ResolverContext) {
12
- const { tx, user } = context.state
13
- const { name, description, address, postalCode, latlng } = companyInput
14
-
15
- const subdomain = slugger(name)
16
-
17
- /* check */
18
- const oldCompany = await tx.getRepository(Company).findOne({
19
- where: {
20
- name
21
- }
22
- })
23
-
24
- if (oldCompany) {
25
- throw new Error('company name is duplicated')
26
- }
27
-
28
- const oldDomain = await tx.getRepository(Domain).findOne({
29
- where: {
30
- name
31
- }
32
- })
33
-
34
- if (oldDomain) {
35
- throw new Error('subdomain is duplicated')
36
- }
37
-
38
- /* create company */
39
- const domain: Domain = await tx.getRepository(Domain).save({
40
- subdomain,
41
- name,
42
- extType: 'company'
43
- })
44
-
45
- /* create roles */
46
- const domainRoles = await generateBusinessRoles(domain, tx)
47
-
48
- const company: Company = await tx.getRepository(Company).save({
49
- ...companyInput,
50
- owner: user,
51
- domain
52
- })
53
-
54
- const userHavingRoles: User = await tx.getRepository(User).findOne({
55
- where: { email: ILike(user.email) },
56
- relations: ['domains', 'roles']
57
- })
58
-
59
- user.domains = [...user.domains, domain]
60
- user.roles = [...userHavingRoles.roles, domainRoles.find(r => r.name === 'BUSINESS-OWNER')]
61
-
62
- await tx.getRepository(User).save(user)
63
-
64
- await initGroups(tx, domain)
65
-
66
- return await tx.getRepository(Company).save({
67
- name,
68
- description,
69
- address,
70
- postalCode,
71
- latlng,
72
- updater: user,
73
- creator: user
74
- })
75
- }
76
- }
@@ -1,9 +0,0 @@
1
- import { generateCompany } from './generate-company'
2
- import { generateBizplace } from './generate-bizplace'
3
- import { updateDomainExtType } from './update-domain-extType'
4
-
5
- export const Mutation = {
6
- ...generateCompany,
7
- ...generateBizplace,
8
- ...updateDomainExtType
9
- }
@@ -1,55 +0,0 @@
1
- import { EntityManager, ILike, Repository } from 'typeorm'
2
-
3
- import { Privilege, Role, User } from '@things-factory/auth-base'
4
- import { Domain } from '@things-factory/shell'
5
-
6
- import { initCodes, initGroups, initMenus, initSettings } from '../../../controllers/bizplace-initializer'
7
- import { generateBizplaceDomainRoles } from '../../../controllers/bizplace-initializer/generate-bizplace-domain-roles'
8
-
9
- export const updateDomainExtType = {
10
- async updateDomainType(_: any, { domainTypeInput }, context: ResolverContext) {
11
- const { tx, user } = context.state
12
- const { id, extType }: { id: string; extType: string } = domainTypeInput
13
-
14
- let domain: Domain = await tx.getRepository(Domain).findOne({ where: { id } })
15
- domain.extType = extType
16
-
17
- domain = await tx.getRepository(Domain).save(domain)
18
-
19
- await generateBizplaceDomainRoles(domain, tx)
20
- await initMenus(tx, domain)
21
- await initCodes(tx, domain)
22
- await initSettings(tx, domain)
23
- await initGroups(tx, domain)
24
-
25
- /* Creating relations
26
- * 1) users_domains table
27
- * 2) users_roles table
28
- */
29
- await createRelations(tx, domain, user.email)
30
-
31
- return domain
32
- }
33
- }
34
-
35
- async function createRelations(tx: EntityManager, domain: Domain, email: string) {
36
- const userRepo: Repository<User> = tx.getRepository(User)
37
- const user: User = await userRepo.findOne({ where: { email: ILike(email) }, relations: ['domains', 'roles'] })
38
- const roleRepo: Repository<Role> = tx.getRepository(Role)
39
- const role: Role = await roleRepo.findOne({ where: { domain: { id: domain.id } }, relations: ['domain'] })
40
- const privilegeRepo: Repository<Privilege> = tx.getRepository(Privilege)
41
- const privileges: Privilege[] = await privilegeRepo.find()
42
-
43
- const domains: Domain[] = user.domains
44
- domains.push(domain)
45
- user.domains = domains
46
-
47
- const roles: Role[] = await user.roles
48
- roles.push(role)
49
- user.roles = roles
50
-
51
- role.privileges = privileges
52
-
53
- await userRepo.save(user)
54
- await roleRepo.save(role)
55
- }
@@ -1,8 +0,0 @@
1
- import * as Generators from './generators'
2
- import * as Oauth2 from './oauth2'
3
- import * as Invitations from './invitations'
4
- import * as Synchronization from './synchronization'
5
-
6
- export const queries = [Synchronization.Query, Oauth2.Query]
7
-
8
- export const mutations = [Generators.Mutation, Invitations.Mutation, Synchronization.Mutation]
@@ -1,5 +0,0 @@
1
- import { partnerInvitationResolver } from './partner-invitation'
2
-
3
- export const Mutation = {
4
- ...partnerInvitationResolver
5
- }
@@ -1,62 +0,0 @@
1
- import { Raw } from 'typeorm'
2
-
3
- import { Bizplace, Partner } from '@things-factory/biz-base'
4
- import { Domain, getRepository } from '@things-factory/shell'
5
-
6
- export const partnerInvitationResolver = {
7
- async partnerInvitation(_: any, { bizplaceName }: { bizplaceName: string }, context: ResolverContext): Promise<void> {
8
- const { domain, user } = context.state
9
-
10
- // Check whether bizplace exists or not
11
- const partnerBizplace: Bizplace = await getRepository(Bizplace).findOne({
12
- where: {
13
- name: Raw(alias => `LOWER(${alias}) LIKE '${bizplaceName.toLowerCase()}'`)
14
- }
15
- })
16
-
17
- const partnerDomain: Domain = await getRepository(Domain).findOne({
18
- where: {
19
- name: partnerBizplace.name
20
- }
21
- })
22
-
23
- if (partnerDomain && partnerDomain.extType === 'company') {
24
- throw new Error(context.t('error.business cannot be invited.'))
25
- }
26
-
27
- if (!partnerBizplace) {
28
- throw new Error(context.t('error.failed to find x', { x: context.t('field.bizplace') }))
29
- }
30
-
31
- if (domain.name === partnerBizplace.name) {
32
- throw new Error(context.t('error.failed to find x', { x: context.t('field.bizplace') }))
33
- }
34
-
35
- const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({
36
- where: { domain: { id: domain.id } }
37
- })
38
-
39
- if (!domainBizplace) {
40
- throw new Error(context.t('error.failed to find x', { x: 'domain bizplace' }))
41
- }
42
-
43
- // Check whether the bizplace is partner already or not
44
- const partner: Partner = await getRepository(Partner).findOne({
45
- where: { domainBizplace: { id: domainBizplace.id }, partnerBizplace: { id: partnerBizplace.id } }
46
- })
47
-
48
- if (partner) {
49
- throw new Error(
50
- context.t('error.x already exists in y', { x: partnerBizplace.name, y: context.t('field.partner') })
51
- )
52
- }
53
-
54
- let newPartner: Partner = new Partner()
55
- newPartner.type = 'CUSTOMER'
56
- newPartner.domainBizplace = domainBizplace
57
- newPartner.partnerBizplace = partnerBizplace
58
- newPartner.requester = user
59
- newPartner.approver = user
60
- await getRepository(Partner).save(newPartner)
61
- }
62
- }
@@ -1,38 +0,0 @@
1
- import { getUserDomains, Role, User } from '@things-factory/auth-base'
2
- import { Domain, getRepository } from '@things-factory/shell'
3
-
4
- type CompanyRole = {
5
- domain: Domain
6
- roles: Role[]
7
- }
8
-
9
- export const companyRolesByScopeResolver = {
10
- async companyRolesByScope(_: void, { scope }: { scope: string[] }, context: ResolverContext): Promise<CompanyRole[]> {
11
- let { user } = context.state
12
- const userDomains: Domain[] = await getUserDomains(user)
13
- const availableDomains: Domain[] = userDomains.filter((domain: Domain) => scope.indexOf(domain.extType) >= 0)
14
- const availableDomainIDs: string[] = availableDomains.map((domain: Domain) => domain.id)
15
- user = await getRepository(User).findOne({
16
- where: { id: user.id },
17
- relations: ['roles', 'roles.domain']
18
- })
19
-
20
- const availableRoles: Role[] = user.roles.filter((role: Role) => availableDomainIDs.indexOf(role.domain.id) >= 0)
21
-
22
- const companyRoleMap: Map<string, Role[]> = new Map<string, Role[]>()
23
- availableRoles.forEach((role: Role) => {
24
- if (companyRoleMap.has(role.domain.id)) {
25
- companyRoleMap.get(role.domain.id).push(role)
26
- } else {
27
- companyRoleMap.set(role.domain.id, [role])
28
- }
29
- })
30
-
31
- let companyRoles: CompanyRole[] = []
32
- companyRoleMap.forEach((roles: Role[]) => {
33
- companyRoles.push({ domain: roles[0].domain, roles })
34
- })
35
-
36
- return companyRoles
37
- }
38
- }
@@ -1,5 +0,0 @@
1
- import { companyRolesByScopeResolver } from './company-roles-by-scope'
2
-
3
- export const Query = {
4
- ...companyRolesByScopeResolver
5
- }