feat(task): wrote a task to fill in missing channel names #379
1 changed files with 57 additions and 0 deletions
57
task-scripts/update-channel-names.js
Normal file
57
task-scripts/update-channel-names.js
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
// load dependencies
|
||||||
|
const logger = require('winston');
|
||||||
|
const db = require('../models'); // require our models for syncing
|
||||||
|
// configure logging
|
||||||
|
const config = require('../config/speechConfig.js');
|
||||||
|
const { logLevel } = config.logging;
|
||||||
|
require('../config/loggerConfig.js')(logger, logLevel);
|
||||||
|
|
||||||
|
let totalClaims = 0;
|
||||||
|
let totalClaimsNoCertificate = 0;
|
||||||
|
|
||||||
|
db.sequelize.sync() // sync sequelize
|
||||||
|
.then(() => {
|
||||||
|
logger.info('finding claims with no channels');
|
||||||
|
return db.Claim.findAll({
|
||||||
|
where: {
|
||||||
|
channelName : null,
|
||||||
|
certificateId: {
|
||||||
|
$ne: null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.then(claimsArray => {
|
||||||
|
totalClaims = claimsArray.length;
|
||||||
|
const claimsUpdatePromises = claimsArray.map(claim => {
|
||||||
|
return db.Certificate
|
||||||
|
.findOne({
|
||||||
|
where: { claimId: claim.get('certificateId') },
|
||||||
|
})
|
||||||
|
.then(certificate => {
|
||||||
|
// if a certificate is found...
|
||||||
|
if (certificate) {
|
||||||
|
logger.debug('certificate found');
|
||||||
|
// update the claim's channel name with the certificate's name
|
||||||
|
return claim
|
||||||
|
.update({
|
||||||
|
channelName: certificate.get('name'),
|
||||||
|
})
|
||||||
|
.then(() => {})
|
||||||
|
.catch(error => logger.error(error));
|
||||||
|
}
|
||||||
|
logger.warn('no record found for certificate: ', claim.get('certificateId'));
|
||||||
|
totalClaimsNoCertificate += 1;
|
||||||
|
})
|
||||||
|
.catch(error => logger.error(error));
|
||||||
|
});
|
||||||
|
return Promise.all(claimsUpdatePromises);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
logger.info('total claims found', totalClaims);
|
||||||
|
logger.info('total claims found with no matching certificate record', totalClaimsNoCertificate);
|
||||||
|
logger.debug('all done');
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
logger.error(error);
|
||||||
|
});
|
Loading…
Reference in a new issue