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