mirror of
https://github.com/standardnotes/server
synced 2026-08-03 15:16:02 -04:00
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import { inject, injectable } from 'inversify'
|
|
import TYPES from '../Bootstrap/Types'
|
|
import { ProjectorInterface } from './ProjectorInterface'
|
|
|
|
import { Item } from '../Domain/Item/Item'
|
|
import { ItemConflict } from '../Domain/Item/ItemConflict'
|
|
import { ItemConflictProjection } from './ItemConflictProjection'
|
|
import { ItemProjection } from './ItemProjection'
|
|
|
|
@injectable()
|
|
export class ItemConflictProjector implements ProjectorInterface<ItemConflict, ItemConflictProjection> {
|
|
constructor(@inject(TYPES.ItemProjector) private itemProjector: ProjectorInterface<Item, ItemProjection>) {}
|
|
|
|
async projectSimple(_itemConflict: ItemConflict): Promise<ItemConflictProjection> {
|
|
throw Error('not implemented')
|
|
}
|
|
|
|
async projectCustom(_projectionType: string, _itemConflict: ItemConflict): Promise<ItemConflictProjection> {
|
|
throw Error('not implemented')
|
|
}
|
|
|
|
async projectFull(itemConflict: ItemConflict): Promise<ItemConflictProjection> {
|
|
const projection: ItemConflictProjection = {
|
|
unsaved_item: itemConflict.unsavedItem,
|
|
type: itemConflict.type,
|
|
}
|
|
|
|
if (itemConflict.serverItem) {
|
|
projection.server_item = <ItemProjection>await this.itemProjector.projectFull(itemConflict.serverItem)
|
|
}
|
|
|
|
return projection
|
|
}
|
|
}
|