import Perk from '../entity/Perk'; import PerkAdapterInterface from './PerkAdapterInterface'; import FileFactoryInterface from '../../File/factories/FileFactoryInterface'; import Image from '../../Image/entity/Image'; export default class PerkAdapter implements PerkAdapterInterface { protected imageAdapter: FileFactoryInterface; constructor(imageAdapter: FileFactoryInterface) { this.imageAdapter = imageAdapter; } adapt(json: any, instance: Perk): Perk { instance.title = json.title; instance.description = json.description; instance.image = json.image ? this.imageAdapter.transformToEntity(json.image) : null; return instance; } prepare(instance: Perk): object { let perk_image = instance.image ? instance.image.id : false; return { title: instance.title, description: instance.description, image_id: perk_image, }; } transformToEntity(json: any): Perk { return this.adapt(json, new Perk()); } transformToPayload(instance: Perk): any { return this.prepare(instance); } }