UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

77 lines (67 loc) 2.28 kB
// tslint:disable:no-console import * as moment from 'moment'; import * as mongoose from 'mongoose'; import * as redis from 'redis'; import { chevre } from '../../../../lib/index'; // const project = { id: String(process.env.PROJECT_ID) }; const excludedProject = { id: String(process.env.EXCLUDED_PROJECT_ID) }; const client = redis.createClient<redis.RedisDefaultModules, Record<string, never>, Record<string, never>>({ socket: { port: Number(<string>process.env.REDIS_PORT), host: <string>process.env.REDIS_HOST }, password: <string>process.env.REDIS_KEY }) .on('error', (err) => { // eslint-disable-next-line no-console console.error('createDefaultRedisClient: client onError:', err); // reject(err); }); client.connect(); mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false }); // tslint:disable-next-line:max-func-body-length async function main() { const eventRepo = await chevre.repository.Event.createInstance(mongoose.connection); const stockHolderRepo = await chevre.repository.StockHolder.createInstance( client, mongoose.connection ); const cursor = eventRepo.getCursor( { 'project.id': { $ne: excludedProject.id }, startDate: { $gte: moment() .add(-1, 'days') .toDate() }, typeOf: { $eq: chevre.factory.eventType.ScreeningEvent } // _id: { $eq: 'blyk9q24f' } }, { _id: 1, // offers: 1, startDate: 1, project: 1, typeOf: 1 } ); console.log('events found'); let i = 0; await cursor.eachAsync(async (doc) => { i += 1; const event: Pick< chevre.factory.event.screeningEvent.IEvent, 'id' | 'startDate' | 'project' | 'typeOf' > = doc.toObject(); console.log( 'conflicted?', event.project.id, event.typeOf, event.id, event.startDate, i); await stockHolderRepo.checkIfConflicted({ eventId: event.id, startDate: event.startDate }); }); console.log(i, 'events checked'); } main() .then() .catch(console.error);