@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.
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +46 -46
- package/server/controllers/bizplace-initializer/codes.ts +0 -32
- package/server/controllers/bizplace-initializer/dataset/codes.ts +0 -398
- package/server/controllers/bizplace-initializer/dataset/groups.ts +0 -21
- package/server/controllers/bizplace-initializer/dataset/index.ts +0 -5
- package/server/controllers/bizplace-initializer/dataset/menus.ts +0 -500
- package/server/controllers/bizplace-initializer/dataset/roles-privileges.ts +0 -402
- package/server/controllers/bizplace-initializer/dataset/settings.ts +0 -91
- package/server/controllers/bizplace-initializer/generate-bizplace-domain-roles.ts +0 -29
- package/server/controllers/bizplace-initializer/generate-bizplace-domain.ts +0 -56
- package/server/controllers/bizplace-initializer/groups.ts +0 -19
- package/server/controllers/bizplace-initializer/index.ts +0 -5
- package/server/controllers/bizplace-initializer/menus.ts +0 -42
- package/server/controllers/bizplace-initializer/settings.ts +0 -20
- package/server/controllers/company-initializer/business-register.ts +0 -59
- package/server/controllers/company-initializer/codes.ts +0 -147
- package/server/controllers/company-initializer/generate-company-roles.ts +0 -119
- package/server/controllers/company-initializer/index.ts +0 -6
- package/server/controllers/company-initializer/menus.ts +0 -359
- package/server/controllers/company-initializer/settings.ts +0 -33
- package/server/controllers/company-initializer/transporter.ts +0 -20
- package/server/controllers/index.ts +0 -0
- package/server/controllers/invitation.ts +0 -132
- package/server/controllers/utils/make-invitation-token.ts +0 -5
- package/server/controllers/utils/save-invitation-token.ts +0 -9
- package/server/entities/index.ts +0 -0
- package/server/errors/index.ts +0 -1
- package/server/errors/validation-error.ts +0 -17
- package/server/graphql/index.ts +0 -7
- package/server/graphql/resolvers/generators/generate-bizplace.ts +0 -40
- package/server/graphql/resolvers/generators/generate-company.ts +0 -76
- package/server/graphql/resolvers/generators/index.ts +0 -9
- package/server/graphql/resolvers/generators/update-domain-extType.ts +0 -55
- package/server/graphql/resolvers/index.ts +0 -8
- package/server/graphql/resolvers/invitations/index.ts +0 -5
- package/server/graphql/resolvers/invitations/partner-invitation.ts +0 -62
- package/server/graphql/resolvers/oauth2/company-roles-by-scope.ts +0 -38
- package/server/graphql/resolvers/oauth2/index.ts +0 -5
- package/server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.ts +0 -180
- package/server/graphql/resolvers/synchronization/create-dat-shipments.ts +0 -64
- package/server/graphql/resolvers/synchronization/fetch-sync-invoices.ts +0 -52
- package/server/graphql/resolvers/synchronization/fetch-sync-products.ts +0 -99
- package/server/graphql/resolvers/synchronization/fetch-sync-purchase-orders.ts +0 -75
- package/server/graphql/resolvers/synchronization/index.ts +0 -26
- package/server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.ts +0 -91
- package/server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.ts +0 -39
- package/server/graphql/resolvers/synchronization/sync-products-from-account.ts +0 -40
- package/server/graphql/resolvers/synchronization/sync-products-to-account.ts +0 -64
- package/server/graphql/resolvers/synchronization/sync-products-to-sellercraft.ts +0 -176
- package/server/graphql/types/generators/generate-bizplace-input.ts +0 -11
- package/server/graphql/types/generators/generate-company-input.ts +0 -11
- package/server/graphql/types/generators/index.ts +0 -11
- package/server/graphql/types/generators/update-domain-type-input.ts +0 -8
- package/server/graphql/types/index.ts +0 -10
- package/server/graphql/types/invitations/index.ts +0 -5
- package/server/graphql/types/oauth2/company-role.ts +0 -8
- package/server/graphql/types/oauth2/index.ts +0 -7
- package/server/graphql/types/synchronization/index.ts +0 -33
- package/server/graphql/types/synchronization/sync-invoice-list.ts +0 -8
- package/server/graphql/types/synchronization/sync-invoice-set.ts +0 -38
- package/server/graphql/types/synchronization/sync-product-list.ts +0 -8
- package/server/graphql/types/synchronization/sync-product-set.ts +0 -8
- package/server/graphql/types/synchronization/sync-purchase-order-list.ts +0 -8
- package/server/graphql/types/synchronization/sync-purchase-order-set.ts +0 -28
- package/server/index.ts +0 -37
- package/server/middlewares/business-middleware.ts +0 -32
- package/server/middlewares/index.ts +0 -20
- package/server/middlewares/store-middleware.ts +0 -36
- package/server/middlewares/warehouse-middleware.ts +0 -36
- package/server/migrations/1597668478399-SeedBusinessDomain.ts +0 -34
- package/server/migrations/1597668478401-SeedBusinessRoles.ts +0 -377
- package/server/migrations/1608009991065-SeedUser.ts +0 -64
- package/server/migrations/index.ts +0 -9
- package/server/routers/api/index.ts +0 -3
- package/server/routers/api/restful-apis/unstable/add-contact-point.ts +0 -89
- package/server/routers/api/restful-apis/unstable/add-draft-release-order.ts +0 -198
- package/server/routers/api/restful-apis/unstable/add-inbound-order.ts +0 -246
- package/server/routers/api/restful-apis/unstable/add-marketplace-order.ts +0 -171
- package/server/routers/api/restful-apis/unstable/add-products.ts +0 -112
- package/server/routers/api/restful-apis/unstable/add-release-order.ts +0 -1061
- package/server/routers/api/restful-apis/unstable/add-sales-invoice.ts +0 -144
- package/server/routers/api/restful-apis/unstable/bizplace.ts +0 -45
- package/server/routers/api/restful-apis/unstable/cancel-marketplace-order.ts +0 -81
- package/server/routers/api/restful-apis/unstable/cancel-release-order.ts +0 -91
- package/server/routers/api/restful-apis/unstable/get-contact-point-list.ts +0 -110
- package/server/routers/api/restful-apis/unstable/get-delivery-order-detail.ts +0 -46
- package/server/routers/api/restful-apis/unstable/get-delivery-order-list.ts +0 -121
- package/server/routers/api/restful-apis/unstable/get-delivery-orders.ts +0 -178
- package/server/routers/api/restful-apis/unstable/get-goods-received-notes.ts +0 -134
- package/server/routers/api/restful-apis/unstable/get-inbound-order-detail.ts +0 -128
- package/server/routers/api/restful-apis/unstable/get-inbound-order-list.ts +0 -126
- package/server/routers/api/restful-apis/unstable/get-inventory-overall-product-group.ts +0 -99
- package/server/routers/api/restful-apis/unstable/get-inventory-product-group.ts +0 -107
- package/server/routers/api/restful-apis/unstable/get-marketplace-order-shipping-list.ts +0 -156
- package/server/routers/api/restful-apis/unstable/get-marketplace-store-list.ts +0 -81
- package/server/routers/api/restful-apis/unstable/get-onhand-inventories.ts +0 -125
- package/server/routers/api/restful-apis/unstable/get-partners.ts +0 -26
- package/server/routers/api/restful-apis/unstable/get-products.ts +0 -216
- package/server/routers/api/restful-apis/unstable/get-release-order-detail.ts +0 -138
- package/server/routers/api/restful-apis/unstable/get-release-order-list.ts +0 -199
- package/server/routers/api/restful-apis/unstable/get-warehouses.ts +0 -19
- package/server/routers/api/restful-apis/unstable/index.ts +0 -32
- package/server/routers/api/restful-apis/unstable/reject-inbound-order.ts +0 -46
- package/server/routers/api/restful-apis/unstable/set-marketplace-order-delivered.ts +0 -60
- package/server/routers/api/restful-apis/unstable/set-marketplace-order-failed-delivery.ts +0 -60
- package/server/routers/api/restful-apis/unstable/update-marketplace-order.ts +0 -111
- package/server/routers/api/restful-apis/unstable/update-marketplace-shipping-order.ts +0 -107
- package/server/routers/api/restful-apis/unstable/update-release-order-details.ts +0 -94
- package/server/routers/api/restful-apis/v1/add-contact-point.ts +0 -77
- package/server/routers/api/restful-apis/v1/add-draft-release-order.ts +0 -196
- package/server/routers/api/restful-apis/v1/add-inbound-order.ts +0 -243
- package/server/routers/api/restful-apis/v1/add-marketplace-order.ts +0 -172
- package/server/routers/api/restful-apis/v1/add-products.ts +0 -112
- package/server/routers/api/restful-apis/v1/add-release-order.ts +0 -967
- package/server/routers/api/restful-apis/v1/bizplace.ts +0 -45
- package/server/routers/api/restful-apis/v1/cancel-marketplace-order.ts +0 -81
- package/server/routers/api/restful-apis/v1/cancel-release-order.ts +0 -91
- package/server/routers/api/restful-apis/v1/get-contact-point-list.ts +0 -110
- package/server/routers/api/restful-apis/v1/get-delivery-order-detail.ts +0 -46
- package/server/routers/api/restful-apis/v1/get-delivery-order-list.ts +0 -121
- package/server/routers/api/restful-apis/v1/get-delivery-orders.ts +0 -178
- package/server/routers/api/restful-apis/v1/get-goods-received-notes.ts +0 -134
- package/server/routers/api/restful-apis/v1/get-inbound-order-detail.ts +0 -128
- package/server/routers/api/restful-apis/v1/get-inbound-order-list.ts +0 -126
- package/server/routers/api/restful-apis/v1/get-inventory-overall-product-group.ts +0 -99
- package/server/routers/api/restful-apis/v1/get-inventory-product-group.ts +0 -112
- package/server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.ts +0 -156
- package/server/routers/api/restful-apis/v1/get-marketplace-store-list.ts +0 -81
- package/server/routers/api/restful-apis/v1/get-onhand-inventories.ts +0 -125
- package/server/routers/api/restful-apis/v1/get-partners.ts +0 -26
- package/server/routers/api/restful-apis/v1/get-products.ts +0 -216
- package/server/routers/api/restful-apis/v1/get-release-order-detail.ts +0 -134
- package/server/routers/api/restful-apis/v1/get-release-order-list.ts +0 -198
- package/server/routers/api/restful-apis/v1/get-warehouses.ts +0 -19
- package/server/routers/api/restful-apis/v1/index.ts +0 -31
- package/server/routers/api/restful-apis/v1/reject-inbound-order.ts +0 -46
- package/server/routers/api/restful-apis/v1/set-marketplace-order-delivered.ts +0 -60
- package/server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.ts +0 -60
- package/server/routers/api/restful-apis/v1/update-marketplace-order.ts +0 -111
- package/server/routers/api/restful-apis/v1/update-marketplace-shipping-order.ts +0 -104
- package/server/routers/api/restful-apis/v1/update-release-order-details.ts +0 -94
- package/server/routers/api/restful-apis/v2/add-contact-point.ts +0 -77
- package/server/routers/api/restful-apis/v2/add-draft-release-order.ts +0 -196
- package/server/routers/api/restful-apis/v2/add-inbound-order.ts +0 -243
- package/server/routers/api/restful-apis/v2/add-marketplace-order.ts +0 -172
- package/server/routers/api/restful-apis/v2/add-products.ts +0 -112
- package/server/routers/api/restful-apis/v2/add-release-order.ts +0 -967
- package/server/routers/api/restful-apis/v2/bizplace.ts +0 -45
- package/server/routers/api/restful-apis/v2/cancel-marketplace-order.ts +0 -81
- package/server/routers/api/restful-apis/v2/cancel-release-order.ts +0 -91
- package/server/routers/api/restful-apis/v2/get-contact-point-list.ts +0 -110
- package/server/routers/api/restful-apis/v2/get-delivery-order-detail.ts +0 -46
- package/server/routers/api/restful-apis/v2/get-delivery-order-list.ts +0 -121
- package/server/routers/api/restful-apis/v2/get-delivery-orders.ts +0 -178
- package/server/routers/api/restful-apis/v2/get-goods-received-notes.ts +0 -134
- package/server/routers/api/restful-apis/v2/get-inbound-order-detail.ts +0 -128
- package/server/routers/api/restful-apis/v2/get-inbound-order-list.ts +0 -126
- package/server/routers/api/restful-apis/v2/get-inventory-overall-product-group.ts +0 -99
- package/server/routers/api/restful-apis/v2/get-inventory-product-group.ts +0 -112
- package/server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.ts +0 -156
- package/server/routers/api/restful-apis/v2/get-marketplace-store-list.ts +0 -81
- package/server/routers/api/restful-apis/v2/get-onhand-inventories.ts +0 -125
- package/server/routers/api/restful-apis/v2/get-partners.ts +0 -26
- package/server/routers/api/restful-apis/v2/get-products.ts +0 -216
- package/server/routers/api/restful-apis/v2/get-release-order-detail.ts +0 -134
- package/server/routers/api/restful-apis/v2/get-release-order-list.ts +0 -198
- package/server/routers/api/restful-apis/v2/get-warehouses.ts +0 -19
- package/server/routers/api/restful-apis/v2/index.ts +0 -31
- package/server/routers/api/restful-apis/v2/reject-inbound-order.ts +0 -46
- package/server/routers/api/restful-apis/v2/set-marketplace-order-delivered.ts +0 -60
- package/server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.ts +0 -60
- package/server/routers/api/restful-apis/v2/update-marketplace-order.ts +0 -111
- package/server/routers/api/restful-apis/v2/update-marketplace-shipping-order.ts +0 -104
- package/server/routers/api/restful-apis/v2/update-release-order-details.ts +0 -94
- package/server/routers/auth-invitation-router.ts +0 -25
- package/server/routers/business/bizplace-register-router.ts +0 -31
- package/server/routers/business/business-register-router.ts +0 -32
- package/server/routers/business/index.ts +0 -3
- package/server/routers/business/path-base-business-router.ts +0 -15
- package/server/routes.ts +0 -28
- package/server/templates/account-unlock-email.ts +0 -64
- package/server/templates/invitation-email.ts +0 -65
- package/server/templates/reset-password-email.ts +0 -64
- package/server/templates/verification-email.ts +0 -65
- package/server/utils/build-map.ts +0 -18
- package/server/utils/get-warehouses.ts +0 -115
- package/server/utils/index.ts +0 -3
- package/server/utils/order-no-generator.ts +0 -8
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/** Customer list to inform when there are changes */
|
|
2
|
-
/** 1. SeeBuu */
|
|
3
|
-
|
|
4
|
-
import gql from 'graphql-tag'
|
|
5
|
-
|
|
6
|
-
import { restfulApiRouter as router } from '@things-factory/api'
|
|
7
|
-
|
|
8
|
-
import { businessMiddleware } from '../../../../middlewares/business-middleware'
|
|
9
|
-
import { storeMiddleware } from '../../../../middlewares/store-middleware'
|
|
10
|
-
|
|
11
|
-
const debug = require('debug')('things-factory:operato-hub:restful-api:v2:update-marketplace-shipping-order')
|
|
12
|
-
|
|
13
|
-
router.post(
|
|
14
|
-
'/v2/warehouse/:storeId/update-marketplace-shipping-order',
|
|
15
|
-
businessMiddleware,
|
|
16
|
-
storeMiddleware,
|
|
17
|
-
async (context, next) => {
|
|
18
|
-
const { client, marketplaceStore, domain } = context.state
|
|
19
|
-
const { t } = context
|
|
20
|
-
const bodyReq = context.request.body
|
|
21
|
-
|
|
22
|
-
if (typeof bodyReq === undefined || !Object.keys(bodyReq)?.length) {
|
|
23
|
-
context.throw(400, t('error.invalid body request format'))
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
await checkMandatoryKey(context, bodyReq)
|
|
27
|
-
debug('post:/update-marketplace-shipping-order body request', bodyReq)
|
|
28
|
-
|
|
29
|
-
const patch: any = Object.assign({}, bodyReq)
|
|
30
|
-
delete patch.orderNo
|
|
31
|
-
|
|
32
|
-
context.body = {
|
|
33
|
-
result: (
|
|
34
|
-
await client.mutate({
|
|
35
|
-
mutation: gql`
|
|
36
|
-
mutation updateMarketplaceOrderShipping($orderNo: String!, $patch: MarketplaceOrderShippingPatch!) {
|
|
37
|
-
updateMarketplaceOrderShipping(orderNo: $orderNo, patch: $patch) {
|
|
38
|
-
id
|
|
39
|
-
shippingId
|
|
40
|
-
orderNoRef
|
|
41
|
-
attentionTo
|
|
42
|
-
address1
|
|
43
|
-
address2
|
|
44
|
-
address3
|
|
45
|
-
address4
|
|
46
|
-
address5
|
|
47
|
-
state
|
|
48
|
-
city
|
|
49
|
-
postCode
|
|
50
|
-
country
|
|
51
|
-
phone1
|
|
52
|
-
phone2
|
|
53
|
-
email
|
|
54
|
-
orderType
|
|
55
|
-
weightUnit
|
|
56
|
-
totalWeight
|
|
57
|
-
volumeUnit
|
|
58
|
-
totalVolume
|
|
59
|
-
transporter
|
|
60
|
-
trackingNo
|
|
61
|
-
airwayBill
|
|
62
|
-
marketplaceStore {
|
|
63
|
-
id
|
|
64
|
-
name
|
|
65
|
-
storeId
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
`,
|
|
70
|
-
variables: { orderNo: bodyReq.orderNo, patch },
|
|
71
|
-
context: {
|
|
72
|
-
...context,
|
|
73
|
-
state: {
|
|
74
|
-
...context.state,
|
|
75
|
-
marketplaceStore,
|
|
76
|
-
domain,
|
|
77
|
-
type: 'api'
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
} as any)
|
|
81
|
-
).data
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
export function checkMandatoryKey(context, params) {
|
|
87
|
-
let noparams = []
|
|
88
|
-
|
|
89
|
-
if (!params?.orderNo) {
|
|
90
|
-
noparams.push('orderNo')
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
if (!params?.trackingNo) {
|
|
94
|
-
noparams.push('trackingNo')
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (!params?.airwayBill) {
|
|
98
|
-
noparams.push('airwayBill')
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
if (noparams.length > 0) {
|
|
102
|
-
context.throw(400, context.t('error.required param x not found', { x: `${noparams.join(', ')}` }))
|
|
103
|
-
}
|
|
104
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import gql from 'graphql-tag'
|
|
2
|
-
|
|
3
|
-
import { restfulApiRouter as router } from '@things-factory/api'
|
|
4
|
-
import { Bizplace } from '@things-factory/biz-base'
|
|
5
|
-
import { getRepository } from '@things-factory/shell'
|
|
6
|
-
|
|
7
|
-
import { businessMiddleware } from '../../../../middlewares/business-middleware'
|
|
8
|
-
import { warehouseMiddleware } from '../../../../middlewares/warehouse-middleware'
|
|
9
|
-
|
|
10
|
-
const debug = require('debug')('things-factory:operato-hub:restful-api:v2:update-release-order-details')
|
|
11
|
-
|
|
12
|
-
router.post(
|
|
13
|
-
'/v2/warehouse/:warehouseId/update-release-order-details',
|
|
14
|
-
businessMiddleware,
|
|
15
|
-
warehouseMiddleware,
|
|
16
|
-
async (context, next) => {
|
|
17
|
-
const { client, domain } = context.state
|
|
18
|
-
const { warehouseId: customerBizplaceId } = context.params
|
|
19
|
-
const { t } = context
|
|
20
|
-
const bodyReq = context.request.body
|
|
21
|
-
|
|
22
|
-
if (!customerBizplaceId) context.throw(404, t('error.warehouse id not found'))
|
|
23
|
-
const customerBizplace: Bizplace = await getRepository(Bizplace).findOne({
|
|
24
|
-
where: { id: customerBizplaceId }
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
if (typeof bodyReq === undefined || !Object.keys(bodyReq)?.length) {
|
|
28
|
-
debug('bodyReq', bodyReq)
|
|
29
|
-
context.throw(400, t('error.invalid body request format'))
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
let patch: any = {}
|
|
33
|
-
if (bodyReq?.releaseOrder) patch.releaseGood = bodyReq.releaseOrder
|
|
34
|
-
else context.throw(400, t('error.body request require releaseGood property'))
|
|
35
|
-
|
|
36
|
-
if (bodyReq?.shippingOrder) patch.shippingOrder = bodyReq.shippingOrder
|
|
37
|
-
else patch.shippingOrder = null
|
|
38
|
-
|
|
39
|
-
context.body = {
|
|
40
|
-
result: (
|
|
41
|
-
await client.mutate({
|
|
42
|
-
mutation: gql`
|
|
43
|
-
mutation updateReleaseGoodDetails($releaseGood: ReleaseGoodPatch, $shippingOrder: ShippingOrderPatch) {
|
|
44
|
-
updateReleaseGoodDetails(releaseGood: $releaseGood, shippingOrder: $shippingOrder) {
|
|
45
|
-
id
|
|
46
|
-
name
|
|
47
|
-
refNo
|
|
48
|
-
refNo2
|
|
49
|
-
refNo3
|
|
50
|
-
ownTransport
|
|
51
|
-
collectionOrderNo
|
|
52
|
-
exportOption
|
|
53
|
-
courierOption
|
|
54
|
-
packingOption
|
|
55
|
-
type
|
|
56
|
-
billingAddress
|
|
57
|
-
deliveryAddress1
|
|
58
|
-
deliveryAddress2
|
|
59
|
-
deliveryAddress3
|
|
60
|
-
deliveryAddress4
|
|
61
|
-
deliveryAddress5
|
|
62
|
-
attentionTo
|
|
63
|
-
attentionCompany
|
|
64
|
-
city
|
|
65
|
-
state
|
|
66
|
-
postalCode
|
|
67
|
-
country
|
|
68
|
-
phone1
|
|
69
|
-
phone2
|
|
70
|
-
email
|
|
71
|
-
handoverType
|
|
72
|
-
dropoffAddress
|
|
73
|
-
pickupAddress
|
|
74
|
-
transporter
|
|
75
|
-
trackingNo
|
|
76
|
-
marketplaceOrderStatus
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
`,
|
|
80
|
-
variables: { ...patch },
|
|
81
|
-
context: {
|
|
82
|
-
...context,
|
|
83
|
-
state: {
|
|
84
|
-
...context.state,
|
|
85
|
-
bizplace: customerBizplace,
|
|
86
|
-
domain,
|
|
87
|
-
type: 'api'
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
} as any)
|
|
91
|
-
).data
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
)
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import Router from 'koa-router'
|
|
2
|
-
|
|
3
|
-
import { acceptInvitation } from '../controllers/invitation'
|
|
4
|
-
|
|
5
|
-
const debug = require('debug')('things-factory:auth-base:auth-invitation-router')
|
|
6
|
-
|
|
7
|
-
export const authInvitationRouter = new Router()
|
|
8
|
-
|
|
9
|
-
authInvitationRouter.get('/accept/:token', async (context, next) => {
|
|
10
|
-
var token = context.params.token
|
|
11
|
-
|
|
12
|
-
debug('get:/accept/:token', token)
|
|
13
|
-
|
|
14
|
-
var isVerified = await acceptInvitation(token)
|
|
15
|
-
|
|
16
|
-
if (isVerified) {
|
|
17
|
-
context.redirect(`/auth/result`)
|
|
18
|
-
} else {
|
|
19
|
-
context.status = 404
|
|
20
|
-
context.body = 'invitation token not found'
|
|
21
|
-
context.redirect('/auth/signup')
|
|
22
|
-
|
|
23
|
-
debug('get:/accept/:token', 'invitation token not found')
|
|
24
|
-
}
|
|
25
|
-
})
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import Router from 'koa-router'
|
|
2
|
-
|
|
3
|
-
import { User } from '@things-factory/auth-base'
|
|
4
|
-
import { Bizplace } from '@things-factory/biz-base'
|
|
5
|
-
import { getRepository } from '@things-factory/shell'
|
|
6
|
-
|
|
7
|
-
import { businessMiddleware } from '../../middlewares/business-middleware'
|
|
8
|
-
|
|
9
|
-
const debug = require('debug')('things-factory:operato-hub:bizplace-register-router')
|
|
10
|
-
|
|
11
|
-
export const bizplaceRegisterRouter = new Router()
|
|
12
|
-
bizplaceRegisterRouter.use(businessMiddleware)
|
|
13
|
-
|
|
14
|
-
bizplaceRegisterRouter.post('/register', async (context, next) => {
|
|
15
|
-
// TODO move to graphql createBizplace mutation
|
|
16
|
-
const { user, business: company } = context.state
|
|
17
|
-
const parameters = context.request.body || {}
|
|
18
|
-
|
|
19
|
-
debug('post:/register request.body', context.request.body)
|
|
20
|
-
|
|
21
|
-
const bizplace: Bizplace = await getRepository(Bizplace).save({
|
|
22
|
-
...parameters,
|
|
23
|
-
company
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
await getRepository(User).save(user)
|
|
27
|
-
|
|
28
|
-
debug('post:/register', bizplace, user)
|
|
29
|
-
|
|
30
|
-
context.redirect(`/bizplace/${bizplace.id}/bizplace-home`)
|
|
31
|
-
})
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import Router from 'koa-router'
|
|
2
|
-
import { EntityManager, getConnection } from 'typeorm'
|
|
3
|
-
|
|
4
|
-
import { Domain } from '@things-factory/shell'
|
|
5
|
-
import { slugger } from '@things-factory/utils'
|
|
6
|
-
|
|
7
|
-
import { initGroups } from '../../controllers/bizplace-initializer'
|
|
8
|
-
import { businessRegister, createDomain, initCodes, initTransporter } from '../../controllers/company-initializer'
|
|
9
|
-
|
|
10
|
-
export const businessRegisterRouter = new Router()
|
|
11
|
-
|
|
12
|
-
businessRegisterRouter.post('/register', async (context, next) => {
|
|
13
|
-
const { user } = context.state
|
|
14
|
-
const parameters = context.request.body || {}
|
|
15
|
-
|
|
16
|
-
const subdomain = slugger(parameters.name)
|
|
17
|
-
|
|
18
|
-
/* create domain with subdomain as subdomain */
|
|
19
|
-
|
|
20
|
-
return await getConnection().transaction(async (tx: EntityManager) => {
|
|
21
|
-
const domain: Domain = await createDomain(parameters.name, user, tx)
|
|
22
|
-
|
|
23
|
-
await initCodes(tx, domain)
|
|
24
|
-
await initTransporter(tx, domain)
|
|
25
|
-
|
|
26
|
-
const business = await businessRegister(domain, parameters, user, tx)
|
|
27
|
-
|
|
28
|
-
await initGroups(tx, domain)
|
|
29
|
-
|
|
30
|
-
context.redirect(`/`)
|
|
31
|
-
})
|
|
32
|
-
})
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import Router from 'koa-router'
|
|
2
|
-
|
|
3
|
-
import { businessMiddleware } from '../../middlewares/business-middleware'
|
|
4
|
-
|
|
5
|
-
export const pathBaseBusinessRouter = new Router()
|
|
6
|
-
|
|
7
|
-
pathBaseBusinessRouter.use(businessMiddleware)
|
|
8
|
-
|
|
9
|
-
pathBaseBusinessRouter
|
|
10
|
-
.get('/:subdomain', async (context, next) => {
|
|
11
|
-
context.redirect(`${context.path}/business-home`)
|
|
12
|
-
})
|
|
13
|
-
.get('/:subdomain/(.*)', async (context, next) => {
|
|
14
|
-
await next()
|
|
15
|
-
})
|
package/server/routes.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { businessMiddleware } from './middlewares/business-middleware'
|
|
2
|
-
import { bizplaceRegisterRouter, businessRegisterRouter } from './routers/business'
|
|
3
|
-
|
|
4
|
-
process.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {})
|
|
5
|
-
|
|
6
|
-
process.on('bootstrap-module-global-private-route' as any, (app, globalPrivateRouter) => {
|
|
7
|
-
globalPrivateRouter.use(
|
|
8
|
-
'/business-register',
|
|
9
|
-
businessRegisterRouter.routes(),
|
|
10
|
-
businessRegisterRouter.allowedMethods()
|
|
11
|
-
)
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
process.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {
|
|
15
|
-
/* businessMiddleware need to know domain, so it should be here. don't move up above api routers */
|
|
16
|
-
domainPublicRouter.use(businessMiddleware)
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
process.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {
|
|
20
|
-
domainPrivateRouter.use(businessMiddleware)
|
|
21
|
-
|
|
22
|
-
/* domainPrivateRouter based nested-routers */
|
|
23
|
-
domainPrivateRouter.use(
|
|
24
|
-
'/bizplace-register',
|
|
25
|
-
bizplaceRegisterRouter.routes(),
|
|
26
|
-
bizplaceRegisterRouter.allowedMethods()
|
|
27
|
-
)
|
|
28
|
-
})
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
export function getUnlockAccountEmailForm({ name, resetUrl }) {
|
|
2
|
-
return `
|
|
3
|
-
<html lang="en">
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="utf-8" />
|
|
6
|
-
|
|
7
|
-
<title>reset password</title>
|
|
8
|
-
<meta name="description" content="Password Reset" />
|
|
9
|
-
<meta name="author" content="hatiolab" />
|
|
10
|
-
</head>
|
|
11
|
-
|
|
12
|
-
<body>
|
|
13
|
-
<div style="background-color:#f6f6f6">
|
|
14
|
-
<!--header begin-->
|
|
15
|
-
<div style="background-color:#fff;padding:0 10px;border-top: 2px solid #394e64;">
|
|
16
|
-
<a href="#" target="_blank"
|
|
17
|
-
><img
|
|
18
|
-
src="http://www.hatiolab.com/assets/img/logo-operato.png"
|
|
19
|
-
style="max-height:50px"
|
|
20
|
-
/></a>
|
|
21
|
-
</div>
|
|
22
|
-
<!--header end-->
|
|
23
|
-
|
|
24
|
-
<!--title begin-->
|
|
25
|
-
<div
|
|
26
|
-
style="background-color:#22a6a7;padding:12px 10px 10px 10px;min-height:50px;"
|
|
27
|
-
>
|
|
28
|
-
<img
|
|
29
|
-
src="http://www.hatiolab.com/assets/img/icon-mail.png"
|
|
30
|
-
style="float:left;margin:0 10px 0 40px"
|
|
31
|
-
/>
|
|
32
|
-
<span style="display:block;color:#fff;font-size:20px"
|
|
33
|
-
>Hi ${name}!</span
|
|
34
|
-
>
|
|
35
|
-
<span style="display:block;color:#fff;font-size:34px;font-weight:bold"
|
|
36
|
-
>Unlock Account</span
|
|
37
|
-
>
|
|
38
|
-
</div>
|
|
39
|
-
<!--title end-->
|
|
40
|
-
|
|
41
|
-
<!--body begin-->
|
|
42
|
-
<p style="padding:10px 20px;line-height:1.5;font-size:16px">
|
|
43
|
-
Click the button below to unlock account and reset password.
|
|
44
|
-
<br />
|
|
45
|
-
<a
|
|
46
|
-
href="${resetUrl}"
|
|
47
|
-
style="display:inline-block;margin:10px 5px 5px 0;border-radius:7px;background-color:#22a6a7;padding:7px 15px;color:#fff;font-size:18px;text-decoration:none;text-transform:capitalize;"
|
|
48
|
-
>unlock account</a
|
|
49
|
-
>
|
|
50
|
-
</p>
|
|
51
|
-
<!--body end-->
|
|
52
|
-
|
|
53
|
-
<!--footer begin-->
|
|
54
|
-
<div
|
|
55
|
-
style="background-color:#3d5874;padding:7px 20px 5px 20px;font-size:12px;color:#efefef"
|
|
56
|
-
>
|
|
57
|
-
© Hatio, Lab. Inc. All rights reserved.
|
|
58
|
-
</div>
|
|
59
|
-
<!--footer end-->
|
|
60
|
-
</div>
|
|
61
|
-
</body>
|
|
62
|
-
</html>
|
|
63
|
-
`
|
|
64
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
export function getInvitationEmailForm({ email, acceptUrl }) {
|
|
2
|
-
return `
|
|
3
|
-
<html lang="en">
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="utf-8" />
|
|
6
|
-
|
|
7
|
-
<title>Invitation from Operato</title>
|
|
8
|
-
<meta name="description" content="Invitation" />
|
|
9
|
-
<meta name="author" content="hatiolab" />
|
|
10
|
-
</head>
|
|
11
|
-
|
|
12
|
-
<body>
|
|
13
|
-
<div style="background-color:#f6f6f6">
|
|
14
|
-
<!--header begin-->
|
|
15
|
-
<div style="background-color:#fff;padding:0 10px;border-top: 2px solid #394e64;">
|
|
16
|
-
<a href="#" target="_blank"
|
|
17
|
-
><img
|
|
18
|
-
src="http://www.hatiolab.com/assets/img/logo-operato.png"
|
|
19
|
-
style="max-height:50px"
|
|
20
|
-
/></a>
|
|
21
|
-
</div>
|
|
22
|
-
<!--header end-->
|
|
23
|
-
|
|
24
|
-
<!--title begin-->
|
|
25
|
-
<div
|
|
26
|
-
style="background-color:#22a6a7;padding:12px 10px 10px 10px;min-height:50px;"
|
|
27
|
-
>
|
|
28
|
-
<img
|
|
29
|
-
src="http://www.hatiolab.com/assets/img/icon-mail.png"
|
|
30
|
-
style="float:left;margin:0 10px 0 40px"
|
|
31
|
-
/>
|
|
32
|
-
<span style="display:block;color:#fff;font-size:20px"
|
|
33
|
-
>Hi ${email}!</span
|
|
34
|
-
>
|
|
35
|
-
<span style="display:block;color:#fff;font-size:34px;font-weight:bold"
|
|
36
|
-
>Verify your email</span
|
|
37
|
-
>
|
|
38
|
-
</div>
|
|
39
|
-
<!--title end-->
|
|
40
|
-
|
|
41
|
-
<!--body begin-->
|
|
42
|
-
<p style="padding:10px 20px;line-height:1.5;font-size:16px">
|
|
43
|
-
You're invited from Operato.
|
|
44
|
-
Simply click the button below to verify your email address.
|
|
45
|
-
<br />
|
|
46
|
-
<a
|
|
47
|
-
href="${acceptUrl}"
|
|
48
|
-
style="display:inline-block;margin:10px 5px 5px 0;border-radius:7px;background-color:#22a6a7;padding:7px 15px;color:#fff;font-size:18px;text-decoration:none;text-transform:capitalize;"
|
|
49
|
-
>Verify</a
|
|
50
|
-
>
|
|
51
|
-
</p>
|
|
52
|
-
<!--body end-->
|
|
53
|
-
|
|
54
|
-
<!--footer begin-->
|
|
55
|
-
<div
|
|
56
|
-
style="background-color:#3d5874;padding:7px 20px 5px 20px;font-size:12px;color:#efefef"
|
|
57
|
-
>
|
|
58
|
-
© Hatio, Lab. Inc. All rights reserved.
|
|
59
|
-
</div>
|
|
60
|
-
<!--footer end-->
|
|
61
|
-
</div>
|
|
62
|
-
</body>
|
|
63
|
-
</html>
|
|
64
|
-
`
|
|
65
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
export function getResetPasswordEmailForm({ name, resetUrl }) {
|
|
2
|
-
return `
|
|
3
|
-
<html lang="en">
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="utf-8" />
|
|
6
|
-
|
|
7
|
-
<title>reset password</title>
|
|
8
|
-
<meta name="description" content="Password Reset" />
|
|
9
|
-
<meta name="author" content="hatiolab" />
|
|
10
|
-
</head>
|
|
11
|
-
|
|
12
|
-
<body>
|
|
13
|
-
<div style="background-color:#f6f6f6">
|
|
14
|
-
<!--header begin-->
|
|
15
|
-
<div style="background-color:#fff;padding:0 10px;border-top: 2px solid #394e64;">
|
|
16
|
-
<a href="#" target="_blank"
|
|
17
|
-
><img
|
|
18
|
-
src="http://www.hatiolab.com/assets/img/logo-operato.png"
|
|
19
|
-
style="max-height:50px"
|
|
20
|
-
/></a>
|
|
21
|
-
</div>
|
|
22
|
-
<!--header end-->
|
|
23
|
-
|
|
24
|
-
<!--title begin-->
|
|
25
|
-
<div
|
|
26
|
-
style="background-color:#22a6a7;padding:12px 10px 10px 10px;min-height:50px;"
|
|
27
|
-
>
|
|
28
|
-
<img
|
|
29
|
-
src="http://www.hatiolab.com/assets/img/icon-mail.png"
|
|
30
|
-
style="float:left;margin:0 10px 0 40px"
|
|
31
|
-
/>
|
|
32
|
-
<span style="display:block;color:#fff;font-size:20px"
|
|
33
|
-
>Hi ${name}!</span
|
|
34
|
-
>
|
|
35
|
-
<span style="display:block;color:#fff;font-size:34px;font-weight:bold"
|
|
36
|
-
>Reset password</span
|
|
37
|
-
>
|
|
38
|
-
</div>
|
|
39
|
-
<!--title end-->
|
|
40
|
-
|
|
41
|
-
<!--body begin-->
|
|
42
|
-
<p style="padding:10px 20px;line-height:1.5;font-size:16px">
|
|
43
|
-
Click the button below to reset password.
|
|
44
|
-
<br />
|
|
45
|
-
<a
|
|
46
|
-
href="${resetUrl}"
|
|
47
|
-
style="display:inline-block;margin:10px 5px 5px 0;border-radius:7px;background-color:#22a6a7;padding:7px 15px;color:#fff;font-size:18px;text-decoration:none;text-transform:capitalize;"
|
|
48
|
-
>reset password</a
|
|
49
|
-
>
|
|
50
|
-
</p>
|
|
51
|
-
<!--body end-->
|
|
52
|
-
|
|
53
|
-
<!--footer begin-->
|
|
54
|
-
<div
|
|
55
|
-
style="background-color:#3d5874;padding:7px 20px 5px 20px;font-size:12px;color:#efefef"
|
|
56
|
-
>
|
|
57
|
-
© Hatio, Lab. Inc. All rights reserved.
|
|
58
|
-
</div>
|
|
59
|
-
<!--footer end-->
|
|
60
|
-
</div>
|
|
61
|
-
</body>
|
|
62
|
-
</html>
|
|
63
|
-
`
|
|
64
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
export function getVerificationEmailForm({ name, verifyUrl }) {
|
|
2
|
-
return `
|
|
3
|
-
<html lang="en">
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="utf-8" />
|
|
6
|
-
|
|
7
|
-
<title>Verify your email</title>
|
|
8
|
-
<meta name="description" content="Email Verification" />
|
|
9
|
-
<meta name="author" content="hatiolab" />
|
|
10
|
-
</head>
|
|
11
|
-
|
|
12
|
-
<body>
|
|
13
|
-
<div style="background-color:#f6f6f6">
|
|
14
|
-
<!--header begin-->
|
|
15
|
-
<div style="background-color:#fff;padding:0 10px;border-top: 2px solid #394e64;">
|
|
16
|
-
<a href="#" target="_blank"
|
|
17
|
-
><img
|
|
18
|
-
src="http://www.hatiolab.com/assets/img/logo-operato.png"
|
|
19
|
-
style="max-height:50px"
|
|
20
|
-
/></a>
|
|
21
|
-
</div>
|
|
22
|
-
<!--header end-->
|
|
23
|
-
|
|
24
|
-
<!--title begin-->
|
|
25
|
-
<div
|
|
26
|
-
style="background-color:#22a6a7;padding:12px 10px 10px 10px;min-height:50px;"
|
|
27
|
-
>
|
|
28
|
-
<img
|
|
29
|
-
src="http://www.hatiolab.com/assets/img/icon-mail.png"
|
|
30
|
-
style="float:left;margin:0 10px 0 40px"
|
|
31
|
-
/>
|
|
32
|
-
<span style="display:block;color:#fff;font-size:20px"
|
|
33
|
-
>Hi ${name}!</span
|
|
34
|
-
>
|
|
35
|
-
<span style="display:block;color:#fff;font-size:34px;font-weight:bold"
|
|
36
|
-
>Verify your email</span
|
|
37
|
-
>
|
|
38
|
-
</div>
|
|
39
|
-
<!--title end-->
|
|
40
|
-
|
|
41
|
-
<!--body begin-->
|
|
42
|
-
<p style="padding:10px 20px;line-height:1.5;font-size:16px">
|
|
43
|
-
You're almost ready to start enjoying Operato.
|
|
44
|
-
Simply click the button below to verify your email address.
|
|
45
|
-
<br />
|
|
46
|
-
<a
|
|
47
|
-
href="${verifyUrl}"
|
|
48
|
-
style="display:inline-block;margin:10px 5px 5px 0;border-radius:7px;background-color:#22a6a7;padding:7px 15px;color:#fff;font-size:18px;text-decoration:none;text-transform:capitalize;"
|
|
49
|
-
>Verify</a
|
|
50
|
-
>
|
|
51
|
-
</p>
|
|
52
|
-
<!--body end-->
|
|
53
|
-
|
|
54
|
-
<!--footer begin-->
|
|
55
|
-
<div
|
|
56
|
-
style="background-color:#3d5874;padding:7px 20px 5px 20px;font-size:12px;color:#efefef"
|
|
57
|
-
>
|
|
58
|
-
© Hatio, Lab. Inc. All rights reserved.
|
|
59
|
-
</div>
|
|
60
|
-
<!--footer end-->
|
|
61
|
-
</div>
|
|
62
|
-
</body>
|
|
63
|
-
</html>
|
|
64
|
-
`
|
|
65
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export function buildMap<T>(data: T[], key: string): Map<any, T> {
|
|
2
|
-
const map: Map<any, T> = new Map()
|
|
3
|
-
|
|
4
|
-
for (let i: number = 0; i < data.length; i++) {
|
|
5
|
-
const record: T = data[i]
|
|
6
|
-
if (!record[key]) {
|
|
7
|
-
throw new Error(`Passed key doesn't exists`)
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
if (map.has(key)) {
|
|
11
|
-
throw new Error(`There are duplicated value of key`)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
map.set(record[key], record)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return map
|
|
18
|
-
}
|