/** * PUT /api/budgets/{budgets} * @param Request $request * @param budget $budget * @return array */ public function update(Request $request, Budget $budget) { $data = array_filter(array_diff_assoc($request->only(['name', 'type', 'amount', 'starting_date']), $budget->toArray())); if (empty($data)) { return response($this->transform($this->createItem($budget, new BudgetTransformer(['includeExtra' => true]))), Response::HTTP_NOT_MODIFIED); } $budget->update($data); //Put the calculated amount attribute on the budget $remainingBalance = app('remaining-balance')->calculate(); $budget->getCalculatedAmount($remainingBalance); $budget = $this->transform($this->createItem($budget, new BudgetTransformer(['includeExtra' => true])))['data']; return response($budget, Response::HTTP_OK); }