/**
  * Get all exercise entries that belong to a series.
  * Calculate the number of days ago,
  * the number of reps,
  * and the number of sets.
  * If entries share the same exercise, date, and unit, compact them into one item.
  * @param $series
  * @return array
  */
 public function getExerciseSeriesHistory($series)
 {
     //get all entries in the series
     $entries = $series->entries()->with(['unit' => function ($query) {
         $query->select('name', 'id');
     }])->orderBy('date', 'desc')->orderBy('exercise_id', 'desc')->get();
     //Populate an array to return
     return $this->exerciseEntriesRepository->compactExerciseEntries($entries);
 }
 /**
  * Insert an exercise entry.
  * It can be an exercise set.
  * @param Request $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $exercise = Exercise::find($request->get('exercise_id'));
     if ($request->get('exerciseSet')) {
         // We are inserting an exercise set
         $quantity = $exercise->default_quantity;
         $unit = Unit::find($exercise->default_unit_id);
     } else {
         $quantity = $request->get('quantity');
         $unit = Unit::find($request->get('unit_id'));
     }
     $entry = new Entry(['date' => $request->get('date'), 'quantity' => $quantity]);
     $entry->user()->associate(Auth::user());
     $entry->exercise()->associate($exercise);
     $entry->unit()->associate($unit);
     $entry->save();
     //Return the entries for the day
     $entries = transform(createCollection($this->exerciseEntriesRepository->getEntriesForTheDay($request->get('date')), new ExerciseEntryTransformer()))['data'];
     return response($entries, Response::HTTP_CREATED);
 }