All files / app/core/domain/interfaces disot.interface.ts

100% Statements 6/6
100% Branches 2/2
100% Functions 1/1
100% Lines 6/6

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                        1x 1x 1x 1x 1x 1x                              
import { ContentHash } from './content.interface';
import { Signature } from './crypto.interface';
 
export interface DisotEntry {
  id: string;
  contentHash: ContentHash;
  signature: Signature;
  timestamp: Date;
  type: DisotEntryType;
  metadata?: Record<string, any>;
}
 
export enum DisotEntryType {
  BLOG_POST = 'blog_post',
  SIGNATURE = 'signature',
  DOCUMENT = 'document',
  IMAGE = 'image',
  METADATA = 'metadata'
}
 
export interface IDisotService {
  createEntry(content: ContentHash | any, type: DisotEntryType, privateKey: string, metadata?: Record<string, any>): Promise<DisotEntry>;
  verifyEntry(entry: DisotEntry): Promise<boolean>;
  getEntry(id: string): Promise<DisotEntry>;
  listEntries(filter?: DisotFilter): Promise<DisotEntry[]>;
}
 
export interface DisotFilter {
  type?: DisotEntryType;
  publicKey?: string;
  fromDate?: Date;
  toDate?: Date;
}