@wmfs/tymly-pg-plugin
Version:
Replace Tymly's out-the-box memory storage with PostgreSQL
54 lines (49 loc) • 1.66 kB
JavaScript
/**
* Created by Aron.Moore on 12/07/2017.
*/
'use strict'
const generateDelta = require('@wmfs/pg-delta-file')
const getFunction = require('@wmfs/tymly/lib/getFunction.js')
function loadFunction (env, name) {
return name
? getFunction(env, name)
: null
} // loadFunction
class ExportingCsvDeltaFile {
init (resourceConfig, env, callback) {
this.client = env.bootedServices.storage.client
this.actionAliases = resourceConfig.actionAliases
this.createdColumnName = resourceConfig.createdColumnName || '_created'
this.modifiedColumnName = resourceConfig.modifiedColumnName || '_modified'
this.csvExtracts = resourceConfig.csvExtracts
this.transformFunction = loadFunction(env, resourceConfig.transformerFunctionName)
this.filterFunction = loadFunction(env, resourceConfig.filterFunctionName)
callback(null)
}
run (event, context) {
generateDelta(
{
namespace: context.stateMachineMeta.namespace,
client: this.client,
since: event.lastExportDate,
outputFilepath: event.outputFilepath,
actionAliases: this.actionAliases,
transformFunction: this.transformFunction,
filterFunction: this.filterFunction,
createdColumnName: this.createdColumnName,
modifiedColumnName: this.modifiedColumnName,
csvExtracts: this.csvExtracts
}
)
.then(info => {
context.sendTaskSuccess({ outputRowCount: info.totalCount })
})
.catch(err => {
context.sendTaskFailure({
error: 'generateDeltaFail',
cause: err
})
})
} // run
}
module.exports = ExportingCsvDeltaFile