// tslint:disable:no-console // import * as moment from 'moment'; import * as mongoose from 'mongoose'; import { chevre } from '../../../lib/index'; const project = { typeOf: chevre.factory.organizationType.Project, id: String(process.env.PROJECT_ID) }; async function main() { await mongoose.connect(process.env.MONGOLAB_URI); const eventRepo = new chevre.repository.Event(mongoose.connection); const taskRepo = new chevre.repository.Task(mongoose.connection); const now = new Date(); const events = await eventRepo.search({ typeOf: chevre.factory.eventType.ScreeningEvent, project: { id: { $eq: project.id } }, startFrom: now // startFrom: moment().add(-1, 'day').toDate(), // startThrough: moment().add(1, 'day').toDate(), // startThrough: now }); // console.log(events); console.log(events.length); // return; const tasks = []; for (const event of events) { const aggregateTask: chevre.factory.task.aggregateScreeningEvent.IAttributes = { name: chevre.factory.taskName.AggregateScreeningEvent, project: { typeOf: chevre.factory.organizationType.Project, id: project.id }, status: chevre.factory.taskStatus.Ready, runsAt: new Date(), remainingNumberOfTries: 1, numberOfTried: 0, executionResults: [], data: { typeOf: event.typeOf, id: event.id } }; tasks.push(aggregateTask); console.log('task created', event.id); } console.log('creating...', tasks.length, 'tasks'); const result = await taskRepo.taskModel.insertMany(tasks, { ordered: false, rawResult: true }); console.log('result:', { ...result, ops: undefined, insertedIds: undefined }); } main() .then(() => { console.log('success!'); }) .catch(console.error);