zudello-integration-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/package.json +23 -0
- package/src/index.js +62 -0
- package/src/integrations/samples/bc-zudello/account.js +40 -0
- package/src/integrations/samples/bc-zudello/accountingPeriod.js +52 -0
- package/src/integrations/samples/bc-zudello/currency.js +42 -0
- package/src/integrations/samples/bc-zudello/customer.js +45 -0
- package/src/integrations/samples/bc-zudello/dimension.js +85 -0
- package/src/integrations/samples/bc-zudello/employee.js +38 -0
- package/src/integrations/samples/bc-zudello/fixedAsset.js +48 -0
- package/src/integrations/samples/bc-zudello/item.js +45 -0
- package/src/integrations/samples/bc-zudello/itemCategory.js +37 -0
- package/src/integrations/samples/bc-zudello/location.js +37 -0
- package/src/integrations/samples/bc-zudello/paymentMethod.js +38 -0
- package/src/integrations/samples/bc-zudello/paymentTerm.js +41 -0
- package/src/integrations/samples/bc-zudello/project.js +38 -0
- package/src/integrations/samples/bc-zudello/purchaseCredit.js +109 -0
- package/src/integrations/samples/bc-zudello/purchaseInvoice.js +138 -0
- package/src/integrations/samples/bc-zudello/purchaseOrder.js +150 -0
- package/src/integrations/samples/bc-zudello/purchaseOrderFetch.js +100 -0
- package/src/integrations/samples/bc-zudello/supplier.js +40 -0
- package/src/integrations/samples/bc-zudello/taxRate.js +39 -0
- package/src/integrations/samples/bc-zudello/uom.js +42 -0
- package/src/integrations/samples/dear-zudello/account.js +20 -0
- package/src/integrations/samples/dear-zudello/customer.js +23 -0
- package/src/integrations/samples/dear-zudello/item.js +30 -0
- package/src/integrations/samples/dear-zudello/location.js +19 -0
- package/src/integrations/samples/dear-zudello/salesOrder.js +126 -0
- package/src/integrations/samples/dear-zudello/supplier.js +23 -0
- package/src/integrations/samples/dear-zudello/taxRate.js +19 -0
- package/src/integrations/samples/fo-zudello/account.js +20 -0
- package/src/integrations/samples/fo-zudello/costCentre.js +20 -0
- package/src/integrations/samples/fo-zudello/department.js +20 -0
- package/src/integrations/samples/fo-zudello/item.js +21 -0
- package/src/integrations/samples/fo-zudello/location.js +20 -0
- package/src/integrations/samples/fo-zudello/project.js +18 -0
- package/src/integrations/samples/fo-zudello/subsidiary.js +20 -0
- package/src/integrations/samples/fo-zudello/supplier.js +23 -0
- package/src/integrations/samples/fo-zudello/taxRate.js +20 -0
- package/src/integrations/samples/intacct-zudello/account.js +56 -0
- package/src/integrations/samples/intacct-zudello/accountGroup.js +54 -0
- package/src/integrations/samples/intacct-zudello/accountingPeriod.js +67 -0
- package/src/integrations/samples/intacct-zudello/apBill.js +146 -0
- package/src/integrations/samples/intacct-zudello/apBillFetch.js +195 -0
- package/src/integrations/samples/intacct-zudello/costCentre.js +54 -0
- package/src/integrations/samples/intacct-zudello/costType.js +54 -0
- package/src/integrations/samples/intacct-zudello/customerCategory.js +54 -0
- package/src/integrations/samples/intacct-zudello/customerGroup.js +54 -0
- package/src/integrations/samples/intacct-zudello/department.js +54 -0
- package/src/integrations/samples/intacct-zudello/employee.js +51 -0
- package/src/integrations/samples/intacct-zudello/expense-create.js +156 -0
- package/src/integrations/samples/intacct-zudello/item.js +64 -0
- package/src/integrations/samples/intacct-zudello/itemCategory.js +54 -0
- package/src/integrations/samples/intacct-zudello/itemGroup.js +54 -0
- package/src/integrations/samples/intacct-zudello/location.js +54 -0
- package/src/integrations/samples/intacct-zudello/paymentTerm.js +56 -0
- package/src/integrations/samples/intacct-zudello/project.js +54 -0
- package/src/integrations/samples/intacct-zudello/projectGroup.js +54 -0
- package/src/integrations/samples/intacct-zudello/projectTask.js +40 -0
- package/src/integrations/samples/intacct-zudello/subsidiary.js +54 -0
- package/src/integrations/samples/intacct-zudello/supplier.js +168 -0
- package/src/integrations/samples/intacct-zudello/supplierCategory.js +54 -0
- package/src/integrations/samples/intacct-zudello/supplierGroup.js +54 -0
- package/src/integrations/samples/intacct-zudello/supplierV2.js +64 -0
- package/src/integrations/samples/intacct-zudello/taxRate.js +34 -0
- package/src/integrations/samples/intacct-zudello/taxSolution.js +35 -0
- package/src/integrations/samples/intacct-zudello/uom.js +37 -0
- package/src/integrations/samples/intacct-zudello/warehouse.js +54 -0
- package/src/integrations/samples/intacct-zudello/zone.js +54 -0
- package/src/integrations/samples/nexvia-zudello/account.js +20 -0
- package/src/integrations/samples/nexvia-zudello/costCentre.js +19 -0
- package/src/integrations/samples/nexvia-zudello/costType.js +19 -0
- package/src/integrations/samples/nexvia-zudello/currency.js +20 -0
- package/src/integrations/samples/nexvia-zudello/department.js +20 -0
- package/src/integrations/samples/nexvia-zudello/itemCategory.js +19 -0
- package/src/integrations/samples/nexvia-zudello/location.js +20 -0
- package/src/integrations/samples/nexvia-zudello/project.js +20 -0
- package/src/integrations/samples/nexvia-zudello/supplier.js +21 -0
- package/src/integrations/samples/nexvia-zudello/taxRate.js +21 -0
- package/src/integrations/samples/nexvia-zudello/uom.js +19 -0
- package/src/integrations/samples/nexvia-zudello/zone.js +20 -0
- package/src/integrations/samples/zenoti-zudello/location.js +20 -0
- package/src/integrations/samples/zenoti-zudello/product.js +32 -0
- package/src/integrations/samples/zenoti-zudello/purchaseOrder.js +193 -0
- package/src/sdk/Auth.js +42 -0
- package/src/sdk/Base.js +118 -0
- package/src/sdk/BusinessCentral.js +31 -0
- package/src/sdk/Dear.js +31 -0
- package/src/sdk/Fo.js +31 -0
- package/src/sdk/Intacct.js +103 -0
- package/src/sdk/JobReady.js +31 -0
- package/src/sdk/MYOBAcumatica.js +33 -0
- package/src/sdk/Netsuite.js +31 -0
- package/src/sdk/NetsuiteSOAP.js +92 -0
- package/src/sdk/Nexvia.js +31 -0
- package/src/sdk/RetailExpress.js +31 -0
- package/src/sdk/Sybiz.js +31 -0
- package/src/sdk/Zenoti.js +31 -0
- package/src/sdk/Zudello.js +206 -0
- package/src/sdk/submodules/bc/Universal.js +109 -0
- package/src/sdk/submodules/dear/Universal.js +110 -0
- package/src/sdk/submodules/fo/Universal.js +111 -0
- package/src/sdk/submodules/intacct/Account.js +31 -0
- package/src/sdk/submodules/intacct/AccountGroup.js +31 -0
- package/src/sdk/submodules/intacct/AccountingPeriod.js +31 -0
- package/src/sdk/submodules/intacct/ApAdjustment.js +35 -0
- package/src/sdk/submodules/intacct/ApBill.js +52 -0
- package/src/sdk/submodules/intacct/ApTerm.js +31 -0
- package/src/sdk/submodules/intacct/ArAdjustment.js +35 -0
- package/src/sdk/submodules/intacct/ArInvoice.js +35 -0
- package/src/sdk/submodules/intacct/ArTerm.js +31 -0
- package/src/sdk/submodules/intacct/Budget.js +31 -0
- package/src/sdk/submodules/intacct/Class.js +31 -0
- package/src/sdk/submodules/intacct/CostType.js +31 -0
- package/src/sdk/submodules/intacct/Customer.js +31 -0
- package/src/sdk/submodules/intacct/CustomerGroup.js +31 -0
- package/src/sdk/submodules/intacct/CustomerType.js +31 -0
- package/src/sdk/submodules/intacct/Department.js +31 -0
- package/src/sdk/submodules/intacct/Employee.js +31 -0
- package/src/sdk/submodules/intacct/Entity.js +31 -0
- package/src/sdk/submodules/intacct/File.js +26 -0
- package/src/sdk/submodules/intacct/Item.js +31 -0
- package/src/sdk/submodules/intacct/ItemGroup.js +31 -0
- package/src/sdk/submodules/intacct/Location.js +31 -0
- package/src/sdk/submodules/intacct/PoDocument.js +52 -0
- package/src/sdk/submodules/intacct/ProductLine.js +31 -0
- package/src/sdk/submodules/intacct/Project.js +31 -0
- package/src/sdk/submodules/intacct/ProjectGroup.js +31 -0
- package/src/sdk/submodules/intacct/Task.js +31 -0
- package/src/sdk/submodules/intacct/TaxDetail.js +31 -0
- package/src/sdk/submodules/intacct/TaxGroups.js +31 -0
- package/src/sdk/submodules/intacct/TaxSolution.js +31 -0
- package/src/sdk/submodules/intacct/Universal.js +139 -0
- package/src/sdk/submodules/intacct/Uom.js +31 -0
- package/src/sdk/submodules/intacct/Vendor.js +31 -0
- package/src/sdk/submodules/intacct/VendorGroup.js +31 -0
- package/src/sdk/submodules/intacct/VendorTypes.js +31 -0
- package/src/sdk/submodules/intacct/Warehouse.js +31 -0
- package/src/sdk/submodules/intacct/Zone.js +31 -0
- package/src/sdk/submodules/intacct/apAdjustment/Item.js +31 -0
- package/src/sdk/submodules/intacct/apBill/Item.js +31 -0
- package/src/sdk/submodules/intacct/arAdjustment/Item.js +31 -0
- package/src/sdk/submodules/intacct/arInvoice/Item.js +31 -0
- package/src/sdk/submodules/intacct/poDocument/Item.js +31 -0
- package/src/sdk/submodules/jobready/Universal.js +107 -0
- package/src/sdk/submodules/myobAcumatica/OData.js +109 -0
- package/src/sdk/submodules/myobAcumatica/Universal.js +109 -0
- package/src/sdk/submodules/netsuite/Universal.js +97 -0
- package/src/sdk/submodules/netsuite-soap/PurchaseOrder.js +39 -0
- package/src/sdk/submodules/netsuite-soap/Receipt.js +39 -0
- package/src/sdk/submodules/netsuite-soap/Universal.js +124 -0
- package/src/sdk/submodules/netsuite-soap/UniversalTransaction.js +138 -0
- package/src/sdk/submodules/netsuite-soap/VendorBill.js +41 -0
- package/src/sdk/submodules/netsuite-soap/VendorCredit.js +39 -0
- package/src/sdk/submodules/nexvia/Universal.js +108 -0
- package/src/sdk/submodules/retailExpress/Universal.js +107 -0
- package/src/sdk/submodules/sybiz/Universal.js +108 -0
- package/src/sdk/submodules/zenoti/Universal.js +110 -0
- package/src/sdk/submodules/zudello/Account.js +63 -0
- package/src/sdk/submodules/zudello/AccountGroup.js +63 -0
- package/src/sdk/submodules/zudello/AccountingPeriod.js +63 -0
- package/src/sdk/submodules/zudello/CostCentre.js +63 -0
- package/src/sdk/submodules/zudello/CostType.js +63 -0
- package/src/sdk/submodules/zudello/Currency.js +63 -0
- package/src/sdk/submodules/zudello/Customer.js +63 -0
- package/src/sdk/submodules/zudello/CustomerCategory.js +63 -0
- package/src/sdk/submodules/zudello/CustomerGroup.js +63 -0
- package/src/sdk/submodules/zudello/Department.js +63 -0
- package/src/sdk/submodules/zudello/Employee.js +63 -0
- package/src/sdk/submodules/zudello/FixedAsset.js +63 -0
- package/src/sdk/submodules/zudello/Item.js +63 -0
- package/src/sdk/submodules/zudello/ItemCategory.js +63 -0
- package/src/sdk/submodules/zudello/ItemGroup.js +63 -0
- package/src/sdk/submodules/zudello/Location.js +63 -0
- package/src/sdk/submodules/zudello/PaymentMethod.js +63 -0
- package/src/sdk/submodules/zudello/PaymentTerm.js +63 -0
- package/src/sdk/submodules/zudello/Project.js +63 -0
- package/src/sdk/submodules/zudello/ProjectGroup.js +63 -0
- package/src/sdk/submodules/zudello/ProjectTask.js +63 -0
- package/src/sdk/submodules/zudello/PurchaseOrder.js +63 -0
- package/src/sdk/submodules/zudello/Subsidiary.js +63 -0
- package/src/sdk/submodules/zudello/Supplier.js +63 -0
- package/src/sdk/submodules/zudello/SupplierCategory.js +63 -0
- package/src/sdk/submodules/zudello/SupplierGroup.js +63 -0
- package/src/sdk/submodules/zudello/Universal.js +31 -0
- package/src/sdk/submodules/zudello/Uom.js +63 -0
- package/src/sdk/submodules/zudello/Warehouse.js +63 -0
- package/src/sdk/submodules/zudello/Zone.js +63 -0
- package/src/sdk/submodules/zudello/tax/Rate.js +63 -0
- package/src/sdk/submodules/zudello/tax/Solution.js +63 -0
- package/src/utils/apiInstance.js +198 -0
- package/src/utils/config.js +18 -0
- package/src/utils/logger.js +122 -0
- package/src/utils/metadata.js +102 -0
- package/src/utils/miscHelper.js +24 -0
- package/src/utils/modelHelper.js +140 -0
- package/src/utils/properties.js +32 -0
- package/src/utils/responseHandler.js +28 -0
- package/src/utils/s3Client.js +128 -0
- package/src/utils/tags.js +32 -0
- package/src/utils/validator.js +73 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
class SupplierGroupModule {
|
|
4
|
+
/**
|
|
5
|
+
* Constructor.
|
|
6
|
+
* @param {class} parentModule Object of ZudelloV3 class.
|
|
7
|
+
*/
|
|
8
|
+
constructor (parentModule) {
|
|
9
|
+
this.module = parentModule
|
|
10
|
+
|
|
11
|
+
this.staticFields = {
|
|
12
|
+
model: 'SupplierGroup',
|
|
13
|
+
module: 'DIMENSIONS',
|
|
14
|
+
submodule: 'SUPPLIER_GROUP',
|
|
15
|
+
documentType: 'SUPPLIER_GROUP',
|
|
16
|
+
enrich: false,
|
|
17
|
+
extractedEvent: false,
|
|
18
|
+
update: true,
|
|
19
|
+
create: true
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async fetch ({ uuid, fetchDetails = true, simplified = true }) {
|
|
24
|
+
const validateIsEmpty = this.module.validator.isEmpty({ uuid })
|
|
25
|
+
|
|
26
|
+
if (!validateIsEmpty.valid) {
|
|
27
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return await this.module.fetch({
|
|
31
|
+
model: this.staticFields.model,
|
|
32
|
+
uuid,
|
|
33
|
+
fetchDetails,
|
|
34
|
+
simplified
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async updateOrCreate ({ data, clearNulls = true, simplified = false, submit = false, updateStatus = false }) {
|
|
39
|
+
const validateIsEmpty = this.module.validator.isEmpty({ data })
|
|
40
|
+
|
|
41
|
+
if (!validateIsEmpty.valid) {
|
|
42
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
this.module.logger.log(`[UPDATE OR CREATE]: ZudelloV3 [model - ${this.staticFields.model}]`)
|
|
46
|
+
this.module.logger.log('[PAGE DATA]:')
|
|
47
|
+
this.module.logger.log(data)
|
|
48
|
+
|
|
49
|
+
data = this.module.mapUpdateOrCreateData({
|
|
50
|
+
data,
|
|
51
|
+
staticFields: this.staticFields,
|
|
52
|
+
submit,
|
|
53
|
+
updateStatus
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
this.module.logger.log('[MAPPED PAGE DATA]:')
|
|
57
|
+
this.module.logger.log(data)
|
|
58
|
+
|
|
59
|
+
return await this.module.updateOrCreate({ data, clearNulls, simplified })
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
module.exports = SupplierGroupModule
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
class UniversalModule {
|
|
4
|
+
/**
|
|
5
|
+
* Constructor.
|
|
6
|
+
* @param {class} parentModule Object of Zudello class.
|
|
7
|
+
*/
|
|
8
|
+
constructor (parentModule) {
|
|
9
|
+
this.module = parentModule
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Universal Request By URL and Method.
|
|
14
|
+
* @param {string} url URL of request.
|
|
15
|
+
* @param {string} method Method of request.
|
|
16
|
+
* @param {object} qs Some available filters inside: offset, limit.
|
|
17
|
+
* @param {object} body Some available data inside.
|
|
18
|
+
* @returns {object} Universal Request Response.
|
|
19
|
+
*/
|
|
20
|
+
async request ({ url, method, qs = {}, body = {} }) {
|
|
21
|
+
const validateIsEmpty = this.module.validator.isEmpty({ url, method })
|
|
22
|
+
|
|
23
|
+
if (!validateIsEmpty.valid) {
|
|
24
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return await this.module.makeRequest(method, `${this.module.apiURL}/${url}`, body, qs)
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = UniversalModule
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
class UomModule {
|
|
4
|
+
/**
|
|
5
|
+
* Constructor.
|
|
6
|
+
* @param {class} parentModule Object of ZudelloV3 class.
|
|
7
|
+
*/
|
|
8
|
+
constructor (parentModule) {
|
|
9
|
+
this.module = parentModule
|
|
10
|
+
|
|
11
|
+
this.staticFields = {
|
|
12
|
+
model: 'UnitOfMeasure',
|
|
13
|
+
module: 'DIMENSIONS',
|
|
14
|
+
submodule: 'UNIT_OF_MEASURE',
|
|
15
|
+
documentType: 'UNIT_OF_MEASURE',
|
|
16
|
+
enrich: false,
|
|
17
|
+
extractedEvent: false,
|
|
18
|
+
update: true,
|
|
19
|
+
create: true
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async fetch ({ uuid, fetchDetails = true, simplified = true }) {
|
|
24
|
+
const validateIsEmpty = this.module.validator.isEmpty({ uuid })
|
|
25
|
+
|
|
26
|
+
if (!validateIsEmpty.valid) {
|
|
27
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return await this.module.fetch({
|
|
31
|
+
model: this.staticFields.model,
|
|
32
|
+
uuid,
|
|
33
|
+
fetchDetails,
|
|
34
|
+
simplified
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async updateOrCreate ({ data, clearNulls = true, simplified = false, submit = false, updateStatus = false }) {
|
|
39
|
+
const validateIsEmpty = this.module.validator.isEmpty({ data })
|
|
40
|
+
|
|
41
|
+
if (!validateIsEmpty.valid) {
|
|
42
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
this.module.logger.log(`[UPDATE OR CREATE]: ZudelloV3 [model - ${this.staticFields.model}]`)
|
|
46
|
+
this.module.logger.log('[PAGE DATA]:')
|
|
47
|
+
this.module.logger.log(data)
|
|
48
|
+
|
|
49
|
+
data = this.module.mapUpdateOrCreateData({
|
|
50
|
+
data,
|
|
51
|
+
staticFields: this.staticFields,
|
|
52
|
+
submit,
|
|
53
|
+
updateStatus
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
this.module.logger.log('[MAPPED PAGE DATA]:')
|
|
57
|
+
this.module.logger.log(data)
|
|
58
|
+
|
|
59
|
+
return await this.module.updateOrCreate({ data, clearNulls, simplified })
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
module.exports = UomModule
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
class WarehouseModule {
|
|
4
|
+
/**
|
|
5
|
+
* Constructor.
|
|
6
|
+
* @param {class} parentModule Object of ZudelloV3 class.
|
|
7
|
+
*/
|
|
8
|
+
constructor (parentModule) {
|
|
9
|
+
this.module = parentModule
|
|
10
|
+
|
|
11
|
+
this.staticFields = {
|
|
12
|
+
model: 'Warehouse',
|
|
13
|
+
module: 'DIMENSIONS',
|
|
14
|
+
submodule: 'WAREHOUSE',
|
|
15
|
+
documentType: 'WAREHOUSE',
|
|
16
|
+
enrich: false,
|
|
17
|
+
extractedEvent: false,
|
|
18
|
+
update: true,
|
|
19
|
+
create: true
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async fetch ({ uuid, fetchDetails = true, simplified = true }) {
|
|
24
|
+
const validateIsEmpty = this.module.validator.isEmpty({ uuid })
|
|
25
|
+
|
|
26
|
+
if (!validateIsEmpty.valid) {
|
|
27
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return await this.module.fetch({
|
|
31
|
+
model: this.staticFields.model,
|
|
32
|
+
uuid,
|
|
33
|
+
fetchDetails,
|
|
34
|
+
simplified
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async updateOrCreate ({ data, clearNulls = true, simplified = false, submit = false, updateStatus = false }) {
|
|
39
|
+
const validateIsEmpty = this.module.validator.isEmpty({ data })
|
|
40
|
+
|
|
41
|
+
if (!validateIsEmpty.valid) {
|
|
42
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
this.module.logger.log(`[UPDATE OR CREATE]: ZudelloV3 [model - ${this.staticFields.model}]`)
|
|
46
|
+
this.module.logger.log('[PAGE DATA]:')
|
|
47
|
+
this.module.logger.log(data)
|
|
48
|
+
|
|
49
|
+
data = this.module.mapUpdateOrCreateData({
|
|
50
|
+
data,
|
|
51
|
+
staticFields: this.staticFields,
|
|
52
|
+
submit,
|
|
53
|
+
updateStatus
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
this.module.logger.log('[MAPPED PAGE DATA]:')
|
|
57
|
+
this.module.logger.log(data)
|
|
58
|
+
|
|
59
|
+
return await this.module.updateOrCreate({ data, clearNulls, simplified })
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
module.exports = WarehouseModule
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
class ZoneModule {
|
|
4
|
+
/**
|
|
5
|
+
* Constructor.
|
|
6
|
+
* @param {class} parentModule Object of ZudelloV3 class.
|
|
7
|
+
*/
|
|
8
|
+
constructor (parentModule) {
|
|
9
|
+
this.module = parentModule
|
|
10
|
+
|
|
11
|
+
this.staticFields = {
|
|
12
|
+
model: 'Zone',
|
|
13
|
+
module: 'DIMENSIONS',
|
|
14
|
+
submodule: 'ZONE',
|
|
15
|
+
documentType: 'ZONE',
|
|
16
|
+
enrich: false,
|
|
17
|
+
extractedEvent: false,
|
|
18
|
+
update: true,
|
|
19
|
+
create: true
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async fetch ({ uuid, fetchDetails = true, simplified = true }) {
|
|
24
|
+
const validateIsEmpty = this.module.validator.isEmpty({ uuid })
|
|
25
|
+
|
|
26
|
+
if (!validateIsEmpty.valid) {
|
|
27
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return await this.module.fetch({
|
|
31
|
+
model: this.staticFields.model,
|
|
32
|
+
uuid,
|
|
33
|
+
fetchDetails,
|
|
34
|
+
simplified
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async updateOrCreate ({ data, clearNulls = true, simplified = false, submit = false, updateStatus = false }) {
|
|
39
|
+
const validateIsEmpty = this.module.validator.isEmpty({ data })
|
|
40
|
+
|
|
41
|
+
if (!validateIsEmpty.valid) {
|
|
42
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
this.module.logger.log(`[UPDATE OR CREATE]: ZudelloV3 [model - ${this.staticFields.model}]`)
|
|
46
|
+
this.module.logger.log('[PAGE DATA]:')
|
|
47
|
+
this.module.logger.log(data)
|
|
48
|
+
|
|
49
|
+
data = this.module.mapUpdateOrCreateData({
|
|
50
|
+
data,
|
|
51
|
+
staticFields: this.staticFields,
|
|
52
|
+
submit,
|
|
53
|
+
updateStatus
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
this.module.logger.log('[MAPPED PAGE DATA]:')
|
|
57
|
+
this.module.logger.log(data)
|
|
58
|
+
|
|
59
|
+
return await this.module.updateOrCreate({ data, clearNulls, simplified })
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
module.exports = ZoneModule
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
class TaxRateModule {
|
|
4
|
+
/**
|
|
5
|
+
* Constructor.
|
|
6
|
+
* @param {class} parentModule Object of ZudelloV3 class.
|
|
7
|
+
*/
|
|
8
|
+
constructor (parentModule) {
|
|
9
|
+
this.module = parentModule
|
|
10
|
+
|
|
11
|
+
this.staticFields = {
|
|
12
|
+
model: 'TaxRate',
|
|
13
|
+
module: 'DIMENSIONS',
|
|
14
|
+
submodule: 'TAX_RATE',
|
|
15
|
+
documentType: 'TAX_RATE',
|
|
16
|
+
enrich: false,
|
|
17
|
+
extractedEvent: false,
|
|
18
|
+
update: true,
|
|
19
|
+
create: true
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async fetch ({ uuid, fetchDetails = true, simplified = true }) {
|
|
24
|
+
const validateIsEmpty = this.module.validator.isEmpty({ uuid })
|
|
25
|
+
|
|
26
|
+
if (!validateIsEmpty.valid) {
|
|
27
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return await this.module.fetch({
|
|
31
|
+
model: this.staticFields.model,
|
|
32
|
+
uuid,
|
|
33
|
+
fetchDetails,
|
|
34
|
+
simplified
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async updateOrCreate ({ data, clearNulls = true, simplified = false, submit = false, updateStatus = false }) {
|
|
39
|
+
const validateIsEmpty = this.module.validator.isEmpty({ data })
|
|
40
|
+
|
|
41
|
+
if (!validateIsEmpty.valid) {
|
|
42
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
this.module.logger.log(`[UPDATE OR CREATE]: ZudelloV3 [model - ${this.staticFields.model}]`)
|
|
46
|
+
this.module.logger.log('[PAGE DATA]:')
|
|
47
|
+
this.module.logger.log(data)
|
|
48
|
+
|
|
49
|
+
data = this.module.mapUpdateOrCreateData({
|
|
50
|
+
data,
|
|
51
|
+
staticFields: this.staticFields,
|
|
52
|
+
submit,
|
|
53
|
+
updateStatus
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
this.module.logger.log('[MAPPED PAGE DATA]:')
|
|
57
|
+
this.module.logger.log(data)
|
|
58
|
+
|
|
59
|
+
return await this.module.updateOrCreate({ data, clearNulls, simplified })
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
module.exports = TaxRateModule
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
class TaxSolutionModule {
|
|
4
|
+
/**
|
|
5
|
+
* Constructor.
|
|
6
|
+
* @param {class} parentModule Object of ZudelloV3 class.
|
|
7
|
+
*/
|
|
8
|
+
constructor (parentModule) {
|
|
9
|
+
this.module = parentModule
|
|
10
|
+
|
|
11
|
+
this.staticFields = {
|
|
12
|
+
model: 'TaxSolution',
|
|
13
|
+
module: 'DIMENSIONS',
|
|
14
|
+
submodule: 'TAX_SOLUTION',
|
|
15
|
+
documentType: 'TAX_SOLUTION',
|
|
16
|
+
enrich: false,
|
|
17
|
+
extractedEvent: false,
|
|
18
|
+
update: true,
|
|
19
|
+
create: true
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async fetch ({ uuid, fetchDetails = true, simplified = true }) {
|
|
24
|
+
const validateIsEmpty = this.module.validator.isEmpty({ uuid })
|
|
25
|
+
|
|
26
|
+
if (!validateIsEmpty.valid) {
|
|
27
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return await this.module.fetch({
|
|
31
|
+
model: this.staticFields.model,
|
|
32
|
+
uuid,
|
|
33
|
+
fetchDetails,
|
|
34
|
+
simplified
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async updateOrCreate ({ data, clearNulls = true, simplified = false, submit = false, updateStatus = false }) {
|
|
39
|
+
const validateIsEmpty = this.module.validator.isEmpty({ data })
|
|
40
|
+
|
|
41
|
+
if (!validateIsEmpty.valid) {
|
|
42
|
+
return this.module.responseHandler.error(validateIsEmpty.errors)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
this.module.logger.log(`[UPDATE OR CREATE]: ZudelloV3 [model - ${this.staticFields.model}]`)
|
|
46
|
+
this.module.logger.log('[PAGE DATA]:')
|
|
47
|
+
this.module.logger.log(data)
|
|
48
|
+
|
|
49
|
+
data = this.module.mapUpdateOrCreateData({
|
|
50
|
+
data,
|
|
51
|
+
staticFields: this.staticFields,
|
|
52
|
+
submit,
|
|
53
|
+
updateStatus
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
this.module.logger.log('[MAPPED PAGE DATA]:')
|
|
57
|
+
this.module.logger.log(data)
|
|
58
|
+
|
|
59
|
+
return await this.module.updateOrCreate({ data, clearNulls, simplified })
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
module.exports = TaxSolutionModule
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const axios = require('axios')
|
|
4
|
+
const ResponseHandler = require('./responseHandler')
|
|
5
|
+
|
|
6
|
+
class ApiInstance {
|
|
7
|
+
/**
|
|
8
|
+
* Constructor.
|
|
9
|
+
*/
|
|
10
|
+
constructor () {
|
|
11
|
+
this.bearerToken = null
|
|
12
|
+
|
|
13
|
+
this.responseHandler = new ResponseHandler()
|
|
14
|
+
|
|
15
|
+
this.axiosInstance = axios.create()
|
|
16
|
+
this.axiosInstance.interceptors.request.use((config) => {
|
|
17
|
+
if (this.bearerToken) {
|
|
18
|
+
config.headers.Authorization = `Bearer ${this.bearerToken}`
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return config
|
|
22
|
+
}, (error) => {
|
|
23
|
+
return Promise.reject(error)
|
|
24
|
+
})
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Setter function for bearer token.
|
|
29
|
+
* @param {string} bearerToken Bearer Auth Token.
|
|
30
|
+
*/
|
|
31
|
+
setBearerToken (bearerToken) {
|
|
32
|
+
this.bearerToken = bearerToken
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Send axios request (method: GET).
|
|
37
|
+
* @param {string} url Request URL.
|
|
38
|
+
* @param {object} params GET Params.
|
|
39
|
+
* @param {object} headers Request Headers.
|
|
40
|
+
* @returns {object} Response Data.
|
|
41
|
+
*/
|
|
42
|
+
async get (url, params, headers, returnHeaders = false, callback = () => {}) {
|
|
43
|
+
try {
|
|
44
|
+
const requestBody = { params, headers }
|
|
45
|
+
|
|
46
|
+
if (returnHeaders) {
|
|
47
|
+
requestBody.maxRedirects = 0
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const response = await this.axiosInstance.get(url, requestBody)
|
|
51
|
+
|
|
52
|
+
callback({
|
|
53
|
+
status: 200,
|
|
54
|
+
response: returnHeaders ? response.headers : response.data,
|
|
55
|
+
params,
|
|
56
|
+
headers
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
return returnHeaders
|
|
60
|
+
? this.responseHandler.success(response.headers || null)
|
|
61
|
+
: this.responseHandler.success(response.data || null)
|
|
62
|
+
} catch (error) {
|
|
63
|
+
callback({
|
|
64
|
+
status: error?.response?.status,
|
|
65
|
+
response: error?.response?.data,
|
|
66
|
+
params,
|
|
67
|
+
headers
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
if (error?.response?.status === 302) {
|
|
71
|
+
return this.responseHandler.success(error?.response?.headers?.location)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (error?.response?.status === 500) {
|
|
75
|
+
return this.responseHandler.error(['Something went wrong.'])
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (error?.response?.data?.error?.message?.message) {
|
|
79
|
+
return this.responseHandler.error([error?.response?.data?.error?.message?.message])
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (error?.response?.data?.error?.message) {
|
|
83
|
+
return this.responseHandler.error([error?.response?.data?.error?.message])
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Send axios request (method: POST).
|
|
90
|
+
* @param {string} url Request URL.
|
|
91
|
+
* @param {object} data POST Data.
|
|
92
|
+
* @param {object} headers Request Headers.
|
|
93
|
+
* @param {object} params Request Params.
|
|
94
|
+
* @returns {object} Response Data.
|
|
95
|
+
*/
|
|
96
|
+
async post (url, data, headers, params = {}, callback = () => {}) {
|
|
97
|
+
try {
|
|
98
|
+
const response = await this.axiosInstance.post(url, data, { headers, params })
|
|
99
|
+
|
|
100
|
+
callback({
|
|
101
|
+
status: 200,
|
|
102
|
+
response: response.data,
|
|
103
|
+
params,
|
|
104
|
+
headers,
|
|
105
|
+
body: data
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
if (Object.prototype.hasOwnProperty.call(params, '_debug') && params._debug) {
|
|
109
|
+
return this.responseHandler.success(response?.data?._resp?.body || null)
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return this.responseHandler.success(response.data || null)
|
|
113
|
+
} catch (error) {
|
|
114
|
+
callback({
|
|
115
|
+
status: error?.response?.status,
|
|
116
|
+
response: error?.response?.data,
|
|
117
|
+
params,
|
|
118
|
+
headers,
|
|
119
|
+
body: data
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
if (error?.response?.status === 500) {
|
|
123
|
+
return this.responseHandler.error(['Something went wrong.'])
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (error?.response?.data) {
|
|
127
|
+
return this.responseHandler.error([error?.response?.data])
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Send axios request (method: PUT).
|
|
134
|
+
* @param {string} url Request URL.
|
|
135
|
+
* @param {object} data PUT Data.
|
|
136
|
+
* @returns {object} Response Data.
|
|
137
|
+
*/
|
|
138
|
+
async put (url, data, headers, params = {}, callback = () => {}) {
|
|
139
|
+
try {
|
|
140
|
+
const response = await this.axiosInstance.put(url, data, { headers, params })
|
|
141
|
+
|
|
142
|
+
callback({
|
|
143
|
+
status: 200,
|
|
144
|
+
response: response.data,
|
|
145
|
+
params,
|
|
146
|
+
headers,
|
|
147
|
+
body: data
|
|
148
|
+
})
|
|
149
|
+
|
|
150
|
+
return this.responseHandler.success(response.data || null)
|
|
151
|
+
} catch (error) {
|
|
152
|
+
callback({
|
|
153
|
+
status: error?.response?.status,
|
|
154
|
+
response: error?.response?.data,
|
|
155
|
+
params,
|
|
156
|
+
headers,
|
|
157
|
+
body: data
|
|
158
|
+
})
|
|
159
|
+
|
|
160
|
+
if (error?.response?.data) {
|
|
161
|
+
return this.responseHandler.error([error?.response?.data])
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return this.responseHandler.error(['Something went wrong.'])
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Send axios request (method: DELETE).
|
|
170
|
+
* @param {string} url Request URL.
|
|
171
|
+
* @returns {object} Response Data.
|
|
172
|
+
*/
|
|
173
|
+
async delete (url, callback = () => {}) {
|
|
174
|
+
try {
|
|
175
|
+
const response = await this.axiosInstance.delete(url)
|
|
176
|
+
|
|
177
|
+
callback({
|
|
178
|
+
status: 200,
|
|
179
|
+
response: response.data
|
|
180
|
+
})
|
|
181
|
+
|
|
182
|
+
return response.data
|
|
183
|
+
} catch (error) {
|
|
184
|
+
callback({
|
|
185
|
+
status: error?.response?.status,
|
|
186
|
+
response: error?.response?.data
|
|
187
|
+
})
|
|
188
|
+
|
|
189
|
+
if (error?.response?.data) {
|
|
190
|
+
return this.responseHandler.error([error?.response?.data])
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return this.responseHandler.error(['Something went wrong.'])
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
module.exports = ApiInstance
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
appUUIDs: {
|
|
5
|
+
zudello: 'c698c4a5-ee07-44cb-a0e0-a3a1d0e683ec',
|
|
6
|
+
netsuite: '010d0262-fa01-43eb-9e35-1b49e131c1ba',
|
|
7
|
+
intacct: 'a8bbbc60-2409-49e8-adfb-72fc79658dd6',
|
|
8
|
+
bc: 'ee6f62f5-9dda-48aa-bb8d-44c8b8455472',
|
|
9
|
+
zenoti: '967a0844-6a9d-4979-a298-427259eafad8',
|
|
10
|
+
dear: '0e456359-fe0d-4b01-9662-08bba1bdce63',
|
|
11
|
+
nexvia: '5f693545-3be0-4798-bb3b-3af0b7ee2e96',
|
|
12
|
+
fo: '524e1173-6d73-42ea-9d9c-0c728c6f24ea',
|
|
13
|
+
retailExpress: '49584664-65a5-4b76-ba62-a73f7b7b3885',
|
|
14
|
+
myobAcumatica: '8fd5015c-a200-4675-9e03-2047807c5693',
|
|
15
|
+
sybiz: 'ead57add-301e-4b29-881b-1bc331c101a5',
|
|
16
|
+
jobready: '14d16371-3e56-40c8-9efa-8578a8f334fc'
|
|
17
|
+
}
|
|
18
|
+
}
|