ItemRepositoryInterface.ts 1.2 KB

12345678910111213141516171819202122232425
  1. import { Uuid } from '@standardnotes/domain-core'
  2. import { ReadStream } from 'fs'
  3. import { Item } from './Item'
  4. import { ItemQuery } from './ItemQuery'
  5. import { ExtendedIntegrityPayload } from './ExtendedIntegrityPayload'
  6. export interface ItemRepositoryInterface {
  7. deleteByUserUuid(userUuid: string): Promise<void>
  8. findAll(query: ItemQuery): Promise<Item[]>
  9. findAllRaw<T>(query: ItemQuery): Promise<T[]>
  10. streamAll(query: ItemQuery): Promise<ReadStream>
  11. countAll(query: ItemQuery): Promise<number>
  12. findContentSizeForComputingTransferLimit(
  13. query: ItemQuery,
  14. ): Promise<Array<{ uuid: string; contentSize: number | null }>>
  15. findDatesForComputingIntegrityHash(userUuid: string): Promise<Array<{ updated_at_timestamp: number }>>
  16. findItemsForComputingIntegrityPayloads(userUuid: string): Promise<ExtendedIntegrityPayload[]>
  17. findByUuidAndUserUuid(uuid: string, userUuid: string): Promise<Item | null>
  18. findByUuid(uuid: Uuid, noAssociations: boolean): Promise<Item | null>
  19. remove(item: Item): Promise<void>
  20. save(item: Item): Promise<void>
  21. markItemsAsDeleted(itemUuids: Array<string>, updatedAtTimestamp: number): Promise<void>
  22. updateContentSize(itemUuid: string, contentSize: number): Promise<void>
  23. }