UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

72 lines (62 loc) 2.85 kB
// 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(<string>process.env.MONGOLAB_URI); const eventRepo = await chevre.repository.Event.createInstance(mongoose.connection); const taskRepo = await chevre.repository.Task.createInstance(mongoose.connection); const events = <Pick< chevre.factory.event.IEvent<chevre.factory.eventType.ScreeningEvent>, 'id' | 'typeOf' | 'startDate' | 'project' >[]>await eventRepo.projectEventFields<chevre.factory.eventType.ScreeningEvent>( { typeOf: chevre.factory.eventType.ScreeningEvent, project: { id: { $eq: PROJECT.id } }, startFrom: moment() .add(-1, 'days') .toDate() // startFrom: moment().add(-1, 'day').toDate(), // startThrough: moment().add(1, 'day').toDate(), // startThrough: now }, ['typeOf', 'startDate', 'project'] ); // console.log(events); console.log(events.length); // return; const tasks: chevre.factory.task.aggregateScreeningEvent.IAttributes[] = []; for (const { id, typeOf, startDate, project } 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, id } }; // const aggregateUseActionsTask: chevre.factory.task.aggregateUseActionsOnEvent.IAttributes = { // name: chevre.factory.taskName.AggregateUseActionsOnEvent, // project: { typeOf: chevre.factory.organizationType.Project, id: project.id }, // status: chevre.factory.taskStatus.Ready, // runsAt: new Date(), // remainingNumberOfTries: 1, // numberOfTried: 0, // executionResults: [], // data: { typeOf, id } // }; tasks.push(aggregateTask); console.log('task created', project.id, id, startDate); } 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);