chrobject
Version:
Stores chronicles of plain objects as diffs and snapshots
33 lines (32 loc) • 1.7 kB
TypeScript
/**
* Creator: Christian Hotz
* Company: hydra newmedia GmbH
* Date: 12.06.16
*
* Copyright hydra newmedia GmbH
*/
/**
* Imports
*/
import * as mongoose from 'mongoose';
import { Repository } from 'mongoose-repo';
import { LoggerConfig } from 'be-utils';
import { StorageStrategy, FindDiffsCondition } from '../StorageStrategy';
import { Snapshot } from '../../utils/Snapshot';
import { Diff } from '../../utils/Diff';
import { Entity } from '../../utils/Entity';
import { DiffDocument } from './models/DiffModel';
import { SnapshotDocument } from './models/SnapshotModel';
import { LoggerInstance } from 'winston';
export declare class MongooseStorage implements StorageStrategy {
snapshotRepository: Repository<SnapshotDocument>;
diffRepository: Repository<DiffDocument>;
constructor(loggerOrCfg: LoggerInstance | LoggerConfig, dbConnectionString?: string, dbOptions?: mongoose.ConnectionOptions);
findDiffsByCondition(condition: FindDiffsCondition, entity: Entity, callback: (err: Error, diffs?: Diff[]) => void): void;
findSnapshotById(id: string, entity: Entity, callback: (err: Error, snapshot?: Snapshot) => void): void;
insertSnapshot(snapshot: Snapshot, callback: (err: Error, snapshot?: Snapshot) => void): void;
upsertSnapshot(snapshot: Snapshot, callback: (err: Error, snapshot?: Snapshot) => void): void;
insertDiff(diff: Diff, callback: (err: Error, diff?: Diff) => void): void;
findLatestSnapshotBefore(id: string, timestamp: Date, entity: Entity, callback: (err: Error, snapshot?: Snapshot) => void): void;
findLatestDiffBefore(id: string, timestamp: Date, entity: Entity, callback: (err: Error, diff?: Diff) => void): void;
}