import RouteGroupAdapterInterface from './RouteGroupAdapterInterface'; import RouteAdapter from '../../Route/adapter/RouteAdapter'; import RouteGroup from '../entity/RouteGroup'; export default class RouteGroupAdapter implements RouteGroupAdapterInterface { protected routeAdapter: RouteAdapter; constructor(routeAdapter: RouteAdapter) { this.routeAdapter = routeAdapter; } adapt(json: any, instance: RouteGroup): RouteGroup { instance.id = json.id; instance.name = json.name; instance.routes = (json.routes || []).map(each => this.routeAdapter.transformToEntity(each)); return instance; } prepare(instance: RouteGroup): object { let object = { id: instance.id, name: instance.name, routes: (instance.routes || []).map(each => this.routeAdapter.transformToPayload(each)), }; return object; } transformToEntity(json: any): RouteGroup { return this.adapt(json, new RouteGroup()); } transformToPayload(instance: RouteGroup): any { return this.prepare(instance); } }