183 lines
5.2 KiB
JavaScript
183 lines
5.2 KiB
JavaScript
const axios = require('axios')
|
|
|
|
/// /////////////////////////////////////////////////////////////////////////////////////////////////// verity WebService
|
|
const {
|
|
// verity
|
|
verityBaseUrl,
|
|
verityTokenUrl,
|
|
// VerityUserGroupId,
|
|
VerityBusinessCategoryId,
|
|
// VerityStockAreaId,
|
|
verityAccount,
|
|
|
|
// panatech
|
|
panatechBaseUrl,
|
|
panatechTokenUrl,
|
|
// PanatechUserGroupId,
|
|
PanatechBusinessCategoryId,
|
|
// PanatechStockAreaId,
|
|
panatechAccount
|
|
} = require('./_env')
|
|
|
|
// get verity token
|
|
let verityToken = ''
|
|
module.exports.getVerityToken = async () => {
|
|
try {
|
|
const getToken = await axios.get(verityTokenUrl, { params: verityAccount })
|
|
verityToken = getToken.data
|
|
console.log(verityToken)
|
|
} catch (err) {
|
|
console.log(err)
|
|
}
|
|
}
|
|
|
|
const verityAxiosConfig = () => {
|
|
return {
|
|
baseURL: verityBaseUrl,
|
|
headers: {
|
|
Authorization: `Bearer ${verityToken}`
|
|
}
|
|
}
|
|
}
|
|
|
|
// export verity values
|
|
module.exports.verityAxiosConfig = verityAxiosConfig
|
|
|
|
/// /////////////////////////////////////////////////////////////////////////////////////////////////// panatech WebService
|
|
|
|
// get panatech token
|
|
let panatechToken = ''
|
|
module.exports.getPanatechToken = async () => {
|
|
try {
|
|
const getToken = await axios.get(panatechTokenUrl, { params: panatechAccount })
|
|
panatechToken = getToken.data
|
|
console.log(panatechToken)
|
|
} catch (err) {
|
|
console.log(err)
|
|
}
|
|
}
|
|
|
|
const panatechAxiosConfig = () => {
|
|
return {
|
|
baseURL: panatechBaseUrl,
|
|
headers: {
|
|
Authorization: `Bearer ${panatechToken}`
|
|
}
|
|
}
|
|
}
|
|
|
|
// export panatech values
|
|
module.exports.panatechAxiosConfig = panatechAxiosConfig
|
|
|
|
/// /////////////////////////////////////////////////////////////////////////////////////////////////// methods
|
|
function axiosConfig(db) {
|
|
if (db === 'verity') return verityAxiosConfig()
|
|
else if (db === 'panatech') return panatechAxiosConfig()
|
|
else return {}
|
|
}
|
|
|
|
function BusinessCategoryId(db) {
|
|
if (db === 'panatech') return PanatechBusinessCategoryId
|
|
else if (db === 'verity') return VerityBusinessCategoryId
|
|
else return null
|
|
}
|
|
|
|
module.exports.saveTransactionToArpa = (data, items, db) => {
|
|
// add static values to data
|
|
data.TransactionID = 'null'
|
|
data.BusinessCode = 'null'
|
|
data.DocAliasID = 144
|
|
data.TrMessage = ''
|
|
|
|
const ArpaData = {
|
|
Data: data,
|
|
Items: items
|
|
}
|
|
|
|
// @example
|
|
// const arpaExample = {
|
|
// "Data": {"TransactionID": null, "BusinessID": 3, "DocAliasId": 144, "Description": "تست", "cAddress1": "تهران", "cTel1": "0218884455", "TransCCustom1": "آقای موسوی"},
|
|
// "Items": [{"TransLineID": null, "itemId": 5302, "MjQty": 20, "StockAreaId": 1}, {"TransLineID": null, "itemId": 5302, "MjQty": 20, "StockAreaId": 1}]
|
|
// }
|
|
|
|
return new Promise(async (resolve, reject) => {
|
|
try {
|
|
const transaction = await axios.post('/api/NewTransaction', ArpaData, axiosConfig(db))
|
|
const ArpaResponse = transaction.data
|
|
|
|
if (ArpaResponse.data) resolve(ArpaResponse.data[0].TransNumber)
|
|
else reject(ArpaResponse.error || 'ARPA WebService Error')
|
|
} catch (e) {
|
|
reject(e)
|
|
}
|
|
})
|
|
}
|
|
|
|
module.exports.saveUserToArpa = (userData, db) => {
|
|
const data = {
|
|
BusName: userData.first_name + ' ' + userData.last_name + ' (گارانتی سایت) ',
|
|
Email: userData.email,
|
|
PhoneNo: userData.tel_number,
|
|
Mobile: userData.mobile_number,
|
|
Name: userData.first_name,
|
|
Family: userData.last_name,
|
|
NationalCode: userData.national_code,
|
|
ProvinceId: userData.province_id,
|
|
CityId: userData.city_id,
|
|
Address: userData.address,
|
|
PostalCode: userData.postal_code,
|
|
BusinessCategoryId: BusinessCategoryId(db),
|
|
CheckExistNationalCode: true
|
|
}
|
|
console.log(data)
|
|
return new Promise(async (resolve, reject) => {
|
|
try {
|
|
const ArpaID = await axios.get('/api/postBusiness', { ...axiosConfig(db), params: { ...data } })
|
|
console.log(ArpaID)
|
|
if (!ArpaID.data.data) return reject(new Error('Cant save new user -- There is a problem in ArpaWebService'))
|
|
|
|
resolve({
|
|
businessID: ArpaID.data.data.BusinessId,
|
|
businessCode: ArpaID.data.data.BusinessCode
|
|
})
|
|
} catch (e) {
|
|
// console.log(e)
|
|
|
|
reject(e)
|
|
}
|
|
})
|
|
}
|
|
|
|
module.exports.updateUserOnArpa = (userData, arpa_businessID, db) => {
|
|
const data = {
|
|
BusName: userData.first_name + ' ' + userData.last_name + ' (گارانتی سایت) ',
|
|
Email: userData.email,
|
|
PhoneNo: userData.tel_number,
|
|
Mobile: userData.mobile_number,
|
|
Name: userData.first_name,
|
|
Family: userData.last_name,
|
|
NationalCode: userData.national_code,
|
|
ProvinceId: userData.province_id,
|
|
CityId: userData.city_id,
|
|
Address: userData.address,
|
|
PostalCode: userData.postal_code,
|
|
BusinessCategoryId: BusinessCategoryId(db),
|
|
BusinessID: arpa_businessID,
|
|
CheckExistNationalCode: true
|
|
}
|
|
console.log(data)
|
|
return new Promise(async (resolve, reject) => {
|
|
try {
|
|
const ArpaUpdate = await axios.post('/api/putBusiness', data, axiosConfig(db))
|
|
console.log(ArpaUpdate)
|
|
|
|
if (!ArpaUpdate.data.status) reject(new Error('Cant update user -- There is a problem in ArpaWebService'))
|
|
resolve('updated successfully')
|
|
} catch (e) {
|
|
console.log(e)
|
|
|
|
reject(e)
|
|
}
|
|
})
|
|
}
|