@chevre/domain
Version:
Chevre Domain Library for Node.js
87 lines (79 loc) • 3.56 kB
text/typescript
// tslint:disable:no-console
import * as mongoose from 'mongoose';
// import * as redis from 'redis';
import { chevre } from '../../../../lib/index';
const project = { id: <string>process.env.PROJECT_ID };
// const EVENT_ID = String(process.env.EVENT_ID);
// tslint:disable-next-line:max-func-body-length
async function main() {
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
// 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
// });
// await client.connect();
const aggregateReservationRepo = await chevre.repository.AggregateReservation.createInstance(mongoose.connection);
const aggregateReservations = await aggregateReservationRepo.searchWithReservationForId(
{
limit: 10,
page: 1,
project: { id: { $eq: project.id } },
reservationFor: {
id: {
$in: [
'blvcj2vfl', 'blvcj2w48',
'blvcj2wqj', 'blvcj2y1n',
'blvcj2ylh', 'blvcj2z7k',
'blvcj2zqz', 'blvcj30d3',
'blvcj30wo', 'blvcj32as'
]
},
typeOf: chevre.factory.eventType.ScreeningEvent
},
sort: { 'reservationFor.startDate': 1 }
},
['aggregateOffer']
);
console.log('aggregateReservations:', aggregateReservations);
console.log('aggregateReservations:', aggregateReservations.map(({ id }) => id));
// await (await chevre.service.aggregation.createService()).event.aggregateOffers({
// id: EVENT_ID,
// typeOf: chevre.factory.eventType.ScreeningEvent
// })({
// aggregateReservation: aggregateReservationRepo,
// event: await chevre.repository.Event.createInstance(mongoose.connection),
// stockHolder: await chevre.repository.StockHolder.createInstance(client, mongoose.connection),
// offer: await chevre.repository.Offer.createInstance(mongoose.connection),
// offerCatalog: await chevre.repository.OfferCatalog.createInstance(mongoose.connection),
// offerRateLimit: await chevre.repository.rateLimit.Offer.createInstance(client),
// screeningRoom: await chevre.repository.place.ScreeningRoom.createInstance(mongoose.connection),
// product: await chevre.repository.Product.createInstance(mongoose.connection),
// reservation: await chevre.repository.Reservation.createInstance(mongoose.connection)
// });
// console.log('aggregateReserveAction processed.');
// aggregateReservations = await aggregateReservationRepo.searchWithReservationForId(
// {
// limit: 1,
// page: 1,
// sort: { 'reservationFor.startDate': 1 },
// project: { id: { $eq: project.id } },
// reservationFor: {
// id: {
// $eq: EVENT_ID,
// $in: [EVENT_ID]
// },
// typeOf: chevre.factory.eventType.ScreeningEvent
// }
// },
// []
// );
// console.log('aggregateReservations:', aggregateReservations);
}
main()
.then(() => {
console.log('success!');
})
.catch(console.error);