apc-domain
Version:
APC Domain Information Package
53 lines (44 loc) • 2.05 kB
JavaScript
(async () => {
require('dotenv').config()
const chalk = require('chalk');
try {
const bookshelf = require('./bsIgnition')
const Services = require('./Models/service')
const ServiceHeaders = require('./Models/serviceheader')
const ServiceHelper = require('./Services.js')
//enrich Models...
const services = bookshelf.Model.extend(Services)
const ServHeader = bookshelf.Model.extend(ServiceHeaders)
const AllResults = await services.query(qb => {
qb.select('description','ServiceCode','ServTime','Weekday','Saturday','Sunday')
.innerJoin('serviceheader', 'ServiceDetail.ServiceKey', 'serviceheader.ServiceKey')
.where('ServiceDetail.Active', 1)
//.toString()
}).fetchAll()
const jsonServices = AllResults.toJSON()
jsonServices.forEach((service) => {
// Calculate additional properties for the service here (that are not defined in continuus)
let additionalServiceProperties = ServiceHelper.SetAdditionalPropertiesForServiceCode(
service.ServiceCode
)
// Set the properties before saving
service.MinDays = additionalServiceProperties.MinDays
service.MaxDays = additionalServiceProperties.MaxDays
service.LatestTime = additionalServiceProperties.LatestTime
service.Window = additionalServiceProperties.Window
})
const json = JSON.stringify(jsonServices);
const fs = require('fs');
console.log(chalk.blue('💾 Saving Services List'))
await fs.writeFile('servicesList.json', json, 'utf8',(err) => {
if (err){
console.log(' ERROR: ' + err)
}
});
console.log(chalk.blue('✔ complete'))
bookshelf.knex.destroy()
} catch (error) {
console.log(chalk.red.bold('🐞 Error Downloading APC Depot List'));
console.log(chalk.red(error.message))
}
})()