Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import { autoInjectable, inject } from "tsyringe";
import { tokens } from "../../registry/tokens.js";
import type { Logger } from "pino";
import { RedisIABAssetStore } from "../store/redis-iab-asset.store.js";
@autoInjectable()
class IABEventHandler {
constructor(
private readonly iabAssetRepository: RedisIABAssetStore,
@inject(tokens.Logger) private readonly logger: Logger,
) {}
async getLastOffsetForPartition(
partition: number,
): Promise<[number, string]> {
try {
const [part, offset] =
await this.iabAssetRepository.getLastOffsetForPartition(partition);
return [part, offset];
} catch (error) {
this.logger.error(
{ err: error, partition },
"Error getting last offset for partition",
);
throw error;
}
}
async getAllPartitionsAndOffsets(): Promise<
{ partition: number; offset: string }[]
> {
try {
const partitionsAndOffsets =
await this.iabAssetRepository.getAllPartitionsAndOffsets();
return partitionsAndOffsets;
} catch (error) {
this.logger.error(
{ err: error },
"Error getting all partitions and offsets",
);
throw error;
}
}
}
export { IABEventHandler };
|