Exemplo n.º 1
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Requests\AddSongRequest $request)
 {
     /*
         cases:
         add track
             walang artist, walang album /
             may artist, walang album
             add lang talaga
     */
     //Start of Inserting a music
     //Start here.
     //dd($request->get('name'));
     //else{
     //dd(\Auth::user()->id);
     $track = new Track(array('name' => $request->get('name'), 'creator_id' => \Auth::user()->id));
     $track->save();
     flash()->overlay('Track uploaded.', 'Success!');
     //https://www.codetutorial.io/laravel-5-file-upload-storage-download/
     $fileName = $track->id . '.' . $request->file('image')->getClientOriginalExtension();
     $path = base_path() . '/public/tracks/' . $fileName;
     $request->file('image')->move(base_path() . '/public/tracks/', $fileName);
     //dd($path);
     $path = '/public/tracks/' . explode("/", $path)[sizeof(explode("/", $path)) - 1];
     //get value at last element
     //dd($path);
     DB::table('tracks')->where('id', $track->id)->update(['path' => $path]);
     //song is now uploaded and has filePath
     //dd($request->get('artist_name'));
     //getting an artist
     $artist = DB::table('artists')->where('name', $request->get('artist_name'))->first();
     //dd($artist);
     //}
     if ($artist) {
         //artist exists
         $artistHasSong = new ArtistHasSong(array('artist_id' => $artist->id, 'track_id' => $track->id));
         $artistHasSong->save();
         $album = DB::table('albums')->join('albums_has_artist', 'albums_has_artist.album_id', '=', 'albums.id')->select('albums_has_artist.*')->where('albums_has_artist.artist_id', '=', $artist->id)->where('albums.name', '=', $request->get('album_name'))->first();
         /*
             select * from albums_has_artist a 
             inner join 
                 albums b on a.albumId = b.albumId 
             where 
                 a.artist_id = $artist->id and 
                 b.name= $request->get('album_name')
         */
         //dd($album);
         if ($album) {
             //track and album exist and artist exist
             $albumHasSong = new AlbumHasSong(array('album_id' => $album->id, 'track_id' => $track->id));
             $albumHasSong->save();
             return redirect()->back();
             // return view('track.create',
             //             ['message'=>'Track Created']);
         } else {
             //album does not exist but artist and track exists
             // return redirect('/album/create')
             //         ->with(['track_id' => $track->id, 'artist_name' => NULL,
             //              'artist_id' => $artist->id, 'album_name' => $request->get('album_name')]);
             return view('album.create', ['track_id' => $track->id, 'artist_name' => NULL, 'artist_id' => $artist->id, 'album_name' => $request->get('album_name')]);
         }
     } else {
         //track exist now(); artist does not exist
         //to do on artist store artists has song:
         //to do on album store album has artist and album has song
         //dd($request->get('artist_name'));
         if ($request->get('artist_name') != NULL) {
             // return redirect('/artist/create')
             //         ->with(['artist_name' => $request->get('artist_name'), 'track_id' => $track->id,
             //          'track_name' => $track->name, 'album_name' => $request->get('album_name')]);
             return view('artist.create', ['artist_name' => $request->get('artist_name'), 'track_id' => $track->id, 'track_name' => $track->name, 'album_name' => $request->get('album_name')]);
         } else {
             // return redirect('/album/create')
             //         ->with(['artist_name' => $request->get('artist_name'), 'artist_id' => NULL,
             //          'track_id' => $track->id, 'album_name' => $request->get('album_name')]);
             return view('album.create', ['artist_name' => $request->get('artist_name'), 'artist_id' => NULL, 'track_id' => $track->id, 'album_name' => $request->get('album_name')]);
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Requests\AddAlbumRequest $request)
 {
     //check album has artist
     $artist_id = (int) $request->get('artist_id');
     //dd($artist_id);
     $album_name = $request->get('name');
     //dd($album_name);
     $album = DB::select(DB::raw("select albums_has_artist.album_id as album_id,\n                                            albums_has_artist.artist_id as artist_id\n                                            from albums_has_artist\n                                            inner join albums on albums_has_artist.album_id = albums.id\n                                            \n                                            where albums_has_artist.artist_id = {$artist_id} and\n                                                  albums.name = '{$album_name}'"));
     /*$album = DB::table('albums_has_artist')
       ->join('albums', 'albums_has_artist.album_id', '=', 'albums.id')
       ->select('albums_has_artist.*')
       ->where('albums_has_artist.artist_id', '=', $request->get('artist_id'))
       ->where('albums.name', '=', $request->get('album_name'))
       ->first();    */
     //dd(!$album);
     if (!$album) {
         //bagong album
         $album = new Album(array('name' => $request->get('name'), 'recording_company' => $request->get('recording_company'), 'year_released' => $request->get('year_released')));
         $album->save();
         //may album na
         flash()->overlay('Album added!', 'Success!');
     }
     /*        if ( $request->get('artist_id')===NULL && 
                  $request->get('artist_name')===NULL && 
                  $request->get('album_name')===NULL && 
                  $request->get('track_id')==="" ) {
     
                 return view('album.create',
                             ['message'=>"Album Created", 
                              'artist_name' => NULL,
                              'artist_id' => NULL,
                              'track_id' => NULL,
                              'album_name' => NULL]);
             }
     */
     if ($request->get('artist_id')) {
         //existing artist, bagong album
         $albumsHasArtist = new AlbumsHasArtist(array('album_id' => $album->id, 'artist_id' => (int) $request->get('artist_id')));
         $albumsHasArtist->save();
     } else {
         //bagong artist, existing album
         $artist = DB::table('artists')->where('name', $request->get('artist_name'))->first();
         //dd($artist);
         if ($artist) {
             $albumsHasArtist = new AlbumsHasArtist(array('album_id' => $album->id, 'artist_id' => $artist->id));
             $albumsHasArtist->save();
         }
     }
     if ($request->get('track_id')) {
         //mag-on na si album at song
         $albumHasSong = new AlbumHasSong(array('album_id' => $album->id, 'track_id' => (int) $request->get('track_id')));
         $albumHasSong->save();
         //return redirect('track/create');
         return view('track.create');
         //,
         //             ['message'=>"Album Created"]);
     }
     return redirect('/album/create')->with(['track_id' => NULL, 'artist_id' => NULL, 'artist_name' => NULL, 'album_name' => NULL]);
     // return view('album.create',
     //             ['track_id' => NULL,
     //              'artist_id' => NULL,
     //              'artist_name' => NULL,
     //              'album_name' => NULL]);
 }