@chevre/domain
Version:
Chevre Domain Library for Node.js
65 lines (58 loc) • 1.74 kB
text/typescript
// tslint:disable:no-console
import * as redis from 'redis';
import { chevre } from '../../../../lib/index';
const project = { id: String(process.env.PROJECT_ID) };
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();
// tslint:disable-next-line:max-func-body-length
async function main() {
const rateLimitRepo = await chevre.repository.rateLimit.Offer.createInstance(
client
);
// await rateLimitRepo.unlock({
// project: { id: project.id },
// reservedTicket: {
// ticketType: {
// validRateLimit: {
// scope: 'scope2',
// unitInSeconds: 60
// }
// }
// },
// reservationFor: {
// startDate: new Date()
// },
// reservationNumber: 'xxx'
// });
// console.log('unlocked');
await rateLimitRepo.lock({
project: { id: project.id },
reservedTicket: {
ticketType: {
validRateLimit: {
scope: 'scope2',
unitInSeconds: 60
}
}
},
reservationFor: {
startDate: new Date()
},
reservationNumber: 'xxx'
});
console.log('locked');
}
main()
.then()
.catch(console.error);