1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import { TimerInterface } from '@standardnotes/time'
- import { ProjectorInterface } from './ProjectorInterface'
- import { Item } from '../Domain/Item/Item'
- import { ItemProjection } from './ItemProjection'
- import { ItemProjectionWithUser } from './ItemProjectionWithUser'
- export class ItemProjector implements ProjectorInterface<Item, ItemProjection> {
- constructor(private timer: TimerInterface) {}
- async projectSimple(_item: Item): Promise<ItemProjection> {
- throw Error('not implemented')
- }
- async projectCustom(_projectionType: string, item: Item): Promise<ItemProjectionWithUser> {
- const fullProjection = await this.projectFull(item)
- return {
- ...fullProjection,
- user_uuid: item.userUuid,
- }
- }
- async projectFull(item: Item): Promise<ItemProjection> {
- return {
- uuid: item.uuid,
- items_key_id: item.itemsKeyId,
- duplicate_of: item.duplicateOf,
- enc_item_key: item.encItemKey,
- content: item.content,
- content_type: item.contentType as string,
- auth_hash: item.authHash,
- deleted: !!item.deleted,
- created_at: this.timer.convertMicrosecondsToStringDate(item.createdAtTimestamp),
- created_at_timestamp: item.createdAtTimestamp,
- updated_at: this.timer.convertMicrosecondsToStringDate(item.updatedAtTimestamp),
- updated_at_timestamp: item.updatedAtTimestamp,
- updated_with_session: item.updatedWithSession,
- }
- }
- }
|