@chevre/domain
Version:
Chevre Domain Library for Node.js
77 lines (67 loc) • 2.28 kB
text/typescript
// 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);