mirror of
https://github.com/standardnotes/server
synced 2026-10-01 00:13:15 -04:00
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { TimerInterface } from '@standardnotes/time'
|
|
import { inject, injectable } from 'inversify'
|
|
import TYPES from '../Bootstrap/Types'
|
|
import { ProjectorInterface } from './ProjectorInterface'
|
|
|
|
import { Item } from '../Domain/Item/Item'
|
|
import { ItemProjection } from './ItemProjection'
|
|
|
|
@injectable()
|
|
export class ItemProjector implements ProjectorInterface<Item, ItemProjection> {
|
|
constructor(@inject(TYPES.Timer) private timer: TimerInterface) {}
|
|
|
|
async projectSimple(_item: Item): Promise<ItemProjection> {
|
|
throw Error('not implemented')
|
|
}
|
|
|
|
async projectCustom(_projectionType: string, _item: Item): Promise<ItemProjection> {
|
|
throw Error('not implemented')
|
|
}
|
|
|
|
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,
|
|
}
|
|
}
|
|
}
|