@chevre/domain
Version:
Chevre Domain Library for Node.js
49 lines (41 loc) • 1.66 kB
text/typescript
// tslint:disable:no-console
import * as mongoose from 'mongoose';
import { chevre } from '../../../lib/index';
const project = { id: String(process.env.PROJECT_ID) };
mongoose.Model.on('index', (...args) => {
console.error('******** index event emitted. ********\n', args);
});
async function main() {
await mongoose.connect(<string>process.env.MONGOLAB_URI);
const acceptedOfferRepo = await chevre.repository.AcceptedOffer.createInstance(mongoose.connection);
const acceptedOffers = await acceptedOfferRepo.searchAcceptedOffersByOrderNumber(
{
// tslint:disable-next-line:no-magic-numbers
limit: 10,
page: 1,
project: { id: { $eq: project.id } },
orderNumber: { $eq: 'CIN7-9247770-0699829' },
acceptedOffers: {
itemOffered: {
typeOf: { $in: [chevre.factory.reservationType.EventReservation] },
reservationFor: { id: { $in: ['blpw1ew8f'] } },
reservedTicket: { ticketedSeat: { seatNumber: { $in: ['A-26', 'xxx'] } } }
}
}
},
['itemOffered', 'priceSpecification']
);
// tslint:disable-next-line:no-null-keyword
console.dir(acceptedOffers, { depth: 1 });
const reservationIds = acceptedOffers.map((acceptedOffer) => {
if (acceptedOffer.itemOffered.typeOf === chevre.factory.reservationType.EventReservation) {
return acceptedOffer.itemOffered.id;
} else {
return '';
}
});
console.log('reservationIds:', reservationIds);
}
main()
.then()
.catch(console.error);