@chevre/domain
Version:
Chevre Domain Library for Node.js
56 lines (47 loc) • 1.73 kB
text/typescript
// tslint:disable:no-console
import * as mongoose from 'mongoose';
import { chevre } from '../../../../lib/index';
const project = { id: String(process.env.PROJECT_ID) };
const IDENTIFIER = 'DefaultMemberProgram';
async function main() {
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
const memberProgramRepo = await chevre.repository.MemberProgram.createInstance(mongoose.connection);
const memberPrograms = await memberProgramRepo.projectMemberPrograms(
{
project: { id: { $eq: project.id } },
identifier: { $eq: IDENTIFIER }
}
);
console.log('docs:', memberPrograms);
console.log(memberPrograms.length, 'docs found');
if (memberPrograms.length > 0) {
const memberProgram = memberPrograms[0];
await memberProgramRepo.updateOne({
project: { id: project.id },
identifier: memberProgram.identifier,
hostingOrganization: { id: 'xxx' },
hasTiers: [
{ identifier: 'bronze' },
{ identifier: 'silver' },
{ identifier: 'gold' }
]
});
console.log('updated.');
const tiers = await memberProgramRepo.projectMemberProgramTiers(
{
limit: 10,
page: 1,
project: { id: { $eq: project.id } },
isTierOf: {
identifier: { $eq: memberProgram.identifier }
}
}
);
// tslint:disable-next-line:no-null-keyword
console.dir(tiers, { depth: null });
console.log(tiers.length, 'tiers found');
}
}
main()
.then()
.catch(console.error);