@chevre/domain
Version:
Chevre Domain Library for Node.js
37 lines (36 loc) • 967 B
TypeScript
import { RedisClientType } from 'redis';
import * as factory from '../../factory';
/**
* レート制限キーインターフェース
*/
export interface IRateLimitKey {
project: {
id: string;
};
reservedTicket: {
ticketType: {
validRateLimit: factory.offer.IValidRateLimit;
};
};
reservationFor: {
startDate: Date;
};
reservationNumber: string;
}
/**
* オファーレート制限リポジトリ
*/
export declare class OfferRateLimitRepo {
private static readonly KEY_PREFIX_NEW;
private readonly concurrentLockRepo;
private readonly redisClient;
constructor(redisClient: RedisClientType);
private static createKey;
/**
* ロックする
* discontinue array params(2025-05-26~)
*/
lock(params: IRateLimitKey): Promise<void>;
unlock(params: IRateLimitKey): Promise<void>;
getHolder(ratelimitKey: IRateLimitKey): Promise<string | null>;
}