2018-03-07 22:45:51 +01:00
|
|
|
// load dependencies
|
|
|
|
const logger = require('winston');
|
|
|
|
const db = require('../models'); // require our models for syncing
|
|
|
|
// configure logging
|
2018-03-09 20:20:13 +01:00
|
|
|
require('../helpers/configureLogger.js')(logger);
|
2018-03-07 22:45:51 +01:00
|
|
|
|
|
|
|
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);
|
|
|
|
});
|