export default class MySerializer { static create() { return new this(); } normalizeResponse(_, __, rawData) { if (rawData.data) { return rawData; } const data = normalizePerson(rawData.person); const included = []; if (rawData.person.father) { included.push(normalizePerson(rawData.person.father)); } if (rawData.person.friends) { rawData.person.friends.forEach(f => { included.push(normalizePerson(f)); }); } return { data, included }; } } function normalizePerson(person) { const data = { type: 'person', id: `${person.id}`, attributes: { name: person.name, age: person.age }, relationships: {} }; if (person.friends) { data.relationships.friends = { data: person.friends.map(r => { return { type: 'person', id: `${r.id}` }; }) }; } if (person.father) { data.relationships.father = { data: { type: 'person', id: `${person.father.id}` } } } return data; }