import { Card } from './card.model'; import { HALConfig } from '../hal.config'; import { CardDeserializer } from './card.deserializer'; import { LeadDeserializer } from '../lead/lead.deserializer'; import { MemberDeserializer } from '../member/member.deserializer'; export class CardConverter { public constructor( private cardDeserializer: CardDeserializer, private leadDeserializer: LeadDeserializer, private memberDeserializer: MemberDeserializer ) {} public toMany(items: Array<{[key: string]: any}>): Card[] { return items.map((item: any) => this.toOne(item)) || []; } public toOne(json: any): Card { const card: Card = this.cardDeserializer.deserialize(json); const embedded: {[key: string]: any} = json[HALConfig.embedded] || {}; if (embedded['lead']) { card.lead = this.leadDeserializer.deserialize(embedded['lead']); } if (embedded['user']) { card.actor = this.memberDeserializer.deserialize(embedded['user']); } return card; } }