@chevre/domain
Version:
Chevre Domain Library for Node.js
62 lines (51 loc) • 1.7 kB
text/typescript
// tslint:disable:no-console
import * as mongoose from 'mongoose';
import { chevre } from '../../../../lib/index';
const NEW_IDENTIFIER = 'DefaultTokenIssuer';
// tslint:disable-next-line:max-func-body-length
async function main() {
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
const issuerRepo = await chevre.repository.Issuer.createInstance(mongoose.connection);
const cursor = issuerRepo.getCursor(
{
// 'project.id': { $ne: EXCLUDED_PROJECT_ID }
},
{
_id: 1,
project: 1,
identifier: 1,
url: 1,
name: 1
}
);
console.log('docs found');
let i = 0;
let updateCount = 0;
await cursor.eachAsync(async (doc) => {
i += 1;
const issuer: chevre.factory.issuer.IIssuer = doc.toObject();
const alreadyMigrated = issuer.identifier === NEW_IDENTIFIER;
if (alreadyMigrated) {
console.log(
'already migrated.',
issuer.id, issuer.project.id, issuer.identifier, i);
} else {
console.log(
'updating...',
issuer.id, issuer.project.id, issuer.identifier, i);
await issuerRepo.renameIssuerIdentifier({
id: issuer.id,
identifier: NEW_IDENTIFIER
});
updateCount += 1;
console.log(
'updated.',
issuer.id, issuer.project.id, issuer.identifier, i);
}
});
console.log(i, 'docs checked');
console.log(updateCount, 'docs updated');
}
main()
.then()
.catch(console.error);