@defra/wls-refdata-extract-processor
Version:
Interface to Microsoft Dynamics. Extract processor for reference data.
59 lines (54 loc) • 2.71 kB
JavaScript
import { ERRBIT, SEQUELIZE } from '@defra/wls-connectors-lib'
import { createModels } from '@defra/wls-database-model'
import {
applicationTypesReadStream,
applicationPurposesReadStream,
activitiesReadStream,
methodsReadStream,
speciesReadStream,
speciesSubjectReadStream,
globalOptionSetReadStream,
activityMethodsReadStream,
applicationTypeActivitiesReadStream,
applicationTypeSpeciesReadStream,
applicationTypeApplicationPurposesReadStream,
authoritiesReadStream,
designatedSitesReadStream
} from '@defra/wls-powerapps-lib'
import { databaseWriter } from './database-writer.js'
import {
writeApplicationTypes, writeApplicationPurposes,
writeActivities, writeMethods, writeSpecies, writeSpeciesSubject, writeActivityMethods,
writeApplicationTypeActivities, writeApplicationTypeSpecies,
writeApplicationApplicationPurpose, writeOptionSets,
writeAuthorities, writeDesignatedSites
} from './write-object.js'
import fs from 'fs'
const extracts = async () => {
await databaseWriter(applicationTypesReadStream(), writeApplicationTypes, 'Application Types')
await databaseWriter(applicationPurposesReadStream(), writeApplicationPurposes, 'Application Purposes')
await databaseWriter(activitiesReadStream(), writeActivities, 'Activities')
await databaseWriter(methodsReadStream(), writeMethods, 'Methods')
await databaseWriter(speciesSubjectReadStream(), writeSpeciesSubject, 'Species-Subject')
await databaseWriter(speciesReadStream(), writeSpecies, 'Species') // Has FK to species subject
await databaseWriter(activityMethodsReadStream(), writeActivityMethods, 'Activity-Methods')
await databaseWriter(applicationTypeActivitiesReadStream(), writeApplicationTypeActivities, 'Application type Activities')
await databaseWriter(applicationTypeSpeciesReadStream(), writeApplicationTypeSpecies, 'Application type Species')
await databaseWriter(applicationTypeApplicationPurposesReadStream(), writeApplicationApplicationPurpose, 'Application type Application Purposes')
await databaseWriter(authoritiesReadStream(), writeAuthorities, 'Authorities')
await databaseWriter(globalOptionSetReadStream(), writeOptionSets, 'Option sets')
await databaseWriter(designatedSitesReadStream(), writeDesignatedSites, 'Designated sites')
}
const json = JSON.parse(fs.readFileSync('./package.json', 'utf8'))
console.log(`Starting ${json.name}:${json.version}`)
ERRBIT.initialize('Reference data extract processor')
SEQUELIZE.initialiseConnection()
.then(() => createModels()
.then(() => extracts().then(() => {
console.log('Reference data extracts completed')
process.exit(0)
})))
.catch(e => {
console.error(e)
process.exit(1)
})