public function update($id, $data) { // Checking if book exists $book = Book::find($id); // If book exists if (!empty($book)) { // Validating data $validator = Validator::make($data, Book::updaterules($id)); // If there are no errors in data if (!$validator->fails()) { // Update book $book->update($data); // Checking if there are any chapters if (isset($data['chapters']) && sizeof($data['chapters']) > 0) { // Looping through chapters foreach ($data['chapters'] as $chapter) { if (isset($chapter['id'])) { // Getting the chapter $findchapter = $this->chaptersService->find($book->id, $chapter['id']); // Checking if chapter exists if ($findchapter['success']) { // Updating the chapter $this->chaptersService->update($book->id, $chapter['id'], $chapter); } } else { // Creating the workflow part $this->chaptersService->insert($book->id, $chapter); } } } // Passing data to response service return $this->responseService->returnMessage($book, 'Book was not Updated.'); } else { // Data has errors // Passing errors to response service return $this->responseService->errorMessage($validator->errors()->all()); } } else { // Book not found // Returning error message return $this->responseService->errorMessage('Book was not Found.'); } }