UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

56 lines (47 loc) 1.73 kB
// 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);