UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

98 lines (87 loc) 3.73 kB
// tslint:disable:no-console import * as moment from 'moment-timezone'; import * as mongoose from 'mongoose'; import * as redis from 'redis'; import { PendingReservationRepo } from '../../../../lib/chevre/repo/pendingReservation'; // import { chevre } from '../../../../lib/index'; mongoose.Model.on('index', (...args) => { console.error('******** index event emitted. ********\n', args); }); const today = moment() .tz('Asia/Tokyo') .format('YYYYMMDD'); const project = { id: String(process.env.PROJECT_ID) }; const eventId = `sampleEventId${today}:03`; // const eventId = 'bma1pcxs0'; const eventStartDate = new Date('2025-05-01T00:00:00Z'); // const seatSection = 'SampleSectionNameXXXXXXXXXXXXXXXXXXX'; const seatSection = 'Default'; // tslint:disable-next-line:no-magic-numbers prefer-array-literal const allSeatNumbers = [...Array(10000)].map((__, seatKey) => `SampleSeatNumber-${seatKey}`); // const allSeatNumbers = [...Array(10000)].map((__, seatKey) => `A-${seatKey}`); 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 }); const formatter = new Intl.NumberFormat('ja-JP'); // tslint:disable-next-line:max-func-body-length async function main() { let startTime: [number, number] = process.hrtime(); let diff: [number, number] = process.hrtime(startTime); let result: any; // const stockHolderRepo = await chevre.repository.StockHolder.createInstance(client, mongoose.connection); const pendingReservationRepo = new PendingReservationRepo(mongoose.connection); result = await pendingReservationRepo.countUnavailableOffers({ project: { id: project.id }, event: { id: eventId, startDate: eventStartDate, hasTicketedSeat: true } }); console.log('countUnavailableOffersResult:', result); startTime = process.hrtime(); const searchHoldersResult = await pendingReservationRepo.searchHolders({ project: { id: project.id }, eventId, startDate: eventStartDate, hasTicketedSeat: true, offers: [ // tslint:disable-next-line:no-magic-numbers ...allSeatNumbers.slice(0, 10) .map((seatNumber) => ({ seatSection, seatNumber })) // { seatSection, seatNumber: 'SampleSeatNumber-7341' } ] }); diff = process.hrtime(startTime); console.log('searchHoldersResult:', searchHoldersResult, searchHoldersResult.length); console.log('diff:', [diff[0], formatter.format(diff[1])]); // startTime = process.hrtime(); // const searchHolders2Result = await pendingReservationRepo.searchHolders2({ // project: { id: project.id }, // eventId, // startDate: eventStartDate, // hasTicketedSeat: true, // offers: [ // // tslint:disable-next-line:no-magic-numbers // ...allSeatNumbers.slice(0, 10) // .map((seatNumber) => ({ seatSection, seatNumber })) // ] // }); // diff = process.hrtime(startTime); // console.log('searchHolders2:', searchHolders2Result, searchHolders2Result.length); // console.log('diff:', [diff[0], formatter.format(diff[1])]); } main() .then(console.log) .catch(console.error);