Example #1
0
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(BookRequest $request)
 {
     $titles = $request->input('titles');
     // $bookclubs = $request->get('bookclubs');
     // $bookIds = [];
     $status_id = \App\BookStatus::availableId();
     if (count($titles)) {
         foreach ($titles as $title) {
             $book = \App\Book::firstOrCreate(['title' => ucfirst($title)]);
             auth()->user()->books()->detach($book->id);
             auth()->user()->books()->attach($book->id, ['status_id' => $status_id]);
             //send mail to user for added books and adding details
             //$bookIds[] =  $bookId => ['status_id' => $status_id];
             // foreach ($bookclubs as $bookclub) {
             //   $book->bookclubs()->detach($bookclub);
             //   $book->bookclubs()->attach($bookclub,['owner_id' => auth()->user()->id]);
             // }
         }
     } else {
         flash()->error('Please enter atleast one Book Title');
         return \Redirect::back();
     }
     flash('Book/Books added to your library.');
     return \Redirect::back();
     /***
           // $book = \App\Book::where('title','=',$request->input('title'))->first();
           // if($book)
           // {
           //   flash('This book already exits add it to your library.');
           //   return \Redirect::route('books.show',$book->id);
           // }
           // $request['author_id'] = auth()->user()->id;
     
           // Convert comma separated string into array of author names
           // $authors = explode(',',$request->get('author'));
     
           //going over author names build up array of author ids by getting author ids and creating author if does not exist
           // $authorIds = [];
           // foreach ($authors as $author) {
             // $authorIds[] =  App\Author::firstOrCreate(['name' => ucfirst($author)])->id;
           // }
           // $request['author_id']  = App\Author::firstOrCreate(['name' => ucfirst(\Input::get('author'))])->id;
           // $request['publisher_id'] = App\Publisher::firstOrCreate(['name' => ucfirst(\Input::get('publisher'))])->id;
           // $request['category_id'] = App\Category::firstOrCreate(['name' => ucfirst(\Input::get('category'))])->id;
           // $request['language_id'] = App\Language::firstOrCreate(['name' => ucfirst(\Input::get('language'))])->id;
     
     
           //create book
           // $book = auth()->user()->books()->create($request->all(),['status_id' => $status_id]);
     
           //atached book to authors
           // $book->authors()->attach($authorIds);
     
           //attach book to book clubs
           // $book->bookclubs()->attach($request->input('bookclubs'),['status_id' => $status_id]);
     
           // flash('Book added.');
           // return \Redirect::back();
           ***/
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id, Request $request)
 {
     $bookclub = \App\BookClub::findOrFail($id);
     $request['is_closed'] = $request->input('is_closed', 0);
     $bookclub->update($request->all());
     $titles = $request->input('books');
     $status_id = \App\BookStatus::availableId();
     if ($titles) {
         foreach ($titles as $title) {
             $book = \App\Book::firstOrCreate(['title' => ucfirst($title)]);
             auth()->user()->books()->detach($book->id);
             auth()->user()->books()->attach($book->id, ['status_id' => $status_id]);
             \DB::table('book_book_club')->where('book_club_id', $bookclub->id)->where('book_id', $book->id)->where('owner_id', auth()->user()->id)->delete();
             $bookclub->books()->attach($book->id, ['status_id' => $status_id, 'owner_id' => auth()->user()->id]);
         }
     }
     if ($request->hasFile('image')) {
         $this->setBookclubImage($bookclub, $request);
     }
     flash('Book Club updated.');
     return \Redirect::back();
 }