/** * 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); }