UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

48 lines (42 loc) 1.75 kB
// tslint:disable:no-console import * as moment from 'moment'; import * as mongoose from 'mongoose'; import { chevre } from '../../../lib/index'; const project = { id: String(process.env.PROJECT_ID) }; async function main() { await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false }); const eventRepo = await chevre.repository.Event.createInstance(mongoose.connection); const result = await eventRepo.aggregatePublicFields<chevre.factory.eventType.ScreeningEvent>( { limit: 10, page: 1, sort: { startDate: chevre.factory.sortType.Ascending }, // id: { $eq: 'bm0f0cadu' }, typeOf: chevre.factory.eventType.ScreeningEvent, project: { id: { $eq: project.id } }, startFrom: new Date(), startThrough: moment() // tslint:disable-next-line:no-magic-numbers .add(3, 'days') .toDate() // availableAtOrFrom: { id: { $eq: '3eo6okferrsdpfd9j2ce1iv9k7' } }, // itemOffered: { // serviceOutput: { reservationFor: { id: { $in: ['bm0f0cadu', 'blco2394l'] } } } // } }, ['eventStatus', 'startDate'], { includeOffers: true, includeSellerMakesOffer: false, // includeOffers: false, sellerMakesOfferAvailableAtIn: ['51qbjcfr72h62m06vtv5kkhgje', 'g'] } ); // tslint:disable-next-line:no-null-keyword console.dir(result, { depth: null }); console.log(result.length, 'results found'); console.log(result.at(0)?.offers?.seller?.makesOffer?.length, 'makesOffer found'); } main() .then(console.log) .catch(console.error);