All files / src/containers/ResumePage model.js

0% Statements 0/13
0% Branches 0/8
0% Functions 0/4
0% Lines 0/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32                                                               
import camelize from 'camelize';
 
function deserialize(dataSet) {
  const { data, included } = dataSet;
 
  const formattedData = data.map((entry) => {
    let formattedEntry = Object.assign({}, entry);
    formattedEntry = Object.assign(formattedEntry, entry.attributes || {});
 
    const relatedTasks = (
      formattedEntry.relationships
      && formattedEntry.relationships.tasks
      && formattedEntry.relationships.tasks.data
    ) || [];
 
    const tasks = relatedTasks.map(task => Object.assign(
      task,
      included.find(link => link.type === 'task' && link.id === task.id).attributes,
    ));
 
    formattedEntry.tasks = tasks;
    delete formattedEntry.attributes;
    delete formattedEntry.relationships;
 
    return camelize(formattedEntry);
  });
 
  return formattedData;
}
 
export default deserialize;